diff --git a/README.md b/README.md index 2997391cc..cb8b94d5d 100644 --- a/README.md +++ b/README.md @@ -48,17 +48,19 @@ Make sure you have the xcode command line tools installed. This can be done by r #### Ubuntu 18.04, Debian 9, Zorin 15 -`sudo apt install pkg-config build-essential libgtk-3-dev libwebkit2gtk-4.0-dev` +`sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev` #### Arch Linux `sudo pacman -S webkit2gtk gtk3` -#### Red Hat Based Distros +#### Fedora 30 -`sudo yum install webkit2gtk-devel gtk3-devel` +`sudo yum install webkit2gtk3-devel gtk3-devel` -Note: If you have successfully installed these dependencies on a different flavour of Linux, please consider submitting a PR. +#### Centos 7 + +`sudo yum install webkitgtk3-devel gtk3-devel` ### Windows @@ -121,4 +123,3 @@ This project was mainly coded to the following albums: * [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB) * [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF) * [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v) - diff --git a/cmd/linux.go b/cmd/linux.go index 9a1e55ae9..0b8a393f9 100644 --- a/cmd/linux.go +++ b/cmd/linux.go @@ -79,10 +79,8 @@ func GetLinuxDistroInfo() *DistroInfo { } // Check distro name against list of distros result.Release = version - result.DiscoveredBy = "os-release" + result.DiscoveredBy = "/etc/os-release" switch osID { - case "rhel": - result.Distribution = RedHat case "fedora": result.Distribution = Fedora case "centos": diff --git a/cmd/prerequisites.go b/cmd/prerequisites.go index affe16b0f..e5c7533af 100644 --- a/cmd/prerequisites.go +++ b/cmd/prerequisites.go @@ -49,15 +49,30 @@ func getRequiredProgramsLinux() *Prerequisites { result := &Prerequisites{} distroInfo := GetLinuxDistroInfo() switch distroInfo.Distribution { - case Ubuntu, Debian, Zorin: + case Debian: + 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 bash - && sudo apt-get install -y nodejs` and try again")) + case Ubuntu: + 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 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")) 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")) result.Add(newPrerequisite("npm", "Please install from https://nodejs.org/en/download/ and try again")) - } return result } @@ -93,7 +108,13 @@ func getRequiredLibrariesLinux() (*Prerequisites, error) { result := &Prerequisites{} distroInfo := GetLinuxDistroInfo() switch distroInfo.Distribution { - case Ubuntu, Debian, Zorin: + case Debian: + 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 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: @@ -102,9 +123,12 @@ func getRequiredLibrariesLinux() (*Prerequisites, error) { 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 RedHat, Fedora, CentOS: + 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")) 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"))