Ačkoli je distribuce Gentoo zaměřena na aktuální verze softwaru, přesto se může stát, že verze programu, kterou poptáváme, není dosud označená jako stabilní. V takovém případě existuje mnoho postupů, jak balík odmaskovat, ale téměř všechny jsou špatné :) Pokusím se je přehledně sepsat:
V tuto chvíli používám poslední zmiňovaný postup. Má to svou logiku - po nestabilní verzi programu sahám pouze v případě, že stará verze nenabízí funkcionalitu, kterou potřebuji. Odmaskovaná verze už mi funguje a nepožaduji tedy, aby mi program byl automaticky updatován. Tím se vyhnu problému se zavlékáním nových a nových nestabilních verzí do systému.
Instalace s ACCEPT_KEYWORDS:
# ACCEPT_KEYWORDS=~x86 emerge -atv program
Toto je jednoduchá cesta, ale- znemožňuje updaty (emerge world provede downgrade)
- Spolu s balíkem odmaskovává i jeho závislosti
Přidání názvu balíku do /etc/portage/package.keywords:
# echo grp-category/programname >> /etc/portage/package.keywords
Problémy jsou však možná ještě horší:- Závislosti nejsou odmaskovány, takže na tom obvykle skončí výpočet stromu závislostí. Odmaskování závislostí je vcelku pracné.
- Nezřízené updatování systému nejnovějšími verzemi, které jednak vyžaduje odmaskování závislostí, a také často zbytečně rozbíjí systém. Obvykle totiž nemáme zájem automaticky updatovat na nejnovější nestabilní verze.
Přidání názvu atomu do /etc/portage/package.keywords:
# echo =grp-category/programname-1.2.3 >> /etc/portage/package.keywords
Na tento postup jsem přišel teprve nedávno. Oproti předchozím nejsme vystaveni automatickým updatům na vyšší verze, ani automatickým downgradům (pokud daná verze nezmizí z portage). Problém se závislostmi však stále trvá.
V tuto chvíli používám poslední zmiňovaný postup. Má to svou logiku - po nestabilní verzi programu sahám pouze v případě, že stará verze nenabízí funkcionalitu, kterou potřebuji. Odmaskovaná verze už mi funguje a nepožaduji tedy, aby mi program byl automaticky updatován. Tím se vyhnu problému se zavlékáním nových a nových nestabilních verzí do systému.