Install gcc-8 only on Ubuntu 18.04?
I just installed Lubuntu 18.04 LTS. There are two options for installing gcc: gcc-7 and gcc-8. Both are available from apt-get install out of the box.
Even after I installed gcc-8, the system is still going to install gcc-7 when I install other packages such as build-essential.
Since gcc-8 is newer, is there a way to make it install gcc-8 and gcc-8 only?
3 Answers
gcc-7 and gcc-8 will happily co-live together.
I would suggest to let gcc-7 be installed, for satisfying build-essential and perhaps other dependent packages, and configure gcc-8 to be your default gcc installation.
Use update-alternatives for having gcc redirected automatically to gcc-8:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8This will give you the convenience of gcc being at the latest version, and still you will be able to invoke gcc-7 or gcc-8 directly.
If you'll wish to change the default gcc version later on, run sudo update-alternatives --config gcc. It will bring a prompt similar to this, which lets you pick the version to be used:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc). Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-8 800 auto mode 1 /usr/bin/gcc-7 700 manual mode 2 /usr/bin/gcc-8 800 manual mode
Press <enter> to keep the current choice[*], or type selection number: The higher priority is the one that is picked automatically by update-alternatives.
Master table of all GCC versions for each Ubuntu
At: How do I use the latest GCC on Ubuntu?
GCC 8 on Ubuntu 16.04
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --versiongives 8.1.0 as of 2018-11. See also:
GCC 9 on Ubuntu 19.04
sudo apt install gcc-9 4 Go download unversioned gcc packages (cpp/gcc/g++/g++multilib/etc.) with package version 8, and install them using dpkg -i *.deb. Make sure you have the corresponding packages with -8 suffix installed first.
Reason:
build-essential and a lot of other packages depend on unversioned packages (no version number in package name) such as gcc, g++, etc., and those unversioned packages depend on versioned packages (whose package name contains a version as suffix) such as gcc-X, g++-X, respectively.
A unversioned package gcc with package version 8.~ depends on gcc-8, whereas the gcc package in offcial Ubuntu 18.04 repository comes with package version 7.~, which in turn depends on gcc-7.
Those unversioned gcc packages install nothing, just act as dependency declaration to the versioned gcc packages.
The unversioned packages from Debian 10 (codename buster) are versioned with 8.~. You can safely manually install them and the dependent versioned packages are still from your official ubuntu repository, so it's totally safe to do so.