Alternatives

Alternatives

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, который сохраняет информацию о появлении (исчезновении) какой-либо альтернативы. Обычно вызов осуществляется в секциях postist (скрипт после установки) или prerm (скрипт до удаления). Если удаляется последний из пакетов, предоставляющих функциональность, характерную для общего имени, то симлинк и общее имя удаляются. (Например, на сервере без графической оболочки может не быть /usr/bin/x-www-browser, при отсутствующей программе рисования диаграмм не будет ссылки /usr/bin/dia и т. д.)

Дополнительно, существует возможность группировать зависимости, указывая основные ссылки (master) и вторичные (slave). Вторичные ссылки зависящая от первичной ссылки называется группой ссылок (link group).

Каждая ссылка может быть автоматической или заданной вручную (manual). Когда группа ссылок находится в автоматическом режиме, система управления альтернативами самостоятельно решает, какая программа является предпочтительной. В ручном режиме альтернатива задаётся системным администратором и не меняется. В автоматическом режиме выбор предпочтительной программы осуществляется на основании приоритета.

Терминология

  • общее имя (generic name) — имя, для которого формируется несколько альтернатив, например, /usr/bin/editor.
  • симлинк (symlink) — символическая ссылка в каталоге альтернатив.
  • альтернатива (alternative) — имя специфичной программы, предоставляющей функциональность для общего имени.
  • каталог альтернатив (alternative directory) — каталог с симлинками на альтернативы (в debian — /etc/alternatives)
  • административный каталог (administrative directory) — каталог с информацией update-alternatives о статусе альтернатив (в debian — /var/lib/dpkg/alternatives)
  • группа ссылок (link group) — набор связанных симлинков на альтернативы, которые должны меняться синхронно
  • основная ссылка (master link) — ссылка, определяющая значения вторичных ссылок
  • вторичные ссылки (slave link) — ссылки в группе ссылок, зависящие от первичной ссылки
  • автоматический режим (automatic mode) — режим, при котором выбор альтернативы для общего имени производится исходя из приоритетов
  • ручной режим (manual mode) — режим, при котором выбор альтернативы для общего имени производится администратором вручную

Примеры общих имён

  • cc (компилятор языка Си в системе, обычно gcc)
  • ftp (ftp-клиент)
  • editor (редактор, обычно vi, vim, nano или emacs)
  • x-window-manager (оконный менеджер в X-server)
  • x-www-browser (браузер в X-server)
  • www-browser (текстовый браузер)
  • pager (программа «листания» текста, такая как more, less)
  • x-terminal-emulator (эмулятор терминала для X-server)
  • desktop-splash (изображение, показываемое при загрузке gnome)
  • x-cursor-theme (вид курсора в X-server)

/usr/bin/gcc

Несмотря на то, что /usr/bin/gcc обычно является симлинком на одну из версий gcc (например, на /usr/bin/gcc-4.3), update-alternatives не поддерживает его как общее имя (хотя, например, поддерживает /usr/bin/cc). Это связано с несовместимостью различных версий gcc между собой и важностью соблюдения конкретной версии gcc для работоспособности всей системы. Определением того, какой компилятор в данной системе является «основным» занимается мейнтейнер системы.[1]

Источники

  1. #115353 — gcc: cc & gcc should use update-alternatives mechanism — Debian Bug report logs

Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Alternatives" в других словарях:

  • Alternatives — Founded in 1994, Alternatives, Action and Communication Network for International Development, is a non governmental, international solidarity organization based in Montreal, Quebec, Canada.Alternatives works to promote justice and equality… …   Wikipedia

  • Alternatives — Pour les articles homonymes, voir Alternative. Alternatives (titre original : Destiny Three Times) est un roman de Fritz Leiber publié en 1945. Portail de l …   Wikipédia en Français

  • Alternatives Economiques — Alternatives économiques   {{{nomorigine}}} Pays …   Wikipédia en Français

  • Alternatives economiques — Alternatives économiques   {{{nomorigine}}} Pays …   Wikipédia en Français

  • Alternatives internationales — Alternatives économiques   {{{nomorigine}}} Pays …   Wikipédia en Français

  • Alternatives Économiques —   {{{nomorigine}}} Pays …   Wikipédia en Français

  • Alternatives économiques — Pays  France Langue Français Périodicité …   Wikipédia en Français

  • Alternatives to general relativity — are physical theories that attempt to describe the phenomena of gravitation in competition to Einstein s theory of general relativity.There have been many different attempts at constructing an ideal theory of gravity. These attempts can be split… …   Wikipedia

  • Alternatives to Violence Project — (AVP) was started in 1975 by a group of inmates at Green Haven Prison as a workshop in collaboration with the Quakers. It spread throughout the prison system, and eventually into main stream society.AVP is a nationwide and worldwide network of… …   Wikipedia

  • Alternatives non-violentes — Pays  France Langue Français Périodicité Trimestrielle Prix au numéro 12,5€ Date de fondation …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»