Я не использовал alternatives раньше, и, возможно, я делаю это неправильно: я, конечно, не получаю ожидаемых результатов. Мне нужно использовать две версии GCC, и я хотел настроить их, используя alternatives . Вот что я сделал:

$ sudo alternatives --install /usr/bin/gcc gcc /opt/gcc4.6.3/bin/gcc 20000
$ sudo alternatives --config gcc

There is 1 program that provides 'gcc'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/gcc4.6.3/bin/gcc

Enter to keep the current selection[+], or type selection number: 1
$ which gcc
/usr/lib64/ccache/gcc

Что здесь происходит? Почему gcc все еще установлен в другом месте? Почему этот вариант (который по какой-то причине выбирают независимо от моего выбора) даже не указан в качестве альтернативы?

Я использую Fedora 17, если это имеет значение.

1 ответ1

1

Ваша команда, в основном:

alternatives --install /usr/bin/gcc gcc /opt/gcc4.6.3/bin/gcc

Это означает, что система альтернатив настроит символическую ссылку /usr /bin /gcc так, чтобы она указывала на правильный двоичный файл в /opt или что-то еще.

Это не изменит пути, по which вы видите, в каких и аналогичных командах, которые просто ищут двоичный файл с именем gcc в $ PATH, и для альтернативной системы практически невозможно динамически изменить $ PATH вашей уже запущенной оболочки.

Кроме того , вы CCache установили, что означает CCache каталог оболочки скрипты помещается в $ PATH перед обычным / USR / бен, так which всегда будет путь вывода обертка скрипта. (При запуске сценарий будет искать настоящий gcc снова используя тот же $ PATH.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .