Как мне установить более высокую версию GCC, но не по умолчанию?

Я использую Ubuntu 16.04 LTS, где C-компилятор по умолчанию - 'gcc (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.5) 5.4.0 20160609'.

Обычно я не обновляю свои C-компилятор до тех пор, пока я не обновляю всю ОС или не получаю уведомление об этом с помощью обновлений программного обеспечения.

Однако для моей работы по тестированию основного дистрибутива Perl 5 мне нужно иметь возможность оценивать другие результаты тестирования дымовых газов участников запускаются там, где C-компилятор gcc-7.2. Следовательно, я хотел бы установить gcc-7.2, но НЕ стал бы моим C-компилятором по умолчанию. Я хотел бы использовать его только тогда, когда это необходимо для одной конкретной задачи.

В таких ссылках:

Как установить g ++ - 7 на Ubuntu?

... Я нахожу инструкции по прямому обновлению до gcc-7. * Но я действительно не хочу обновлять; Я просто хочу альтернативную установку.

Можно ли это сделать? Если да, то как?

Большое спасибо.

0
задан 22 October 2017 в 01:59

2 ответа

Установка gcc-7 из toolchain-r PPA не должна влиять на установку по умолчанию gcc - она ​​установит /usr/bin/gcc-7 и все поддерживающие файлы, но не будет символически связывать /usr/bin/gcc с ней.

Например, данный

$ gcc --version gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc-7 --version No command 'gcc-7' found, did you mean: Command 'gcc-6' from package 'gccgo-6' (main) Command 'gcc-5' from package 'gcc-5' (main) Command 'gcc-5' from package 'hardening-wrapper' (universe) gcc-7: command not found

Тогда

$ apt-cache policy gcc-7 gcc-7: Installed: (none) Candidate: 7.2.0-1ubuntu1~16.04 Version table: 7.2.0-1ubuntu1~16.04 500 500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages $ sudo apt install gcc-7

Результаты в

$ apt-cache policy gcc-7 gcc-7: Installed: 7.2.0-1ubuntu1~16.04 Candidate: 7.2.0-1ubuntu1~16.04 Version table: *** 7.2.0-1ubuntu1~16.04 500 500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages 100 /var/lib/dpkg/status $ gcc-7 --version gcc-7 (Ubuntu 7.2.0-1ubuntu1~16.04) 7.2.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

, но

$ gcc --version gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
0
ответ дан 18 July 2018 в 04:52

Установка gcc-7 из toolchain-r PPA не должна влиять на установку по умолчанию gcc - она ​​установит /usr/bin/gcc-7 и все поддерживающие файлы, но не будет символически связывать /usr/bin/gcc с ней.

Например, данный

$ gcc --version gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc-7 --version No command 'gcc-7' found, did you mean: Command 'gcc-6' from package 'gccgo-6' (main) Command 'gcc-5' from package 'gcc-5' (main) Command 'gcc-5' from package 'hardening-wrapper' (universe) gcc-7: command not found

Тогда

$ apt-cache policy gcc-7 gcc-7: Installed: (none) Candidate: 7.2.0-1ubuntu1~16.04 Version table: 7.2.0-1ubuntu1~16.04 500 500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages $ sudo apt install gcc-7

Результаты в

$ apt-cache policy gcc-7 gcc-7: Installed: 7.2.0-1ubuntu1~16.04 Candidate: 7.2.0-1ubuntu1~16.04 Version table: *** 7.2.0-1ubuntu1~16.04 500 500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages 100 /var/lib/dpkg/status $ gcc-7 --version gcc-7 (Ubuntu 7.2.0-1ubuntu1~16.04) 7.2.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

, но

$ gcc --version gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
0
ответ дан 24 July 2018 в 18:11
  • 1
    Для третьей команды в ваших инструкциях выше, я не получаю указанный результат. Я получаю: N: Unable to locate package gcc-7. Что мне не хватает? – James E Keenan 22 October 2017 в 02:36
  • 2
    @JamesEKeenan, вы на самом деле добавили toolchain-r PPA в свою систему? и запустите sudo apt update? – steeldriver 22 October 2017 в 02:48
  • 3
    Ты прав. Мне нужно было выполнить некоторые из команд, перечисленных в ссылке, приведенной ранее с вашей. Это последовательность, которой я придерживался: $ sudo nano /etc/apt/preferences; sudo apt-get update; sudo add-apt-repository ppa:ubuntu-toolchain-r/test; sudo apt-get update; apt-cache policy gcc-7; sudo apt install gcc-7. В этот момент gcc --version и gcc-7 --version дали разные результаты, как и ожидалось, и я смог скомпилировать perl 5 blead путем настройки с помощью: sh ./Configure -des -Dusedevel -Dcc="gcc-7". – James E Keenan 22 October 2017 в 03:50

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

Похожие вопросы: