Эту статью следует викифицировать. |
Alternatives — механизм выбора предпочтительного ПО среди нескольких вариантов в некоторых дистрибутивах Linux.
Впервые появился в Debian, откуда попал в дистрибутивы, производные от Debian (такие, как Ubuntu). Также был перенесён в Red Hat Linux, откуда попал во многие RPM-based дистрибутивы.
Определённые функции могут предоставляться несколькими программами, однако, в силу тех или иных причин, в качестве «главной» (основной) может использоваться только одна. Например, «слушать» какой-либо порт в один момент времени может только одна программа, таким образом, например, в качестве почтового сервера (принимающего почту по стандартному порту SMTP) может работать только одна программа. Аналогично, разные почтовые серверы имеют различное устройство, однако все они должны предоставлять интерфейс программы sendmail.
Изначально для этого использовались создаваемые вручную символические ссылки (например, /usr/bin/sendmail делался симлинком на соответствующую программу из пакета программ почтового сервера (такого, как Exim, Postfix и т. д.).
В дальнейшем этот метод был расширен на многие применения и был стандартизирован.
update-alternatives написан Яном Джексоном (Ian Jackson) в 1995 и входит в состав пакета dpkg (менеджера пакетов Debian) и является его неотъемлемой частью.
Update-alternatives управляет симлинками с заранее оговоренных имён на реальные приложения. Например, /usr/bin/x-www-browser (графический браузер) может указывать на /usr/bin/firefox, /usr/bin/konquerior, /usr/bin/opera или на другой браузер. Программе, которой нужно вызвать браузер, не нужно знать о всём многообразии браузеров или предоставлять особую настройку выбора браузера, эта программа просто вызывает /usr/bin/x-www-browser когда нужно, а правильно выбранная альтернатива предоставляет возможность администратору системы указать, каким именно этот браузер должен быть.
В рамках модели alternatives общее имя (такое, как /usr/bin/sendmail, /usr/bin/ed, /usr/bin/x-www-browser) указывает не на нужный файл напрямую, а на имя в каталоге альтернатив, которое, в свою очередь уже является симлинком на файл, предоставляющий нужную функциональность. Общее имя не обязательно должно быть программой, например, это может быть страница справки, шрифта, словаря и т. д.
При установке каждого пакета, который предоставляет специфичную функциональность, вызывается update-alternatives, который сохраняет информацию о появлении (исчезновении) какой-либо альтернативы. Обычно вызов осуществляется в секциях postinst (скрипт после установки) или prerm (скрипт до удаления). Если удаляется последний из пакетов, предоставляющих функциональность, характерную для общего имени, то симлинк и общее имя удаляются. (Например, на сервере без графической оболочки может не быть /usr/bin/x-www-browser, при отсутствующей программе рисования диаграмм не будет ссылки /usr/bin/dia и т. д.)
Дополнительно, существует возможность группировать зависимости, указывая основные ссылки (master) и вторичные (slave). Каждая ссылка может быть автоматической или заданной вручную (manual). Когда группа ссылок находится в автоматическом режиме, система управления альтернативами самостоятельно решает, какая программа является предпочтительной. В ручном режиме альтернатива задаётся системным администратором и не меняется. В автоматическом режиме выбор предпочтительной программы осуществляется на основании приоритета.
Несмотря на то, что /usr/bin/gcc обычно является симлинком на одну из версий gcc (например, на /usr/bin/gcc-4.3), update-alternatives не поддерживает его как общее имя (хотя, например, поддерживает /usr/bin/cc). Это связано с несовместимостью различных версий gcc между собой и важностью соблюдения конкретной версии gcc для работоспособности всей системы. Определением того, какой компилятор в данной системе является «основным» занимается мейнтейнер системы.[1]
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .