diff --git a/README.md b/README.md index cb8b94d5d..8ec4a7a5f 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Make sure you have the xcode command line tools installed. This can be done by r ### Linux -#### Ubuntu 18.04, Debian 9, Zorin 15 +#### Debian 9, Ubuntu 18.04, Zorin 15, Parrot 4.7 `sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev` @@ -54,13 +54,17 @@ Make sure you have the xcode command line tools installed. This can be done by r `sudo pacman -S webkit2gtk gtk3` +#### Centos 7 + +`sudo yum install webkitgtk3-devel gtk3-devel` + #### Fedora 30 `sudo yum install webkit2gtk3-devel gtk3-devel` -#### Centos 7 +#### Gentoo -`sudo yum install webkitgtk3-devel gtk3-devel` +`sudo emerge gtk+:3 webkit-gtk` ### Windows diff --git a/cmd/linux.go b/cmd/linux.go index 0b8a393f9..c949044b9 100644 --- a/cmd/linux.go +++ b/cmd/linux.go @@ -17,22 +17,22 @@ type LinuxDistribution int const ( // Unknown is the catch-all distro Unknown LinuxDistribution = iota + // Debian distribution + Debian // Ubuntu distribution Ubuntu // Arch linux distribution Arch - // RedHat linux distribution - RedHat // CentOS linux distribution CentOS // Fedora linux distribution Fedora - // Debian distribution - Debian // Gentoo distribution Gentoo // Zorin distribution Zorin + // Parrot distribution + Parrot ) // DistroInfo contains all the information relating to a linux distribution @@ -81,20 +81,22 @@ func GetLinuxDistroInfo() *DistroInfo { result.Release = version result.DiscoveredBy = "/etc/os-release" switch osID { - case "fedora": - result.Distribution = Fedora - case "centos": - result.Distribution = CentOS - case "arch": - result.Distribution = Arch case "debian": result.Distribution = Debian case "ubuntu": result.Distribution = Ubuntu + case "arch": + result.Distribution = Arch + case "fedora": + result.Distribution = Fedora + case "centos": + result.Distribution = CentOS case "gentoo": result.Distribution = Gentoo case "zorin": result.Distribution = Zorin + case "parrot": + result.Distribution = Parrot default: result.Distribution = Unknown } diff --git a/cmd/prerequisites.go b/cmd/prerequisites.go index e5c7533af..d9fa3e0ac 100644 --- a/cmd/prerequisites.go +++ b/cmd/prerequisites.go @@ -57,18 +57,30 @@ func getRequiredProgramsLinux() *Prerequisites { result.Add(newPrerequisite("gcc", "Please install with `sudo apt install build-essentials` and try again")) result.Add(newPrerequisite("pkg-config", "Please install with `sudo apt install pkg-config` and try again")) result.Add(newPrerequisite("npm", "Please install with `curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - && sudo apt-get install -y nodejs` and try again")) - case Zorin: - result.Add(newPrerequisite("gcc", "Please install with `sudo apt install build-essentials` and try again")) - result.Add(newPrerequisite("pkg-config", "Please install with `sudo apt install pkg-config` and try again")) - result.Add(newPrerequisite("npm", "Please install with `sudo snap install node --channel=12/stable --classic` and try again")) - case Fedora: - result.Add(newPrerequisite("gcc", "Please install with `sudo yum install gcc-c++ make` and try again")) - result.Add(newPrerequisite("pkg-config", "Please install with `sudo yum install pkgconf-pkg-config` and try again")) - result.Add(newPrerequisite("npm", "Please install with `curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install -y nodejs` and try again")) + case Arch: + result.Add(newPrerequisite("gcc", "Please install with `sudo pacman -S base-devel` and try again")) + result.Add(newPrerequisite("pkg-config", "Please install with `sudo pacman -S base-devel` and try again")) + result.Add(newPrerequisite("npm", "Please install with `pacman -S npm nodejs` and try again")) case CentOS: result.Add(newPrerequisite("gcc", "Please install with `sudo yum install gcc gcc-c++ make` and try again")) result.Add(newPrerequisite("pkg-config", "Please install with `sudo yum install pkgconfig` and try again")) result.Add(newPrerequisite("npm", "Please install with `curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install -y nodejs` and try again")) + case Fedora: + result.Add(newPrerequisite("gcc", "Please install with `sudo yum install gcc-c++ make` and try again")) + result.Add(newPrerequisite("pkg-config", "Please install with `sudo yum install pkgconf-pkg-config` and try again")) + result.Add(newPrerequisite("npm", "Please install with `curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install -y nodejs` and try again")) + case Gentoo: + result.Add(newPrerequisite("gcc", "Please install with `sudo emerge gcc make` and try again")) + result.Add(newPrerequisite("pkg-config", "Please install with `sudo emerge pkg-config` and try again")) + result.Add(newPrerequisite("npm", "Please install with `sudo emerge nodejs` and try again")) + case Zorin: + result.Add(newPrerequisite("gcc", "Please install with `sudo apt install build-essentials` and try again")) + result.Add(newPrerequisite("pkg-config", "Please install with `sudo apt install pkg-config` and try again")) + result.Add(newPrerequisite("npm", "Please install with `sudo snap install node --channel=12/stable --classic` and try again")) + case Parrot: + result.Add(newPrerequisite("gcc", "Please install with `sudo apt install build-essentials` and try again")) + result.Add(newPrerequisite("pkg-config", "Please install with `sudo apt install pkg-config` and try again")) + result.Add(newPrerequisite("npm", "Please install with `sudo apt install npm nodejs` and try again")) default: result.Add(newPrerequisite("gcc", "Please install with your system package manager and try again")) result.Add(newPrerequisite("pkg-config", "Please install with your system package manager and try again")) @@ -114,21 +126,24 @@ func getRequiredLibrariesLinux() (*Prerequisites, error) { case Ubuntu: result.Add(newPrerequisite("libgtk-3-dev", "Please install with `sudo apt install libgtk-3-dev` and try again")) result.Add(newPrerequisite("libwebkit2gtk-4.0-dev", "Please install with `sudo apt install libwebkit2gtk-4.0-dev` and try again")) - case Zorin: - result.Add(newPrerequisite("libgtk-3-dev", "Please install with `sudo apt install libgtk-3-dev` and try again")) - result.Add(newPrerequisite("libwebkit2gtk-4.0-dev", "Please install with `sudo apt install libwebkit2gtk-4.0-dev` and try again")) - case Gentoo: - result.Add(newPrerequisite("gtk+:3", "Please install with `sudo emerge gtk+:3` and try again")) - result.Add(newPrerequisite("webkit-gtk", "Please install with `sudo emerge webkit-gtk` and try again")) case Arch: result.Add(newPrerequisite("gtk3", "Please install with `sudo pacman -S gtk3` and try again")) result.Add(newPrerequisite("webkit2gtk", "Please install with `sudo pacman -S webkit2gtk` and try again")) - case Fedora: - result.Add(newPrerequisite("gtk3-devel", "Please install with `sudo yum install gtk3-devel` and try again")) - result.Add(newPrerequisite("webkit2gtk3-devel", "Please install with `sudo yum install webkit2gtk3-devel` and try again")) case CentOS: result.Add(newPrerequisite("gtk3-devel", "Please install with `sudo yum install gtk3-devel` and try again")) result.Add(newPrerequisite("webkitgtk3-devel", "Please install with `sudo yum install webkitgtk3-devel` and try again")) + case Fedora: + result.Add(newPrerequisite("gtk3-devel", "Please install with `sudo yum install gtk3-devel` and try again")) + result.Add(newPrerequisite("webkit2gtk3-devel", "Please install with `sudo yum install webkit2gtk3-devel` and try again")) + case Gentoo: + result.Add(newPrerequisite("gtk+:3", "Please install with `sudo emerge gtk+:3` and try again")) + result.Add(newPrerequisite("webkit-gtk", "Please install with `sudo emerge webkit-gtk` and try again")) + case Zorin: + result.Add(newPrerequisite("libgtk-3-dev", "Please install with `sudo apt install libgtk-3-dev` and try again")) + result.Add(newPrerequisite("libwebkit2gtk-4.0-dev", "Please install with `sudo apt install libwebkit2gtk-4.0-dev` and try again")) + case Parrot: + result.Add(newPrerequisite("libgtk-3-dev", "Please install with `sudo apt install libgtk-3-dev` and try again")) + result.Add(newPrerequisite("libwebkit2gtk-4.0-dev", "Please install with `sudo apt install libwebkit2gtk-4.0-dev` and try again")) default: result.Add(newPrerequisite("libgtk-3-dev", "Please install with your system package manager and try again")) result.Add(newPrerequisite("libwebkit2gtk-4.0-dev", "Please install with your system package manager and try again")) diff --git a/cmd/system.go b/cmd/system.go index f607a9243..c70e7a833 100644 --- a/cmd/system.go +++ b/cmd/system.go @@ -272,7 +272,7 @@ func CheckDependencies(logger *Logger) (bool, error) { distroInfo := GetLinuxDistroInfo() for _, library := range *requiredLibraries { switch distroInfo.Distribution { - case Ubuntu, Zorin, Debian: + case Ubuntu, Debian, Zorin, Parrot: installed, err := DpkgInstalled(library.Name) if err != nil { return false, err @@ -294,7 +294,7 @@ func CheckDependencies(logger *Logger) (bool, error) { } else { logger.Green("Library '%s' installed.", library.Name) } - case RedHat, Fedora, CentOS: + case CentOS, Fedora: installed, err := RpmInstalled(library.Name) if err != nil { return false, err