[ předchozí ] [ Obsah ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ další ]


Poznámky k distribuci Debian GNU/Linux 4.0 (,,etch''), PowerPC
Kapitola 4 - Aktualizace předchozích verzí systému


4.1 Příprava na aktualizaci systému

Před aktualizací systému je velmi vhodné vytvořit úplnou záložní kopii dat, nebo přinejmenším zálohovat data a konfigurační soubory, které byste jen neradi ztratili. Nástroje pro aktualizaci systému jsou zcela spolehlivé, ale například selhání hardware během aktualizace by mohlo mít nedozírné důsledky a mohlo by vést až k poškození systému.

Doporučujeme se podívat také na problémy explicitně vypsané v Změny v systému, Kapitola 5. Kapitola se sice přímo nezabývá procesem aktualizace, ale některé body mohou být i přesto relevantní.


4.1.1 Záloha dat a konfigurace

Nejdůležitější pro vás zřejmě bude zazálohovat obsah adresářů /etc, /var/lib/dpkg, /var/lib/aptitude/pkgstates a rovněž výstup z dpkg --get-selections "*" (uvozovky jsou důležité).

Aktualizace samotná v domovských adresářích uživatelů nic nemění, avšak existují aplikace (např. části balíku Mozilla a desktopových prostředí KDE a GNOME), které při spuštění nové verze přepisují stará nastavení novými výchozími hodnotami. Jako prevenci můžete zkusit zazálohovat všechny skryté soubory a adresáře (tzv. tečkové soubory) z uživatelských adresářů, což pomůže při případné obnově.

Instalační procedura musí být vykonána s privilegii superuživatele. Je tedy nutné buďto se přihlásit jako uživatel root, nebo nabýt jeho práv prostřednictvím programů su nebo sudo.


4.1.2 Informujete uživatele s předstihem

Je dobré informovat uživatele o změnách, které v sytému vlivem aktualizace nastanou. Je to vhodné i v případě, že se uživatelé na váš systém přihlašují vzdáleně (pomocí ssh) a vůbec nemusí změny během aktualizace systému postřehnout. Pokud chcete systém aktualizovat obzvlášť bezpečně, zazálohujte nebo odpojte před aktualizací oblast pro domovské adresáře (/home).

Při přechodu na etch se nejspíše aktualizuje jádro, takže bude vyžadován restart systému. Ten se typicky provádí po skončení přechodu.


4.1.3 Příprava na záchranu

Kvůli mnoha změnám, které se v jádře udály mezi sargem a etchem v oblasti ovladačů, rozpoznávání hardwaru a pojmenování a uspořádání zařízení, zde existuje opravdové riziko, že po aktualizaci při restartu systému zaznamenáte problémy. Mnoho potenciálních změn je zachyceno v této a následujících kapitolách.

Z tohoto pohledu dává smysl připravit záchrannou cestu, pomocí které budete moci systém obnovit v případě, že se nepodaří následný restart, resp. že se u vzdálených systémů nepodaří nahodit síťování.

Při vzdálené aktualizaci přes ssh se doporučuje mít záložní plán (alias konzoli na sériové lince) pro případ, že se něco nepovede. Je totiž jistá šance, že se po aktualizaci jádra a následném restartu změní jména některých zařízení (viz Změna ve výčtu zařízení, Oddíl 4.6.4) a bude nutné opravit konfiguraci přes lokální konzoli. To stejné platí pro případ, že počítač omylem během aktualizace restartujete.

Snad každého napadne zkusit znovu restartovat s původním jádrem. Z mnoha důvodů, které jsou porůznu roztroušeny v těchto poznámkách, není zaručeno, že se to povede.

Pokud staré jádro selže, musíte nalézt alternativní způsob, jak zavést svůj systém, abyste jej mohli následně opravit. Jednou z možností je použití speciálního záchranného obrazu, nebo nějakého linuxového live CD. Po zavedení náhradního systému byste měli být schopni připojit svůj kořenový souborový systém a chrootovat se do něj, což vám umožní prozkoumání a opravení problému.

Jinou možností je použití záchranného režimu instalačního systému etche. Výhodou použití instalačního systému je to, že si z mnoha různých instalačních metod můžete vybrat tu, která se pro vaši situaci hodí nejvíce. Více informací naleznete v osmé kapitole instalační příručky a v Debian Installer FAQ.


4.1.3.1 Ladicí shell při zavádění pomocí initrd

initramfs-tools přidávají do vytvářeného initrd shell[4], který se dá použít pro ladění. Jestliže se například nepovede připojit kořenový souborový systém, budete vhozeni do tohoto ladicího shellu, který obsahuje základní příkazy, které umožní vysledovat problém a v lepším případě jej i opravit.

Základní věci, které byste měli zkontrolovat, patří: přítomnost správných souborů zařízení v /dev; které moduly jsou zavedeny (cat /proc/modules); výstup dmesg ohledně chyb při nahrávání ovladačů. Výstup dmesg také prozradí, které soubory zařízení byly přiřazeny kterým diskům; to byste mělo porovnat proti výstupu příkazu echo $ROOT, čímž se ujistíte, že se kořenový souborový systém nachází na očekávaném zařízení.

Podaří-li se vám problém opravit, příkazem exit ukončíte ladicí shell a zavádění bude pokračovat v místě, kde bylo přerušeno. Následně byste měli opravit příčinu problému a znovu vygenerovat initrd, aby již příští zavádění neselhalo.


4.1.4 Připravte si záchrannou síť

Aktualizaci distribuce je možné provést lokálně z textové virtuální konzoly (nebo z přímo napojeného sériového terminálu), nebo vzdáleně pomocí ssh klienta.

