Установить 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, так что это абсолютно безопасно.