7. srpna 2010

KVP č. 13 - Jak zakázat aktualizaci některých balíčků v Mandrivě

Jednou z nevýhod správy softwaru v Mandrivě je fakt, že nelze pomocí nějakého nástroje nastavit, které balíčky chceme/nechceme aktualizovat, musíme k tomu totiž editovat textový soubor, což není moc přívětivé pro začátečníky. V dnešním díle si tak ukážeme jak zakázat aktualizaci určitého software, nejprve si ale řekneme příklad, kdy se tohle hodí provést.

a) Typický příklad

Každý trošku zkušenější uživatel linuxu zná Wine, je to nástroj, pomocí kterého lze spouštět aplikace a hry z Windows přímo v jakékoli linuxové distribuci. Avšak pro každou aplikaci či hru se hodí jiná verze Wine. Mandriva je plně podporovaná i ze strany komunity kolem Wine a není problém stáhnout i wine starší (tedy to, které si s Vámi používanou hrou či programem rozumí nejvíce), které již v klasických repozitářích Mandrivy dávno není. Ze stránek WINE tak stáhnete starší verzi wine a pohodlně wine nainstalujete, mám zkušenosti i s tím, že i starší wine, které byly vytvářeny pro starší Mandrivy dobře fungují i v Mandrivě novější.

Zde však přichází problém - jakmile nainstalujete starší Wine, tak Vám za pár desítek minut či hodin (záleží na nastavení systému) systém ohlásí, že našlo nové aktualizace, ve kterém se nachází i novější wine, které si třeba již nerozumí s Vámi používanou hrou či programem, a proto je dobré právě zakázat aktualizaci Wine.

b) Návod

Jak již je zmíněno v úvodu článku, k zakázání aktualizací určitého software je bohužel nutné editovat konfigurační soubor, čili si otevřete konzoli a piště:

su (na požádání napište root heslo)
gedit /etc/urpmi/skip.list

Otevře se Vám textový soubor, do kterého je nutné připsat jména balíčků, které si nepřejete aktualizovat. Buď tedy uvedete jména všech balíčků, ze kterých se daná aplikace skládá, nebo použijete speciální zápis, pomocí kterého systému řeknete, že všechny balíčky obsahující v názvu určitý text nechcete aktualizovat, klasické regulární výrazy mi bohužel nefungovali (ač byly pravděpodobně dobře napsány - prošly online testem regulárních výrazů).

V našem případě s wine by jste museli buď uvést dva názvy (wine a wine32) nebo dopsat jeden speciální zápis:

/^wine/

Tímto řeknete, že všechny balíčky obsahující v názvu text "wine" si nepřejete aktualizovat. Výsledný soubor tedy bude mít tvar:

# Here you can specify the packages that won't be upgraded automatically
# for example, to exclude all apache packages :
# /^apache/
/^wine/

Každý řádek začínající hashem (#) je systémem ignorován, jedná se o poznámky - systém tedy bude brát v potaz pouze řádek, který jsme připsaly. Stačí tedy jen uložit soubor a od té chvíle se tedy nebude wine aktualizovat. Pokud si to v budoucnu rozmyslíte, pak stačí smazat Vámi přidaný řádek.

Žádné komentáře:

Okomentovat