Jako další pojistku doporučujeme instalovat ve virtuální konzoli programu screen, který umožňuje bezpečné odpojení a nové připojení ke stávajícímu sezení. Díky domu zajistí nepřerušený proces aktualizace i v případech, kde se vám rozpadne spojení.

Důležité: Během aktualizace systému byste neměli používat služby telnet, rlogin, ani rsh. Rovněž byste systém neměli aktualizovat ze sezení spravovaného programem xdm běžícím na témže systému. To platí i pro varianty wdm, gdm a kdm. Během aktualizace jsou tyto služby přerušeny. Přerušení během aktualizace systému je samozřejmě problematické. V horším případě může vyústit až do nekonzistentně nainstalovaného systému.


4.1.5 Jádra řady 2.2 již nejsou podporována

V případě, že používáte jádro dřívější než 2.4.1, měli byste před aktualizací glibc přejít minimálně na jádro z řady 2.4, a to ještě před zahájením aktualizace. Doporučujeme však rovnou přejít na jádro 2.6.8, které je též součástí sarge.


4.2 Kontrola stavu systému

Aktualizační proces popsaný v této kapitole byl navržen pro přechod z ,,čistého'' systému sarge bez balíků třetích stran. Konkrétně jsou známé problémy s balíky, které instalují programy do /usr/X11R6/bin/, což způsobuje problémy kvůli přechodu na X.Org (viz Přechod z XFree86 na X.Org, Oddíl 5.3). Jestliže máte takové balíky nainstalovány, je rozumné je dočasně odinstalovat, což zvýší spolehlivost aktualizace.

Také se předpokládá, že byl systém aktualizován na poslední verzi sarge. Pokud si nejste jisti, následujte pokynů v Aktualizace systému sarge, Oddíl A.1.


4.2.1 Kontrola naplánovaných akcí ve správci balíků

V některých případech se může stát, že pokud byly balíky instalovány pomocí apt-get místo aptitude, aptitude to občas zmate a označí je k odstranění, protože si myslí, že je nikdo nepoužívá. Obecně byste se měli přesvědčit, že je systém před velkou aktualizací plně aktualizovaný a ,,čistý''.

Proto je potřeba ověřit, zda se ve správci balíků aptitude nevyskytují nějaké naplánované akce. Pokud totiž existují balíky naplánované k odstranění, může to negativně ovlivnit průběh aktualizace. Mějte prosím na paměti, že tento postup je možný pouze v případě, pokud váš sources.list ukazuje stále na sarge; a ne na stable nebo etch; viz Kontrola zdrojů balíků, Oddíl A.2.

Spusťte tedy aptitude v interaktivním režimu a stiskněte ,,g''. Pokud se zobrazí nějaké naplánované akce, měli byste je zkontrolovat a buď je provést, nebo vrátit zpět. Jestliže nebyly naplánovány žádné akce, zobrazí se hláška ,,Žádné balíky nejsou označeny k instalaci, aktualizaci nebo odstranění''.


4.2.2 Zákaz vypichování balíků

Pokud máte nastaven APT, aby instaloval vybrané (vypíchnuté) balíky z jiné, než stabilní distribuce (např. testovací), budete možná muset změnit pravidla pro vypichování (v souboru /etc/apt/preferences) tak, abyste povolili aktualizace balíků na nové verze balíků ve stabilní verzi. Podrobnosti o vypichování balíků naleznete v apt_preferences(5).


4.2.3 Kontrola stavu balíků

Nehledě na metodu aktualizace systému se nejdříve doporučuje zkontrolovat stav všech balíků a prověřit, jestli jsou všechny balíky schopny aktualizace. Pomocí následujícího příkazu je možné vypsat seznam balíků, jenž mají buďto status Half-Installed, Failed-Config, nebo jsou v jiném chybovém stavu.

     # dpkg --audit

Stav všech balíků lze prohlédnout rovněž pomocí programu dselect, aptitude, nebo příkazem

     # dpkg -l | pager

nebo

     # dpkg --get-selections "*" > ~/curr-pkgs.txt

Doporučuje se, abyste před aktualizací odstranili u balíků status podržení v aktuálním stavu (,,on hold''). Pokud bude mít kterýkoliv z významných balíků nastaven tento příznak, nebude jej možné aktualizovat a tím pádem celý proces skončí neúspěchem.

aptitude používá pro označení balíků v podrženém stavu odlišný způsob než apt-get a dselect. Balíky s příznakem ,,on hold'' lze pro aptitude zobrazit příkazem

     # aptitude search "~ahold" | grep "^.h"

Chcete-li vypsat podržené balíky pro apt-get, použijte

     # dpkg --get-selections | grep hold

Pokud v systému udržujete vlastní změněné balíky, to jest balíky vzniklé změnou a překladem standardního balíku z distribuce, měli byste jej označit příznakem ,,on hold''. Tímto preventivním opatřením zajistíte jeho setrvání v aktuálním stavu -- novější balík z distribuce jej nenahradí.

Příznak ,,on hold'' můžete nastavit pro aptitude příkazem

     # aptitude hold balík

Příznak odeberete analogicky, stačí nahradit hold za unhold.

V této fázi je lepší se přesvědčit, že sources.list stále ukazuje na předchozí stabilní verzi pro případ, že byste potřebovali něco spravit. Viz Kontrola zdrojů balíků, Oddíl A.2.


4.2.4 Neoficiální zdroje

Máte-li v systému nainstalované balíky odjinud než z Debianu, může se stát, že budou kvůli konfliktům během aktualizace odstraněny. Pokud jste je nainstalovali ze zdroje balíků v /etc/apt/sources.list, podívejte se, zda daný archiv nabízí balíky sestavené pro etch, a poté se změnou zdrojů oficiálních balíků příslušně změňte i tyto zdrojové řádky.

