#c #c #docker #gcc #centos
#c #c #docker #gcc #centos
Вопрос:
Я пытаюсь обновить GCC на centos 6.0 (для многоуровневого пипсового колеса в docker). Поскольку более поздние версии gcc недоступны для скачивания, я сам создал gcc-10.2. Сейчас я пытаюсь обновить centos, чтобы использовать новые программы gcc / g вместо старых. В Ubuntu команда для этого
update-alternatives --install /usr/bin/g g /usr/bin/g -10
и похоже, что у centos также есть аналогичный инструмент. Однако, несмотря на чтение документации, я не могу заставить команду (из нескольких вариантов) работать. Вот команда, которую я запускаю:
[root@aa5149016e33 /]# update-alternatives --install /usr/bin/g g gcc-10.2-centos/bin/g
alternatives version 1.3.49.5 - Copyright (C) 2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.
usage: alternatives --install <link> <name> <path> <priority>
[--initscript <service>]
[--slave <link> <name> <path>]*
alternatives --remove <name> <path>
alternatives --auto <name>
alternatives --config <name>
alternatives --display <name>
alternatives --set <name> <path>
common options: --verbose --test --help --usage --version
--altdir <directory> --admindir <directory>
[root@aa5149016e33 /]#
Как я могу обновить centos, чтобы команды
gcc --version
и
g --version
обратитесь к gcc 10.2?
Также обратите внимание, что я работаю из корневого каталога
[root@aa5149016e33 /]# tree -L 1 .
.
├── bin
├── boot
├── cgroup
├── dev
├── etc
├── gcc-10.2-centos
├── gcc-10.2-centos.zip
├── home
├── lib
├── lib64
├── lost found
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── selinux
├── srv
├── sys
├── tmp
├── usr
└── var
и
[root@aa5149016e33 /]# tree -L 1 gcc-10.2-centos/bin/
gcc-10.2-centos/bin/
├── c
├── cpp
├── g
├── gcc
├── gcc-ar
├── gcc-nm
├── gcc-ranlib
├── gcov
├── gcov-dump
├── gcov-tool
├── lto-dump
├── x86_64-pc-linux-gnu-c
├── x86_64-pc-linux-gnu-g
├── x86_64-pc-linux-gnu-gcc
├── x86_64-pc-linux-gnu-gcc-10.2.0
├── x86_64-pc-linux-gnu-gcc-ar
├── x86_64-pc-linux-gnu-gcc-nm
└── x86_64-pc-linux-gnu-gcc-ranlib
0 directories, 18 files
Ответ №1:
Fedora / CentOS не использует альтернативы для выбора компилятора. Это правда, что Fedora / CentOS имеет и использует пакет альтернатив. Однако alternatives не управляет автоматически каждым установленным программным приложением, и каждый программный пакет должен быть явно настроен для использования альтернатив, а в Fedora / CentOS это просто не делается для gcc.
Создание gcc — это немалый подвиг. Для сравнения, использование явного пути к вашей пользовательской сборке gcc кажется незначительной мелочью. Или сначала поместите местоположение вашего пользовательского gcc в переменную среды PATH и перейдите к чему-то другому.