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

Другие вопросы по тегам