Установить gcc-8 только на Ubuntu 18.04?
Я только что установил Lubuntu 18.04 LTS. Есть два варианта установки gcc: gcc-7 а также gcc-8, Оба доступны от apt-get install из коробки.
Даже после того, как я установил gcc-8, система все еще собирается установить gcc-7 когда я устанавливаю другие пакеты, такие как build-essential,
поскольку gcc-8 новее, есть ли способ заставить его установить gcc-8 а также gcc-8 только?
3 ответа
gcc-7 а также gcc-8 будут счастливо сосуществовать вместе.
Я бы предложил gcc-7 быть установленным для удовлетворения build-essential и, возможно, другие зависимые пакеты, и настроить gcc-8 быть вашей установкой gcc по умолчанию.
использование update-alternatives за то gcc автоматически перенаправляется на 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++-8
Это даст вам удобство gcc быть в последней версии, и все же вы сможете вызывать gcc-7 или же gcc-8 непосредственно.
Если позже вы захотите изменить версию gcc по умолчанию, запустите sudo update-alternatives --config gcc, Появится приглашение, похожее на это, которое позволит вам выбрать версию для использования:
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:
Более высокий приоритет - тот, который выбирается автоматически update-alternatives,
GCC 8 на 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 --version
дает 8.1.0 по состоянию на 2018-11. Смотрите также:
Загрузите неверсионные пакеты gcc (
cpp///
g++multilib/etc.) с версией пакета 8 и установите их с помощью
dpkg -i *.deb. Убедитесь, что у вас есть соответствующие пакеты с
-8суффикс устанавливается первым.
http://deb.debian.org/debian/pool/main/g/gcc-defaults/
Причина:
build-essential и многие другие пакеты зависят от неверсированных пакетов (без номера версии в имени пакета), таких как ,
g++и т. д ., и эти неверсионные пакеты зависят от версионированных пакетов (чье имя пакета содержит версию в качестве суффикса), таких как
gcc-X,
g++-X, соответственно.
Неверсионный пакет с версией пакета зависит
отgcc-8, тогда как
gccпакет в официальном репозитории Ubuntu 18.04 поставляется с версией пакета
7.~, что в свою очередь зависит от
gcc-7.
Эти неверсионные пакеты gcc ничего не устанавливают, просто действуют как объявление зависимостей для версионированных пакетов gcc.
Неверсионные пакеты из Debian 10 (кодовое название buster) имеют версии
с8.~. Вы можете безопасно установить их вручную, а зависимые версии пакетов по- прежнему находятся в вашем официальном репозитории Ubuntu, так что это абсолютно безопасно.