Někteří uživatelé mohou mít neoficiální verze ,,novějších'' balíků, které jsou v Debianu obsaženy ve verzích běžně dostupných v distribuci sarge. Tyto balíky pravděpodobně způsobí konflikty mezi soubory[5]. Část Možné problémy během nebo po aktualizaci, Oddíl 4.5.8 obsahuje některé informace o řešení těchto problémů.


4.3 Ruční odznačení balíků

Abyste aptitude zabránili v odstranění některých balíků, které byly nainstalovány kvůli závislostem, musíte u nich zrušit příznak, že byly instalované automaticky. U desktopových instalací to zahrnuje OpenOffice.org a Vim:

     # aptitude unmarkauto openoffice.org vim

a také jádro 2.6, pokud jste jej instalovali pomocí metabalíku:

     # aptitude unmarkauto $(dpkg-query -W 'kernel-image-2.6.*' | cut -f1)

Poznámka: seznam balíků, které jsou v aptitude označené jako instalované automaticky, můžete zjistit příkazem:

     # aptitude search 'i~M <package name>'

4.4 Příprava zdrojů pro APT

Před zahájením aktualizace systému musíte nastavit konfigurační soubor pro apt, jenž je umožněn v /etc/apt/sources.list.

apt při aktualizaci či instalaci uvažuje pouze balíky, které může nalézt prostřednictvím zdrojů uvedených v konfiguračním souboru a začínajících na deb. Instalován je balík s nejvyšší dostupnou verzí, přitom zdroje uvedené na předcházejících řádcích mají vždy vyšší prioritu než jejich následníci. (Prakticky lze v souboru uvést nejdříve například zdroje z lokálního pevného disku, dále CD-ROM a na poslední místo uvést zdroje z vnější počítačové sítě.)

Vydání může být odkazováno svým kódovým jménem (např. sarge, etch) nebo svým stavovým jménem (tj. oldstable, stable, testing, unstable). Odkazování na vydání jeho kódovým jménem má tu výhodu, že nikdy nebudete překvapeni novou verzí a proto je to doporučený postup. To ovšem také znamená, že budete muset sledovat ohlášení o nové verzi sami. Použijete-li stavové jméno, poznáte novu verzi podle toho, že okamžitě po vydání vám najednou bude k dispozici spousty aktualizací.


4.4.1 Nastavení APT pro aktualizaci přes Internet

Implicitní nastavení obsahuje údaje pro instalaci z našich hlavních archivů v Internetu, to si však asi budete přát změnit. Po úpravě souboru /etc/apt/sources.list je možné používat i jiné zdroje, především archivy, které jsou k vám na síti blíže a budou mít rychlejší odezvu a větší přenosové rychlosti.

Adresy FTP a HTTP archivů Debianu je možné najít na http://www.debian.org/distrib/ftplist (podívejte se na kapitolu ,,Full list of mirrors''). HTTP zrcadla jsou obvykle rychlejší než FTP zrcadla.

Předpokládejme například, že váš nejbližší archiv je http://mirrors.kernel.org/debian/. Při jeho prohledávání pomocí WWW prohlížeče nebo pomocí FTP klienta jste zjistili, že hlavní adresáře jsou:

     http://mirrors.kernel.org/debian/dists/etch/main/binary-powerpc/...
     http://mirrors.kernel.org/debian/dists/etch/contrib/binary-powerpc/...

Pokud chcete používat tento archiv, přidejte do souboru sources.list následující řádek:

     deb http://mirrors.kernel.org/debian etch main contrib

Podadresář dists je do cesty přidán implicitně a argumenty za názvem distribuce jsou určeny pro rozšíření takto specifikované cesty do několika adresářů.

Poté co do souboru sources.list přidáte nové zdroje balíků, zakomentujte předchozí údaje. To jest na začátek všech řádků začínající deb vložte symbol hash (#).


4.4.2 Nastavení APT pro aktualizaci z lokálního archivu

Místo používání FTP nebo HTTP zrcadel budete asi chtít použít lokální archiv, proto upravte soubor /etc/apt/sources.list pro použití zrcadla na lokálním disku (nebo třeba souborového systému exportovaného pomocí NFS).

Předpokládejme, že vaše balíky jsou například v adresáři /var/ftp/debian/ a mají následující hlavní adresáře:

     /var/ftp/debian/dists/etch/main/binary-powerpc/...
     /var/ftp/debian/dists/etch/contrib/binary-powerpc/...

Do souboru sources.list je nutné přidat následující řádek:

     deb file:/var/ftp/debian etch main contrib

Podadresář dists je do cesty přidán implicitně a argumenty za názvem distribuce jsou určeny pro rozšíření takto specifikované cesty do několika adresářů.

Poté co do souboru sources.list přidáte nové zdroje balíků, zakomentujte předchozí údaje. To jest na začátek všech řádků začínající deb vložte symbol hash (#).


4.4.3 Nastavení APT pro aktualizaci z CD nebo DVD

Pokud chcete používat výhradně sadu CD, zakomentujte v souboru /etc/apt/sources.list existující řádky začínající deb tím, že na jejich začátek vložíte znak hash (#).

Přesvědčte se, že je ve vašem souboru /etc/fstab řádek umožňující připojit CD-ROM mechaniku na adresář /cdrom (pro metodu apt-cdrom je nutné mít adresář pro připojení CD-ROM právě /cdrom). Pokud je například /dev/hdc vaše CD-ROM mechanika, soubor /etc/fstab by měl obsahovat obdobný řádek:

     /dev/hdc /cdrom auto defaults,noauto,ro 0 0

Ve čtvrtém sloupci by mezi slovy defaults,noauto,ro nesmí být mezery.

Pokud chcete ověřit funkčnost, vložte do mechaniky CD a spusťte

     # mount /cdrom   #(příkaz připojí CD na daný adresář)
     # ls -alF /cdrom #(příkaz vypíše obsah připojeného CD)
     # umount /cdrom  #(příkaz odpojí CD)

Dále spusťte

     # apt-cdrom add

pro každý binární CD-ROM z vaší sady debianích CD. Tím se přidají data o každém CD do vaší APT databáze.


4.5 Aktualizace balíků

Doporučený nástroj pro přechod na vyšší verzi Debian GNU/Linuxu se nazývá aptitude. Její výhoda oproti přímému použití apt-get spočívá v lepším algoritmu řešení závislostí mezi balíky.

Nezapomeňte připojit všechny potřebné diskové oblasti (zejména oblasti s kořenovým souborovým systémem a adresářem /usr) pro čtení i zápis (read-write) příkazem:

     # mount -o remount,rw /adresář

Dále byste se měli (raději dvakrát) přesvědčit, že zdroje v /etc/apt/sources.list ukazují na ,,etch'' nebo na ,,stable''. Neměl by tam být žádný záznam ukazující na sarge. Poznámka: záznamy pro CD většinou ukazují na ,,unstable'', ale nenechte se tím zmást a neměňte je.


4.5.1 Nahrávání sezení

Důrazně doporučujeme zaznamenat průběh aktualizace systému pomocí programu /usr/bin/script. Jestliže se objeví nějaký problém, minimálně budete mít záznam o tom, co se stalo. Navíc po dokončení instalace můžete podat přesné hlášení chyby (bug report). Záznam je možné zahájit příkazem:

     # script -t 2>~/přechod-etch.time -a ~/přechod-etch.script

nebo podobným. Poznamenejme, že není vhodné umísťovat soubor se záznamem do dočasného adresáře jako je /tmp nebo /var/tmp. Obsah těchto adresářů může být během aktualizace nebo restartu systému smazán.

Typescript vám také pomůže najít informaci, která už z obrazovky dávno zmizela. Přepněte se na druhou konzoli (klávesami Alt-F2) a po přihlášení si můžete soubor prohlížet příkazem less -R ~root/přechod-etch.script.

Po dokončení aktualizace je rozumné script zastavit příkazem exit na příkazovém řádku.

Jestliže jste při zaznamenávání použili přepínač -t, můžete celé sezení přehrát programem scriptreplay:

     # scriptreplay ~/přechod-etch.time ~/přechod-etch.script

4.5.2 Aktualizace seznamu balíků

Nejprve je nutno stáhnout soubor, který obsahuje výčet balíků patřících do nové verze Debianu. To provedete příkazem:

     # aptitude update

První spuštění příkazu může vypsat nějaká varování ohledně dostupnosti některých zdrojů. Tato varování jsou neškodná a při příštím spuštění se již nezobrazí.


4.5.3 Ujistěte se, že máte pro aktualizaci dostatek místa

Před kompletní aktualizací svého systému podle Aktualizace zbytku systému, Oddíl 4.5.6 se ujistěte, že máte na disku dostatek volného místa. Nejprve budete potřebovat dostatek volného místa na oblasti, která hostí /var/, protože sem se dočasně stáhnou balíky, které se pak budou instalovat. (Balíky jsou se stahují do /var/cache/apt/archives/partial a po úspěšném stažení se přesunou o adresář výš.) Poté budete potřebovat další místo v oblastech, do kterých se budou aktualizované a nové balíky instalovat. Aktualizované balíky mohou obsahovat větší programy nebo více dat, nové balíky mohou být vyžadovány kvůli splnění nových závislostí. Pokud váš systém nemá dostatek volného místa, může aktualizace skončit někde v půli cesty a nemusí být snadné se dostat zpět do použitelného stavu.

aptitude i apt poskytují podrobné informace o místu nutném k instalaci. Ještě před instalací můžete získat odhad vyžadovaného místa spuštěním:

     # aptitude -y -s -f --with-recommends dist-upgrade
     [ ... ]
     XXX aktualizováno, XXX nově instalováno, XXX k odstranění a XXX neaktualizováno.
     Potřebuji stáhnout xx.xB/yyyMB archivů. Po rozbalení bude použito yyyMB.
     Teoreticky by stáhl/nainstaloval/odstranil balíky.

[6]

Nemáte-li k aktualizaci dostatek místa, nejprve nějaké uvolněte. Můžete:

Pro bezpečné odstranění balíků se doporučuje přepnout sources.list zpátky na sarge, jak popisuje Kontrola zdrojů balíků, Oddíl A.2.


4.5.4 Minimální aktualizace systému

Protože některé klíčové balíky mezi sebou ve verzích pro sarge a etch kolidují, jednoduché spuštění aptitude dist-upgrade by často odstranilo mnoho balíků, které si nejspíš chcete ponechat. Doporučujeme přechod uskutečnit dvoufázově. V první fázi se provede minimální aktualizace, při které se vyřeší zmíněné konflikty a ve druhé fázi potom následuje plný dist-upgrade.

Nejprve spusťte

     # aptitude upgrade

Tím se aktualizují ty balíky, které mohou být aktualizovány bez instalace nebo odstranění jiných balíků.

Po minimální aktualizaci by měl následovat příkaz

     # aptitude install initrd-tools

Tento krok automaticky aktualizuje balíky libc6 a locales a doinstaluje podpůrné knihovny pro SELinux (libselinux1). V tento okamžik budou restartovány některé běžící služby, mimo jiné i xdm, gdm a kdm, takže probíhající X sezení budou odpojena.

Další krok závisí na typu nainstalovaných balíků. Tyto poznámky se snaží poradit, kterou metodu byste měli použít, ale v případě pochybností vám doporučujeme u každé metody před pokračováním podrobně prozkoumat, které balíky jsou naplánovány k odstranění.

Mezi balíky, u kterých se očekává odstranění, patří base-config, hotplug, xlibs, netkit-inetd, python2.3, xfree86-comon a xserver-common. Úplnější seznam balíků zastaralých v etchi obsahuje Zastaralé balíky, Oddíl 4.10.


4.5.4.1 Aktualizace desktopového systému

Tento způsob aktualizace byl ověřen na systémech sarge s nainstalovanou úlohou Stolní počítač. Na těchto systémech, resp. na systémech s nainstalovanými balíky gnome nebo kde dává tento postup pravděpodobně nejlepší výsledky.

Pokud ještě namáte nainstalované balíky libfam0c102 a xlibmesa-glu, pak toto nejspíš není ta nejlepší metoda:

     # dpkg -l libfam0c102 | grep ^ii
     # dpkg -l xlibmesa-glu | grep ^ii

Jestliže máte tedy máte plně nainstalovaný desktopový systém, spusťte:

     # aptitude install libfam0 xlibmesa-glu

4.5.4.2 Aktualizace systému poze s některými X balíky

Systémy s nainstalovanými X balíky, ale ne s celou úlohou Stolní počíač, vyžadují mírně jiný postup. Tento postup obecně funguje na systémech s nainstalovaným balíkem xfree86-common, kam patří i některé serverové systémy, protože některé serverové úlohy instalují grafické nástroje pro správu. Toto je pravděpodobně nejlepší metoda pro počítače s nainstalovaným systémem X, ale bez úlohy Stolní počítač.

     # dpkg -l xfree86-common | grep ^ii

Nejprve ověřte, zda jsou nainstalovány balíky libfam0c102 a xlibmesa-glu.

     # dpkg -l libfam0c102 | grep ^ii
     # dpkg -l xlibmesa-glu | grep ^ii

Jestliže nemáte nainstalovaný balík libfam0c102, vynechte z následujícího příkazu libfam0. Podobně pokud nemáte nainstalovaný balík xlibmesa-glu, vynechte z následujícího příkazu xlibmesa-glu. [7]

     # aptitude install x11-common libfam0 xlibmesa-glu

Instalací libfam0 se nainstaluje také daemon sledující změny v souborech fam a RPC mapovač portů portmap (pokud již v systému nejsou). Oba balíky v systému otevřou nové síťové služby, ale oba se dají nastavit tak, aby poslouchaly pouze na lokální smyčce (loopback).


4.5.4.3 Aktualizace systému bez X

Na systému bez X nemusíte provádět žádné další příkazy aptitude install a můžete pokračovat dalším krokem.


4.5.5 Aktualizace jádra

Verze udev v etchi nepodporuje jádra dřívější než 2.6.15 (kam spadá i jádro 2.6.8 ze sarge) a naopak udev v sarge nefunguje správně s novějšími jádry. Kromě toho se instalací udev z etche odstraní hotplug používaný linuxovými jádry řady 2.4.

Jako důsledek je pravděpodobné, že se vám po této aktualizaci nepodaří zavést původní jádro ze sarge. Z popsaného také vyplývá, že během aktualizace nastane okno, během kterého již budete mít novětší udev, ale stále ještě původní jádro. Pokud byste restartovali systém uprostřed aktualizace, může se stát že se systém nepodaří zavést, protože nebudou rozpoznány a zavedeny potřebné ovladače. (Přípravu na tuto situaci popisuje Připravte si záchrannou síť, Oddíl 4.1.4.)

Pokud na svém systému nepoužíváte úlohu Stolní počítač, resp. nemáte nainstalované jiné balíky, které by způsobovaly odstranění neakceptovatelního množství balíků, je doporučeno v tento okamžik aktualizovat jádro.

Jádro aktualizujete příkazem:

     # aptitude install linux-image-2.6-varianta

S rozhodováním, kterou variantu jádra si máte nainstalovat, vám pomůže Instalace metabalíku jádra, Oddíl 4.6.1.

V případě nainstalovaného desktopového prostředí bohužel není možné zajistit, aby se nové jádro nainstalovalo ihned po instalaci udev, takže nastane okno blíže nedefinované délky, kdy budete mít jádro bez podpory automatického zavádění ovladačů. Více informací o nastavení systému tak, aby při zavádění nevyžadoval hotplug, naleznete v Aktualizace jádra a okolních balíků, Oddíl 4.6.


4.5.6 Aktualizace zbytku systému

Nyní byste měli být plně připraveni aktualizovat systém na novější verzi.

Příkaz

     # aptitude dist-upgrade

zahájí kompletní aktualizaci systému, to jest nainstaluje nejnovější verze dostupných balíků a vyřeší všechny možné problémy mezi balíky z rozdílných distribucí. Pokud to bude nezbytné, nainstalují se další nové balíky (zpravidla nové verze knihoven nebo přejmenované balíky), a odstraní se konfliktní starší balíky.

Pokud aktualizujete systém ze sady CD, budete během aktualizace na různých místech vybídnuti ke vložení konkrétního CD. Je možné, že budete muset vložit jedno CD i několikrát, protože některé balíky závisejí na jiných, jenž jsou uloženy na jiném médiu.

Nové balíky, které nemohou být instalovány beze změny instalačního stavu jiných balíků budou ponechány ve svých původních verzích (zobrazováno jako ,,přidržení''). To můžete vyřešit programem aptitude, kde tyto balíky vyberete k instalaci, nebo můžete zkusit příkaz aptitude -f install balík.


4.5.7 Získání podpisů balíků

Během aktualizace získáte novější apt a proto je doporučeno aktualizovat informace o balících, čímž se použije nový mechanismus ověřování podpisů balíků:

     # aptitude update

B@hem aktualizace se již stáhly a aktivovaly podepisovací klíče debianích archivů s balíky. Přidáte-li jiné (neoficiální) zdroje balíků, apt vás bude varovat, že nemůže ověřit pravost stahovaných balíků. Více informací zmiňuje Správa balíků, Oddíl 2.2.1.

S novou verzí apt si možná všimnete, že již nestahuje celé seznamy balíků, ale pouze rozdílové soubory (pdiff). Více informací o této vlastnosti přináší Pomalejší aktualizace seznamů balíků pro APT, Oddíl 5.1.4.


4.5.8 Možné problémy během nebo po aktualizaci

Pokud aptitude, apt-get nebo dpkg selže s chybou

     E: Dynamic MMap ran out of room

znamená to, že máte malou cache paměť. Problém můžete obejít tak, že v /etc/apt/sources.list zakomentujete řádky které nepoužíváte, nebo zvýšíte velikost vyrovnávací paměti. Velikost cache můžete zvýšit volbou APT::Cache-Limit v souboru /etc/apt/apt.conf. Následující příklad nastaví dostatečně velkou hodnotu:

     # echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf

To ovšem předpokládá, že jste tuto proměnnou v daném souboru ještě nenastavovali.

Někdy je potřebné pro APT nastavit parametr APT::Force-LoopBreak. Tím se umožní dočasné smazání nezbytného balíku způsobené cyklem Conflicts/Pre-Depends. aptitude vás o podobné situaci informuje a přeruší aktualizaci celého systému. V tomto případě spusťte aptitude s parametrem -o APT::Force-LoopBreak=1.

Je možné, že systém závislostí mezi balíky bude natolik poškozen, že si situace vyžádá ruční opravu. To obvykle znamená spustit aptitude nebo spustit příkaz

     # dpkg --remove jméno_balíku

pro odstranění pochybných balíků, nebo

     # aptitude -f install
     # dpkg --configure --pending

V extrémním případě byste měli znovu vynutit reinstalaci balíku příkazem

     # dpkg --install /cesta/k/jméno_balíku.deb

Jestliže jste instalovali neoficiální backportované verze balíků, může nastat konflikt souborů:

     Rozbaluji <balík-foo> (z <balík-foo-soubor>) ...
     dpkg: chyba při zpracování <balík-foo> (--install):
      zkouším přepsat soubor `<název-souboru>',
      který je také v balíku <balík-bar>
     dpkg-deb: podproces paste byl zabit signálem (Broken pipe)
      Při zpracování nastaly chyby:
      <balík-foo>

Konflikt můžete zkusit vyřešit tak, že násilně odstraníte balík zmíněný na posledním řádku chybové hlášky:

     # dpkg -r --force-depends balík

Po těchto krocích byste měli být opět schopni pokračovat v aktualizaci systému pomocí dříve popsané metody pomocí aptitude.

Během aktualizace budete vyzváni ke konfiguraci nebo opětovnému nastavení některých balíků. Pokud budete vyzváni, zdali nahradit nějaký soubor v adresářích /etc/init.d, /etc/terminfo nebo soubor /etc/manpath.config, měli byste odpovědět kladně, tím zaručíte systémovou konzistenci. Ke starším verzím souborů se vždy můžete vrátit, jelikož budou uloženy s příponou .dpkg-old.

Pokud si nevíte rady, poznamenejte si jméno balíku nebo souboru a nechte jeho konfiguraci na později. Můžete si pak prohlédnout výstup z programu script a podívat se na údaje, které byly na obrazovce během aktualizace systému.


4.6 Aktualizace jádra a okolních balíků

Tato část vysvětluje, jak aktualizovat jádro a upozorňuje na potenciální problémy s tím spojené. Jádro můžete nainstalovat buď pomocí jednoho z připravených balíků linux-image-*, nebo kompilací upraveného jádra z jeho zdrojových textů.

Mnoho informací v této části je založeno na předpokladu, že použijete jedno z modulárních jader dodávaných s Debianem společně s balíky initramfs-tools a udev. Použijete-li vlastní jádro, které nevyžaduje initrd, nebo pokud zvolíte jiný generátor initrd, je možné, že některé informace nebudou relevantní.

Poznamenejme, že pokud na svém systému nemáte nainstalovaný udev, můžete nechat rozpoznávat hardware pomocí balíku hotplug.

Pokud momentálně používáte jádro ze starší řady 2.4, měli byste si podrobně prostudovat Přechod na jádro 2.6, Oddíl 5.2.


4.6.1 Instalace metabalíku jádra

Při přechodu ze sarge na etch, je důrazně doporučeno nainstalovat nový metabalík linux-image-2.6-*. Je možné, že se tento balík nainstaluje rovnou během dist-upgrade, což můžete ověřit příkazem:

     # dpkg -l "linux-image*" | grep ^ii

Nevidíte-li žádný výstup, znamená to, že musíte nainstalovat balík linux-image ručně. Seznam dostupných metabalíků získáte příkazem:

     # apt-cache search linux-image-2.6- | grep -v transition

Nejste-li si jisti, který balík vybrat, zavolejte uname -r a hledejte balík s podobným jménem. Například pokud se vypíše ,,2.4.27-3-686'', doporučujeme nainstalovat linux-image-2.6-686. Ve výběru nejlepšího jádra vám může pomoci i dlouhý popis každého balíku. Například:

     # apt-cache show linux-image-2.6-686

Vybrané jádro pak nainstalujete jako každý jiný balík příkazem aptitude install. Aby se jádro zavedlo, musíte při nejbližší vhodné příležitosti restartovat počítač.

Dobrodružnějším uživatelům nabízíme možnost přeložit si vlastní jádro přímo ze zdrojových balíků v distribuci Debian GNU/Linux. K tomu je potřeba nainstalovat balík kernel-package a přečíst si dokumentaci v souboru /usr/share/doc/kernel-package.


4.6.2 Aktualizace z jádra 2.6

Používáte-li jádro řady 2.6, které bylo součástí sarge, provede se přechod na novější jádro automaticky při celkové aktualizaci (popsané v Aktualizace balíků, Oddíl 4.5).

Pokud je to možné, bývá lepší aktualizovat jádro odděleně od hlavního dist-upgrade, protože se minimalizuje doba, kdy se systém nachází v dočasně nezaveditelném stavu. Proces je popsán v Aktualizace jádra, Oddíl 4.5.5. Pamatujte, že aktualizace jádra by měla následovat až po minimální aktualizaci popsané v Minimální aktualizace systému, Oddíl 4.5.4.

Tento krok můžete použít také v případě, že používáte své vlastní jádro a chcete přejít na distribuční jádro z etch. Jestliže verze vašeho jádra není podporována systémem udev, je doporučeno aktualizovat jádro až po minimální aktualizaci systému. Pokud podporována je, můžete bezpečně počkat až po aktualizaci celého systému.


4.6.3 Přechod z jader 2.4

Používáte-li jádro řady 2.4 a váš systém spoléhá na rozpoznání hardwaru hotplugem, měli byste před aktualizací systému přejít na jádro řady 2.6 ze sargee. Po změně jádra ověřte, že se jádro zavede a že správně rozpozná všechen váš hardware. V aktualizaci systému pokračujte teprve poté, až budete mít jistotu, že jádro funguje. Při aktualizaci totiž bude odstraněn hotplug (ve prospěch udevu) a kdybyste stále používali staré jádro, systém by nemusel nastartovat. Po přechodu na jádro řady 2.6 v sarge můžete aktualizovat jádro podle Aktualizace z jádra 2.6, Oddíl 4.6.2.

Jestliže váš systém nespoléhá na hotplug[8], můžete odložit aktualizaci jádra až po aktualizaci celého systému, jak popisuje Aktualizace zbytku systému, Oddíl 4.5.6. Poté můžete nainstalovat novější jádro následujícím příkazem (místo <varianta> zadejte nejvhodnější variantu jádra pro váš systém):

     # aptitude install linux-image-2.6-<varianta>

4.6.4 Změna ve výčtu zařízení

Na rozdíl od předchozích vydání obsahuje etch robustnější mechanismus pro rozpoznávání hardwaru. Protože to může ovlivnit pořadí, ve kterém jsou zařízení v systému objevena, ovlivní se pořadí, ve kterém jsou zařízením přiřazeny názvy. Například pokud používáte dvě síťové karty, které jsou obsluhovány různými ovladači, mohou být názvy karet (eth0 a eth1) prohozeny. Nový systém také znamená, že pokud například vyměníte síťové karty v běžícím systému etch, nová karta dostane nový název.

U síťových zařízení se můžete vyhnout změnám názvů použitím pravidel systému udev v souboru /etc/udev/rules.d/z25_persistent-net.rules[9]. Jinou možností je použití nástroje ifrename, který během zavádění sváže fyzická zařízení s konkrétními názvy. Více informací naleznete v ifrename(8) a iftab(5). Programy ifrename a udev by se neměly používat současně.

U úložných zařízení můžete předejít přejmenování tím, že použijete initramfs-tools a nastavíte je tak, aby nahrávaly moduly k úložným zařízením ve stejném pořadí, v jakém se moduly nahrávaly dosud. Současné pořadí zjistíte pohledem do výpisu programu lsmod. lsmod vypisuje moduly v obráceném pořadí, než byly nahrány. To znamená, že modul úplně nahoře byl nahrán jako poslední. Fungovat to ovšem bude jen pro zařízení, která jsou vždy iterována ve stabilním pořadí (např. PCI zařízení).

Mějte však na paměti, že vaše jádro může mít některé ovladače zakompilované staticky, a ty se ve výpisu lsmod neobjevují. Názvy některých ovladačů byste mohli vypátrat ve /var/log/kern.log, nebo ve výpisu programu dmesg. Některé názvy modulů se však mezi sargem a etchem změnily. Například sym53c8xx_2 byl přejmenován na sym53c8xx.

Zjištěné názvy modulů pak přidejte do /etc/initramfs-tools/modules v pořadí, ve kterém chcete, aby se moduly při zavádění nahrály.

Poté budete muset přegenerovat obraz(y) initramfs spuštěním příkazu update-initramfs -u -k all.

Až kompletně přejdete na jádro a udev z etche, můžete nastavit svůj systém tak, aby k diskům přistupoval přes aliasy, které nezávisí na pořadí nahrávání ovladačů. Tyto aliasy naleznete v adresářové struktuře /dev/disk/.


4.6.5 Problémy s časováním při zavádění

Jesltiže je pro zavádění systému použit initrd vytvořený pomocí initramfs-tools, mohou se v některých případech vytvořit soubory zařízení příliš pozdě na to, aby mohly zaváděcí skripty zareagovat.

Obvyklé příznaky jsou, že se kořenový souborový systém nepodaří připojit, že jste následně vhozeni do ladicího shellu a když zpětně zkoumáte adresář /dev, vidíte v něm všechna potřebná zařízení. Takové chování bylo pozorováno na systémech, kde byl kořenový souborový systém na USB disku nebo na RAIDu (obzvláště při použití zavaděče lilo.

Problém se dá obejít zaváděcím parametrem rootdelay=9. Je možné, že hodnotu v sekundách bude třeba upravit.


4.6.6 FireWire ovladač PCILynx je porouchaný

Ovladač PCILynx je totálně porouchaný a na PowerPC může způsobit pády ovladače. Doporučujeme uživatelům použít některou z levných karet OHCI1394 a umístit ovladač PCILynx na černou listinu.


4.7 Co je třeba provést před restartem

Jakmile je aptitude dist-upgrade hotova, formální aktualizace systému je ukončena. Stále však existuje řada věcí, které byste měli vyřešit ještě před příštím restartem.


4.7.1 Útěk od devfs/heading>

Jelikož jádra v Debianu již neobsahují podporu pro devfs, musí uživatelé devfs ručně upravit své systémy ještě před přechodem na jádro z etche.

Vidíte-li v /proc/mounts řetězec ,,devfs'', je pravděpodobné, že devfs používáte. Všechny konfigurační soubory, které se odkazují na zařízení v formátu devfs, budou muset být upraveny do formátu udev. Nejspíše se bude jednat o soubory /etc/fstab, /etc/lilo.conf, /boot/grub/menu.lst a /etc/inittab.

Více informací o těchto problémech naleznete v hlášení o chybě #341152.


4.7.2 Aktualizace mdadm

Aby mohl mdadm sestavit MD pole (RAID) během zavádění systému, je nyní vyžadován konfigurační soubor. Po aktualizaci balíku ovšem ještě před restartem si rozhodně přečtěte pokyny v /usr/share/doc/mdadm/README.upgrading-2.5.3.gz a proveďte příslušné změny. Pro případ nějakých problémů naleznete poslední verzi zmíněného souboru na http://svn.debian.org/wsvn/pkg-mdadm/mdadm/trunk/debian/README.upgrading-2.5.3?op=file.


4.8 Příprava na příští vydání

Po aktualizaci ještě zbývá, provést několik drobností, které vám později usnadní přechod na příští vydání.


4.9 Zapovězené balíky

S budoucím vydáním Lennyho bude odstraněno větší množství serverových balíků, takže přechodem na novější verze těchto balíků již nyní si ušetříte problémy při aktualizaci na Lennyho.

Jedná se o následující balíky:


4.10 Zastaralé balíky

Se zahrnutím tisíců nových balíků bylo také vypuštěno více než dva tisíce starých balíků, jež byly součástí sarge. Přestože vám nic nebrání v používání těchto starých balíků, projekt Debian je již nebude podporovat a obvykle po jednom roce od vydání etche[10] pro ně ukončí i vydávání bezpečnostních oprav. Zastaralé balíky doporučujeme co nejdříve nahradit vhodnými alternativami.

Důvodů, proč byly balíky z distribuce odstraněny, je několik. Buď byl vývoj programu svými autory ukončen, žádný vývojář Debianu již o správu balíku nejeví zájem, funkčnost programu byla překonána jiným softwarem (nebo novou verzí), nebo byl program shledán nevhodným pro vydání etche, protože obsahuje závažné chyby. V posledním případě je možné, že balík stále naleznete v ,,nestabilní'' distribuci.

Zjištění, které balíky v aktuálním systému jsou zastaralé je velmi jednoduché, protože nástroje pro správu balíků se o vše postarají automaticky. V aptitude uvidíte tyto balíky v sekci ,,Zastaralé a lokálně vytvořené balíky''. dselect má podobnou schopnost, ale výpis se může lišit. Do kategorie zastaralých patří i balíky, které jste nainstalovali ručně.

Pro hledání zastaralých balíků můžete použít i další nástroje typu deborphan, debfoster nebo cruft. Doporučujeme použít první jmenovaný. Pozor na to, že ve výchozím nastavení hlásí deborphan pouze nepoužívané balíky ze sekcí ,,libs'' a ,,oldlibs''. Před odstraněním balíků se ještě podrobně podívejte na jejich popis a ujistěte se, že balík opravdu nepotřebujete, protože při použití některých agresivních parametrů může deborphan chybně označit i používané balíky.

Další informace o tom, proč byl balík odstraněn, obvykle naleznete i v Debian Bug Tracking System. Kromě bugreportů vůči samotnému balíku se podívejte i na archiv chyb pseudobalíku ftp.debian.org.


4.10.1 Falešné balíky

Při přechodu od verze 3.1 (,,sarge'') k verzi 4.0 (,,etch'') bylo několik balíků rozděleno na větší počet menších balíků. V takových případech etch většinou poskytuje ,,falešné'' balíky, které se jmenují stejně jako balík v předchozí verzi Debianu, ovšem kromě závislostí na nově vzniklých balících nic užitečného neobsahují. ,,Falešné'' balíky se po úspěšném přechodu považují za zbytečné a většinou je můžete odstranit.

Většina (ale ne všechny) falešné balíky mají ve svém popisu jasně napsáno, že se jedná o falešné balíky. S hledáním těchto balíků může pomoci program deborphan s parametry --guess. Pamatujte, že některé falešné balíky je lepší neodstraňovat, protože slouží ke sledování aktuálních verzí programů.


[ předchozí ] [ Obsah ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ další ]


Poznámky k distribuci Debian GNU/Linux 4.0 (,,etch''), PowerPC

$Id: release-notes.cs.sgml,v 1.16 2007-08-16 16:37:20 jseidel Exp $

Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer, Rob Bradford, Frans Pop, Andreas Barth, Javier Fernández-Sanguino Peña, Steve Langasek
debian-doc@lists.debian.org