Alternatives

Материал из ALT Linux Wiki
Перейти к навигации Перейти к поиску

Название пакета[править]

alternatives

Назначение[править]

Система альтернатив предназначена для того, чтобы из нескольких установленных альтернативных программ выбрать одну, которая будет исполняться по умолчанию. Подобной программой может быть, например, текстовый редактор, браузер, почтовый клиент и другие. В системе заданы ряд переменных альтернатив, список которых можно увидеть в директории /etc/alternatives/links или с помощью команды alternatives-list. Альтернативы по своей сути являются символическими ссылками, указывающими на конкретную программу, исполняемую при запуске указанной альтернативы (если точнее, то альтернатива ссылается на ссылку, находящуюся в директории /etc/alternatives/links, а уже эта ссылка ссылается на реальную программу). А утилиты просто перенаправляют ссылку, на которую указывает конкретная переменная альтернативы, на заданную программу.

Обратите внимание, что система альтернатив не является аналогом типов MIME, то есть соотнесения типа файла к открывающей этот файл программе. Настройки типов MIME производятся в соответствующей графической среде, например KDE или Xfce

Команды из пакета[править]

alternatives-auto[править]

Изменяет значение переменной альтернативе, указанной в качестве аргумента, на значение по умолчанию. В качестве аргумента должно быть передано значение переменной альтернативы с полным путем.

# alternatives-auto /usr/bin/x-www-browser
alternatives-auto: Do not forget to run alternatives-update to apply changes.

Аналогичный результат получается, если вручную удалить соответствующую строку из файла/etc/alternatives/manual

При запуске команды без аргументов никакие действия не выполняются.

alternatives-list[править]

Выводит список доступных переменных альтернатив (первый столбец) и текущие заданные им значения (последний столбец). Запускается без аргументов.

$ alternatives-list
...
/usr/bin/x-www-browser points to /usr/bin/firefox
/usr/bin/cancel points to /usr/bin/cancel-cups
/usr/bin/alterator-browser-qt points to /usr/bin/alterator-browser-qt5
/usr/lib64/cifs-utils/idmap-plugin points to /usr/lib64/cifs-utils/idmapwb.so
/usr/lib/openssh/ssh-askpass points to /usr/lib/openssh/plasma5-ksshaskpass
/usr/bin/vim points to /usr/bin/vim-enhanced

Также существующие на данный момент переменные альтернативы можно увидеть в директории /etc/alternatives/links

alternatives-manual[править]

Устанавливает значение переменной альтернативе, указанной в первом аргументе, в значение, указанное во втором аргументе. Оба аргумента должны быть полными путями.

# alternatives-manual /usr/bin/x-www-browser /usr/bin/firefox  
alternatives-manual: Do not forget to run alternatives-update to apply changes.

После успешного завершения команды для внесения изменений в систему следует запустить alternatives-update В качестве второго аргумента может выступать не любая программа, а только та, для которой в каком-либо из файлов в директории /etc/alternatives/packages.d присутствует строка, соотнесенная с желаемой переменной альтернативой. Результат успешного назначения программы переменной альтернативе заносится в файл /etc/alternatives/manual, однако, в процессе выполнения команды alternatives-update строка может быть автоматически удалена из файла, например, если программа не существует или отсутствует в директории /etc/alternatives/packages.d.

alternatives-update[править]

Запускается без аргументов. Создает и обновляет все переменные альтернативы в соответствии с конфигурацией, заданной настройками альтернатив, расположенными в директории /etc/alternatives.

alternatives-validate[править]

Запускается без аргументов. Проверяет конфигурационные файлы в директории /etc/alternatives/packages.d на правильность.

Создание новой переменной альтернативы[править]

Для того, чтобы создать новую переменную, следует либо добавить ее в новую строчку к уже существующему файлу в директории /etc/alternatives/packages.d (если файл для запускаемой программы уже существует), либо создать новый файл (если его нет). Файл состоит из трех столбцов. В первом столбце записана переменная альтернатива, во втором программа (вместе с путем), на которую будет создана символическая ссылка. В третьем столбце указывают приоритет, который присваивается данной программе. Чем выше число, тем выше приоритет. Например:

 /usr/bin/xbrowser       /usr/bin/firefox        200
 /usr/bin/x-www-browser  /usr/bin/firefox        200

После этого проверить правильность заполнения файла командой:

# alternatives-validate

а затем выполнить:

# alternatives-update

По умолчанию переменной альтернативе назначается та программа из всех, соотнесенных с данной переменной альтернативой в файлах, находящихся в директории /etc/alternatives/packages.d, у которой указан больший приоритет (чем больше число, тем выше приоритет).

Удаление переменной альтернативы[править]

Для удаления переменной альтернативы следует из файлов в директории /etc/alternatives/packages.d удалить все строки, в которых указана данная переменная. После этого выполнить

# alternatives-update

Переменные альтернативы (символические ссылки) как в директории /etc/alternatives/links, так и в целевом пути переменной альтернативы будут удалены автоматически.

Отличия от системы альтернатив Debian и его производных[править]

Пользователям, знакомым с аналогичной системой альтернатив по дистрибутиву Debian или производным от него, следует иметь в виду, что в дистрибутиве Alt Linux команды и их синтаксис отличаются. Хотя в пакете присутствует команда update-alternatives, совпадающая по названию с командой из Debian, она по умолчанию является символической ссылкой на /bin/true, что означает, что запуск этой команды всегда сразу же приводит к успешному завершению программы, а сама команда ничего не делает.