Az Alternatives egy olyan mechanizmus, amellyel bizonyos Linux-disztribúciókban számos lehetőség közül választhatunk előnyben részesített szoftvert .
Először a Debianban jelent meg , ahonnan bekerült a Debianból származó disztribúciókba (például Ubuntu). A Red Hat Linuxra is portolták , ahonnan számos RPM - alapú disztribúcióba került.
Egyes funkciókat több program is elláthat, azonban különböző okokból csak az egyik használható „fő” (fő) funkcióként. Például egyszerre csak egy program tud „hallgatni” bármely porton, így például csak egy program működhet levelezőszerverként (a szabványos SMTP porton fogad leveleket). Hasonlóképpen, a különböző levelezőszerverek eltérő hardverrel rendelkeznek, de mindegyiknek biztosítania kell a sendmail program felületét .
Kezdetben manuálisan létrehozott szimbolikus hivatkozásokat használtak erre (például a /usr/bin/sendmail szimbolikus hivatkozásként készült a levelezőszerver szoftvercsomag megfelelő programjára (pl. Exim , Postfix stb.).
Később ezt a módszert számos alkalmazásra kiterjesztették és szabványosították.
Az update-alternatives-t Ian Jackson írta 1995-ben, és a dpkg (Debian csomagkezelő) csomag része és szerves része .
Az Update-alternatives kezeli a szimbolikus hivatkozásokat az előre meghatározott nevektől a valódi alkalmazásokig. Például az /usr/bin/x-www-browser (egy grafikus böngésző) mutathat a /usr/bin/ firefox , /usr/bin/ konqueror , /usr/bin/ opera vagy egy másik böngészőre. A böngészőt meghívó programnak nem kell ismernie a böngészők széles választékát, és nem kell speciális beállítást megadnia a böngésző kiválasztásához, ez a program egyszerűen meghívja az /usr/bin/x-www-browser fájlt, ha szükséges, és egy megfelelően kiválasztott Az alternatíva lehetővé teszi a rendszergazdának, hogy meghatározza, melyik böngésző legyen.
Az alternatív modellen belül egy általános név (például /usr/bin/ sendmail , /usr/bin/ed, /usr/bin/x-www-browser ) nem közvetlenül a kívánt fájlra mutat, hanem egy névre az alternatív könyvtárat , amely viszont már szimbolikus hivatkozás egy olyan fájlra, amely biztosítja a kívánt funkcionalitást. A köznévnek nem kell programnak lennie, lehet például súgóoldal, betűtípus, szótár stb.
Minden adott funkcionalitást biztosító csomag telepítésekor frissítési alternatívákat hívnak meg, amelyek információkat mentenek el bármely alternatíva megjelenéséről (eltűnéséről). A hívás általában a postinst (szkript telepítés után) vagy prerm (szkript eltávolítás előtt) szakaszban történik. Ha a közönséges névre jellemző funkciókat biztosító utolsó csomagot eltávolítják, akkor a szimbolikus hivatkozás és a közös név is törlődik. (Például előfordulhat, hogy egy nem grafikus felületű kiszolgálón nincs /usr/bin/x-www-browser, egy hiányzó diagramrajzoló programban nem található /usr/bin/dia hivatkozás stb.)
Ezenkívül lehetőség van a függőségek csoportosítására az elsődleges hivatkozások (master) és a másodlagos hivatkozások (szolga) megadásával. Mindegyik link lehet automatikus vagy manuálisan beállítható (manuális). Amikor egy linkcsoport automatikus üzemmódban van, az alternatív menedzsmentrendszer önállóan dönti el, hogy melyik programot részesíti előnyben. Kézi módban az alternatívát a rendszergazda állítja be, és ez nem változik. Automatikus módban a preferált program prioritás alapján kerül kiválasztásra .
Bár a /usr/bin/gcc általában a gcc valamelyik verziójára mutató hivatkozás (pl. /usr/bin/gcc-4.3), az update-alternatives nem támogatja általános névként (bár /usr /bin/cc) . Ennek oka a gcc különböző verzióinak egymással való összeférhetetlensége, valamint a gcc egy adott verziójának fenntartása a teljes rendszer állapota szempontjából. A Linux disztribúció fejlesztőjén múlik, hogy egy adott rendszeren melyik fordító a "fő" fordító. [egy]