Kapitola 4. Aktualizace předchozích verzí systému

Obsah

4.1. Příprava na aktualizaci systému
4.1.1. Záloha dat a konfigurace
4.1.2. Ujistěte se, zda používáte vhodné jádro
4.1.3. Informujete uživatele s předstihem
4.1.4. Připravte si plán B
4.1.5. Příprava záchranné sítě
4.2. Kontrola stavu systému
4.2.1. Kontrola naplánovaných akcí ve správci balíků
4.2.2. Zákaz vypichování balíků
4.2.3. Kontrola stavu balíků
4.2.4. Navrhované aktualizace (proposed-updates)
4.2.5. Neoficiální zdroje a backporty
4.2.6. Používání balíků z backports.org
4.3. Ruční odznačení balíků
4.4. Příprava zdrojů pro APT
4.4.1. Nastavení APT pro aktualizaci přes Internet
4.4.2. Nastavení APT pro aktualizaci z lokálního archivu
4.4.3. Nastavení APT pro aktualizaci z CD nebo DVD
4.5. Aktualizace balíků
4.5.1. Nahrávání sezení
4.5.2. Aktualizace seznamu balíků
4.5.3. Ujistěte se, že máte pro aktualizaci dostatek místa
4.5.4. Nejprve aktualizujte apt a aptitude
4.5.5. Použití seznamu automaticky instalovaných balíků aptitude v apt
4.5.6. Minimální aktualizace systému
4.5.7. Aktualizace zbytku systému
4.5.8. Možné problémy během aktualizace
4.6. Aktualizace jádra a okolních balíků
4.6.1. Instalace metabalíku jádra
4.6.2. Změna ve výčtu zařízení
4.6.3. Problémy s časováním při zavádění
4.7. Co je třeba provést před restartem
4.7.1. Znovu spusťte lilo
4.8. Systém se zasekne na Waiting for root file system
4.8.1. Jak se vyhnout problému dříve, než nastane
4.8.2. Jak se vypořádat s problémem po aktualizaci
4.9. Příprava na příští vydání
4.10. Zastaralé balíky
4.10.1. Falešné balíky
4.11. Plány pro příští vydání Debianu
4.11.1. Zahození portu ARM ABI ve prospěch portu ARM EABI

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 kapitole 5 – „Na co si dávat pozor u Lennyho. Kapitola se sice přímo nezabývá procesem aktualizace, ale některé body mohou být i přesto relevantní a je dobré je vědět předem.

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. Ujistěte se, zda používáte vhodné jádro

Verze glibc v Lennym nepodporuje jádra starší než 2.6.8 a na některých architekturách mohou být požadavky ještě přísnější. Důrazně doporučujeme před přechodem na Lennyho aktualizovat jádro alespoň na verzi 2.6.18. Tato verze je standardní součástí Etche, stejně jako novější 2.6.24.

4.1.3. 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 Lennyho 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.4. Připravte si plán B

Kvůli mnoha změnám, které se v jádře udály mezi Etchem a Lennym 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 část 4.6.2 – „Změna ve výčtu zařízení“) 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 Lennyho. 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.4.1. Ladicí shell při zavádění pomocí initrd

initramfs-tools přidávají do vytvářeného initrd malý shell[2], 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.

Mezi 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ěli porovnat proti výstupu příkazu echo $ROOT, čímž se ujistíte, zda 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čete 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.5. Příprava záchranné sítě

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 spojení.

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 tomu zajistí nepřerušený proces aktualizace i v případech, kde se vám rozpadne spojení.

[Důležité]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, protože tyto služby mohou být během aktualizace 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 nedostupného a nekonzistentně nainstalovaného systému.

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 Etch bez balíků třetích stran. 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 Etche. Pokud si nejste jisti, následujte pokynů v A.1 – „Aktualizace systému Etch“.

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 etch a ne na stable nebo lenny; více viz A.2 – „Kontrola zdrojů balíků“.

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 žádné akce naplánovány nebyly, 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 část A.2 – „Kontrola zdrojů balíků“.

4.2.4. Navrhované aktualizace (proposed-updates)

Jestliže máte ve svém souboru /etc/apt/sources.list uveden odkaz na proposed-updates, dočasně jej před aktualizací zakomentujete. Jedná se o preventivní opatření s cílem snížit pravděpodobnost konfliktů mezi balíky.

4.2.5. Neoficiální zdroje a backporty

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 Lennyho, 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 Etch. Tyto balíky pravděpodobně způsobí konflikty mezi soubory[3]. Část 4.5.8 – „Možné problémy během aktualizace“ obsahuje některé informace o řešení těchto problémů.

4.2.6. Používání balíků z backports.org

backports.org je polooficiální archiv, ve kterém poskytují vývojáři Debian GNU/Linuxu novější verze balíků pro stabilní vydání. Tyto balíky většinou pochází z „testovací“ větve Debian GNU/Linuxu a jsou pouze znovu sestaveny tak, aby mohly fungovat ve stabilním vydání.

Protože jsou tyto balíky v zásadě identické s těmi z „testovací“ větve a liší se víceméně jen sníženým číslem verze, měl by být přechod z balíků backportovaných pro etch na skutečné balíky z lenny velmi jednoduchý. Věc komplikuje fakt, že některé konkrétní backporty se vždy berou z „nestabilní“ větve (bezpečnostní aktualizace, Firefox, jádro Linux, OpenOffice.org a X.Org).

Pokud nepoužíváte žádnou z těchto výjimek, můžete klidně pokračovat dále. Jestliže některý ze zmíněných speciálních backportů používáte, nastavte dočasně u všech balíků z Lennyho Pin-Priority (vizte apt_preferences(5)) na hodnotu 1001. Více naleznete v backports FAQ.

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 'linux-image-2.6.*' | cut -f1)
    
[Poznámka]Poznámka

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

#  aptitude search '~i~M'
      

4.4. Příprava zdrojů pro APT

Před zahájením aktualizace systému musíte nastavit konfigurační soubor se zdroji pro apt (/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ě.)

[Tip]Tip

Pro DVD a CD budete možná muset nastavit výjimku v ověřování GPG podpisů. Pokud se již v souboru /etc/apt/apt.conf.d/00trustcdrom nenachází, přidejte, přidejte do do souboru /etc/apt/apt.conf následující řádek:

APT::Authentication::TrustCDROM "true";

Poznámka: toto nefunguje s obrazy DVD/CD.

Vydání může být odkazováno svým kódovým jménem (např. etch, lenny) 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

Výchozí nastavení obsahuje údaje pro instalaci z našich hlavních archivů v Internetu, to však můžete lehce 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 (hledejte část „list of Debian mirrors“). HTTP zrcadla bývají obvykle rychlejší než FTP zrcadla.

Předpokládejme například, že váš nejbližší archiv je http://mirrors.kernel.org. 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/lenny/main/binary-armel/...
http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-armel/...

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

deb http://mirrors.kernel.org/debian lenny 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ích „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 možná chtít použít lokální archiv, a upravit soubor /etc/apt/sources.list pro použití zrcadla na lokálním disku (nebo třeba na souborovém systému exportovanému 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/lenny/main/binary-armel/...
/var/ftp/debian/dists/lenny/contrib/binary-armel/...

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

deb file:/var/ftp/debian lenny 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ích „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 vaše CD-ROM mechanika například /dev/hdc, měl by soubor /etc/fstab obsahovat obdobný řádek:

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

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

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

# mount /cdrom    # připojí CD do adresáře
# ls -alF /cdrom  # vypíše obsah CD
# umount /cdrom   # odpojí CD
      

Dále spusťte:

# apt-cdrom add

      

pro každé binární CD z vaší sady debianích CD. Tím se přidají data o každém médiu 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 „lenny“ nebo na „stable“. Neměl by tam být žádný záznam ukazující na etch.

[Poznámka]Poznámka

Záznamy pro CD většinou ukazují na „unstable“, ale nenechte se tím zmást a neměňte je, je to v pořádku.

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>~/upgrade-lenny.time -a ~/upgrade-lenny.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/upgrade-lenny.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 ~/upgrade-lenny.time ~/upgrade-lenny.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 kapitoly 4.5.7 – „Aktualizace zbytku systému“ 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 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 zzzMB.
Teoreticky by stáhl/nainstaloval/odstranil balíky.
      
[Poznámka]Poznámka

Jak je popsáno dále, spuštění tohoto příkazu na začátku aktualizace může skončit chybou. V takovém případě musíte s příkazem pro zjištění potřebného místa počkat až provedete minimální aktualizaci (4.5.6 – „Minimální aktualizace systému“) a aktualizujete jádro.

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

  • Odstranit soubory s balíky, které byly staženy do vyrovnávací paměti (/var/cache/apt/archive) příkazem apt-get clean nebo aptitude clean.

  • Odstranit staré balíky, které již nepoužíváte. Máte-li nainstalován popularity-contest, můžete vypsat největší nepoužívané balíky příkazem popcon-largest-unused. S vyhledáním nepotřebných balíků pomohou i programy deborphan nebo debfoster (viz 4.10 – „Zastaralé balíky“). Jinou možností je spustit aptitude v celoobrazovkovém režimu, kde naleznete staré balíky ve větvi „Zastaralé a lokálně vytvořené balíky“.

  • Odstranit balíky, které zabírají zbytečně mnoho místa a pro které nemáte momentální uplatnění (vždycky si je můžete znovu doinstalovat). Seznam nejobjemnějších balíků můžete získat programem dpigs (součástí balíku debian-goodies) nebo wajig (spuštěním wajig size).

    Velké nepoužívané balíky vám může pomoci odhalit také aptitude. Spusťte ji v celoobrazovkovém režimu a zvolte nabídku PohledyNový plochý seznam balíků (tato nabídka existuje pouze ve verzi pro Lennyho a novější), stiskněte l a zadejte ~i, potvrďte klávesou Enter, stiskněte S a zadejte ~installsize. Tímto získáte seznam instalovaných balíků řazený podle velikosti.

  • Odstranit ze systému nepoužívané překlady a lokalizační soubory. S tím vám pomůže balík localepurge, který se dá nastavit tak, aby v systému ponechal pouze několik vybraných locales. Tímto se zredukuje použité místo v adresáři /usr/share/locale.

  • Odstranit nebo dočasně přesunout na jiný systém systémové logy ve /var/log/

  • Použijte dočasný /var/cache/apt/archives: Protože tento adresář slouží jako dočasná vyrovnávací paměť, která je skutečně potřeba jen po čas instalace, můžete dočasně využít kapacitu odjinud (USB klíčenka, dočasný pevný disk, souborový systém obvykle používaný pro něco jiného, ...)

    [Poznámka]Poznámka

    Nepoužívejte souborový systém připojený přes NFS, protože se může stát, že se během instalace spojení přeruší.

    Například pokud máte USB zařízení (disk, klíčenku) přípojené na /media/usbkey, pak:

    1. Odstraňte balíky stažené při dřívějších instalacích:

      # apt-get clean

    2. Zkopírujte adresář /var/cache/apt/archives na USB zařízení:

      # cp -ax /var/cache/apt/archives /media/usbkey/

    3. Připojte dočasný adresář z USB zařízení namísto stávající vyrovnávací paměti balíků:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives

    4. Po přechodu na Lennyho obnovte původní adresář /var/cache/apt/archives:

      # umount /media/usbkey/archives

    5. Odstraňte dočasné balíky z /media/usbkey/archives.

    Obdobný trik můžete provést s libovolným souborovým systémem, který máte v počítači k dispozici.

Pro bezpečné odstranění balíků se doporučuje přepnout sources.list zpátky na etch, jak popisuje část A.2 – „Kontrola zdrojů balíků“.

4.5.4. Nejprve aktualizujte apt a aptitude

Několik hlášení o přechodu na Lennyho ukázalo, že verze apt a aptitude dostupné v Etchi často nezvládají přechod na Lenny. V Lennym se apt mnohem lépe vypořádá s komplexními řetězy balíků vyžadujících okamžitou konfiguraci a aptitude je zase o něco chytřejší při hledání řešení pro porušené závislosti. Protože se obě vlastnosti během přechodu na Lennyho využívají velice intenzivně, je nutno nejprve aktualizovat tyto dva balíky. Pro aktualizaci apt spusťte:

# apt-get install apt

a následně pro aptitude (pokud ji máte nainstalovanou):

# aptitude install aptitude

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.

4.5.5. Použití seznamu automaticky instalovaných balíků aptitude v apt

aptitude si udržuje seznam balíků, které byly nainstalovány automaticky (například jako závislosti jiného balíku). V Lennym má tuto schopnost i apt.

Při prvním spuštění aptitude z Lennyho si aptitude automaticky načte seznam automaticky instalovaných balíků a převede ho do formátu vhodného pro apt. Doporučujeme tedy v tento okamžik spustit novou aptitude například příkazem

# aptitude search "?false"

který hledá neexistující balík.

4.5.6. Minimální aktualizace systému

Protože některé klíčové balíky mezi sebou ve verzích pro Etch a Lenny 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 safe-upgrade
      

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

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-common a xserver-common. Více informací o balících zastaralých v Lennym obsahuje kapitola 4.10 – „Zastaralé balíky“.

4.5.7. 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 nebo DVD, budete během aktualizace na různých místech vybídnuti ke vložení konkrétního disku. Je možné, že budete muset vložit jeden disk 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.8. Možné problémy během aktualizace

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 vyrovnávací paměti 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 Koliduje/Předzávisí. aptitude vás o podobné situaci informuje a přeruší aktualizaci celého systému. V takovém 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ě možná budete muset znovu vynutit reinstalaci balíku příkazem


# dpkg --install /cesta/k/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ě, abyste zaručili konzistenci systému. 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 ze 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í.

4.6.1. Instalace metabalíku jádra

Při přechodu z Etche na Lennyho, 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.6.18-6-686“, doporučujeme nainstalovat linux-image-2.6-686. (Varianta jádra „k7“ již neexistuje. Pokud ji ještě používáte, měli byste přejít na variantu „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
      

Zvolené 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.

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. Pamatujte, že aktualizace jádra by měla následovat až po minimální aktualizaci popsané v 4.5.6 – „Minimální aktualizace systému“.

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

Na rozdíl od předchozích vydání obsahuje Lenny 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 Lenny, 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/70-persistent-net.rules[4]. 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). Nástroje 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í). Pořadí je též ovlivněno, pokud odstraňujete a nahráváte moduly ručně.

Mějte 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.

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 Lennyho, 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.3. Problémy s časováním při zavádění

Jestliž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 na ně 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 RAID (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.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. Znovu spusťte lilo

Používáte-li jako svůj zavaděč lilo (což byl výchozí zavaděč předchozích verzí), doporučujeme ho po aktualizaci znovu spustit/nainstalovat:

# /sbin/lilo
      

Toto je potřeba i v případě, že jste neaktualizovali jádro, protože během instalace nové verze lila se změní umístění druhé části zavaděče a tímto zajistíte načtení správné adresy.

Také si prohlédněte obsah souboru /etc/kernel-img.conf a ujistěte se, že v něm máte volbu do_bootloader = Yes. To zabezpečí, aby se zavaděč nainstaloval po každé aktualizaci jádra.

Zaznamenáte-li při spuštění lilo nějaké problémy, zkontrolujte symbolické odkazy vmlinuz a initrd v / a také možné nesrovnalosti v souboru /etc/lilo.conf.

Zapomenete-li spustit lilo před restartem, je možné, že zavádění selže a místo tradiční výzvy lila se při zavádění zobrazí pouze písmena LI[5]. 4.1.4 – „Připravte si plán B“ naznačuje několik způsobů, jak to napravit.

4.8. Systém se zasekne na Waiting for root file system

Jak přežít změnu /dev/hda na /dev/sda

Někteří uživatelé hlásili, že po přechodu na Lennyho a následném restartu systému nemohlo jádro najít kořenový souborový systém. Zavádění systému se zastavilo na hlášce

Waiting for root file system ...

a po několika sekundách se objevil prompt busyboxu.

Tento problém se může projevit v případech, kdy jádro uvede novou generaci ovladačů pro IDE zařízení. Původní konvence pojmenování IDE disků byla hda, hdb, hdc, hdd. Nové ovladače tyto disky přejmenují na sda, sdb, sdc, sdd. Problém se objeví v okamžiku, kdy se při aktualizaci nevytvoří nový soubor /boot/grub/menu.lst, který by bral do úvahy toto přejmenování. Během zavádění totiž předává Grub jádru název oblasti s kořenovým souborovým systémem a kvůli jinému jménu ji jádro nenajde.

Pokud jste během přechodu na Lennyho na tento problém narazili, přeskočte na část 4.8.2 – „Jak se vypořádat s problémem po aktualizaci“. Chcete-li se tomuto problému vyhnout předem, čtěte dále.

4.8.1. Jak se vyhnout problému dříve, než nastane

Jak se vyhnout problému použitím neměnného identifikátoru. Existují dva základní postupy, jak označit kořenový souborový systém tak, aby se značka mezi restarty nezměnila. První pojmenuje souborový systém, druhý použije univerzální unikátní identifikátor (UUID). Oba způsoby jsou v Debianu dostupné od vydání Etche.

Každý způsob má svá pro a proti. Pojmenování souborového systému je čitelnější, ale může způsobit problémy, pokud se v počítači potkají více souborových systémů se stejným jménem. Použití UUID nevypadá nijak pěkně, ale je robustnější a pravděpodobnost, že se potkají dva stejné UUID, je téměř nulová.

V příkladech níže předpokládáme, že se kořenový souborový systém nachází na oblasti /dev/hda6, je naformátován jako ext2 nebo ext3 a že v systému funguje udev.

Postup pro pojmenování souborového systému:

  1. Pojmenujte kořenový souborový systém (jméno musí být kratší než 16 znaků) příkazem e2label /dev/hda6 rootfilesys

  2. Upravte soubor /boot/grub/menu.lst a změňte řádek

    # kopt=root=/dev/hda6 ro

    na

    # kopt=root=LABEL=rootfilesys ro

    [Poznámka]Poznámka

    Neodstraňujte znak # na začátku řádku, je to tak v pořádku.

  3. Nechte aktualizovat řádky začínající na kernel v souboru menu.lst spuštěním příkazu update-grub.

  4. Upravte soubor /etc/fstab a změňte řádek, který definuje připojení kořenového souborového systému (/), např:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    na

    LABEL=rootfilesys     /     ext3  defaults,errors=remount-ro 0 1

    Stačí upravit první sloupec, zbytek řádku není v tomto okamžiku důležitý.

Postup pro použití UUID:

  1. Nejprve zjistěte univerzální unikátní identifikátor kořenového souborového systému příkazem ls -l /dev/disk/by-uuid | grep hda6

    Měli byste získat řádek podobný tomuto:

    lrwxrwxrwx 1 root root 24 2008-09-25 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6

    UUID je jméno symbolického odkazu ukazujícího na /dev/hda6, tj. v tomto případě d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Poznámka]Poznámka

    UUID vaší oblasti bude odlišné.

  2. Upravte soubor /boot/grub/menu.lst a změňte řádek

    # kopt=root=/dev/hda6 ro

    na

    # kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro

    [Poznámka]Poznámka

    Neodstraňujte znak # na začátku řádku, je to tak v pořádku.

  3. Nechte aktualizovat řádky začínající na kernel v souboru menu.lst spuštěním příkazu update-grub.

  4. Upravte soubor /etc/fstab a změňte řádek, který definuje připojení kořenového souborového systému (/), např:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    na

    UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8  /  ext3  defaults,errors=remount-ro 0 1

    Stačí upravit první sloupec, zbytek řádku není v tomto okamžiku důležitý.

4.8.2. Jak se vypořádat s problémem po aktualizaci

4.8.2.1. Řešení 1

Tento postup se dá použít v případě, že vám Grub nabídne menu pro výběr operačního systému, který chcete spustit. Pokud se takové menu neobjeví, zkuste ho zobrazit stisknutím klávesy Esc chvíli před zavedením jádra. Jestliže se menu nezobrazí, zkuste řešení popsaná v 4.8.2.2 – „Řešení 2“ nebo 4.8.2.3 – „Řešení 3“.

  1. Menu Grubu označte záznam, který chcete zavést a stiskněte klávesu e pro úpravu záznamu. Zobrazí se něco jako

    root (hd0,0)
    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd /initrd.img-2.6.26-1-686

  2. Označte řádek začínající kernel

    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro

    a opět stiskněte e. Nahraďte hdX za sdX (kde X je písmeno, typicky a, b, c nebo d, závisí na vašem systému). v našem příkladu tedy:

    kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro

    Potvrďte úpravu klávesou Enter. Pokud vidíte ještě nějaké řádky obsahující řetězec hdX, změňte je dle stejné logiky. Neměňte řádky root (hd0,0). Po skončení všech úprav stiskněte klávesu b a systém by měl nastartovat jako obvykle.

  3. Po přihlášení do systému byste měli tento problém opravit trvale, takže přeskočte na 4.8.1 – „Jak se vyhnout problému dříve, než nastane“ a vyberte si některý z popsaných postupů.

4.8.2.2. Řešení 2

Zaveďte Debian GNU/Linux z instalačního média (CD/DVD) a na zaváděcí výzvě vyberte záchranný režim. Postupujte stejně, jako byste instalovali nový systém (vyberte jazyk, umístění, klávesové rozložení, síť - je celkem jedno, jestli se nastavení povede, nebo ne, ...) a po chvíli byste měli být dotázáni, kterou oblast chcete použít jako kořenový souborový systém. Možnosti budou vypadat nějak takto:

/dev/ide/host0/bus0/target0/lun0/part1
/dev/ide/host0/bus0/target0/lun0/part2
/dev/ide/host0/bus0/target0/lun0/part5
/dev/ide/host0/bus0/target0/lun0/part6

Pokud víte, která oblast obsahuje váš kořenový souborový systém, prostě ji vyberte. Jestliže si nejste jistí, jednoduše zkuste první z nich. Pokud se záchrannému režimu bude zdát, že tato oblast neobsahuje kořenový souborový systém, bude si stěžovat a nechá vás vybrat znovu. Pokračujte tak dlouho, až narazíte na tu správnou.

Po výběru oblasti si můžete vybrat z několika navrhovaných akcí. Zvolte spuštění shellu. Jestliže se zobrazí chybová hláška, možná jste nevybrali tu správnou oblast - vraťte se zpět a zkuste vybrat jinou.

Nyní byste měli mít přístup do svého kořenového souborového systému (připojeného do /target) jako uživatel root. Budete potřebovat přístup k obsahu adresářů /boot, /sbin a /usr, které by měly být dostupné jako /target/boot, /target/sbin a /target/usr. Jestliže některé z těchto adresářů připojujete z jiných oblastí, připojte je. (Jestliže nemáte tušení, které oblasti použít, podívejte se do /etc/fstab.)

Přeskočte na 4.8.1 – „Jak se vyhnout problému dříve, než nastane“ a použijte jedno z popisovaných řešení problému. Poté opusťte záchranný shell příkazem exit a z menu instalátoru zvolte reboot, aby nastartoval váš nový systém (nezapomeňte vyjmout médium s instalačním systémem).

4.8.2.3. Řešení 3

  1. Zaveďte svou oblíbenou LiveCD distribuci, např. Debian Live, grml, Knoppix nebo Ubuntu Live.

  2. Připojte oblast, která obsahuje adresář /boot. Pokud nevíte, která to je, podívejte se nejprve do výpisu programu dmesg a zjistěte, pod jakým názvem je znám váš disk (hda, hdb, hdc, hdd nebo sda, sdb, sdc, sdd, ...). Až to zjistíte, (předpokládejme nyní, že to je sdb), nechte si vypsat tabulku rozdělení disku příkazem fdisk -l /dev/sdb

  3. Nyní předpokládejme, že jste připojili správnou oblast (obsahující adresář /boot, resp. jeho obsah) do /mnt. Upravte soubor /mnt/boot/grub/menu.lst.

    Najděte sekci podobnou této

    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd          /initrd.img-2.6.26-1-686
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single
    initrd          /initrd.img-2.6.26-1-686
    
    ### END DEBIAN AUTOMAGIC KERNELS LIST

    a nahraďte každý výskyt hda, hdb, hdc nebo hdd odpovídajícím sda, sdb, sdc nebo sdd. Neměňte řádky

    root            (hd0,0)

  4. Restartujte systém, vyjměte LiveCD z mechaniky a měl by naběhnout nový systém.

  5. Po přihlášení do systému byste měli tento problém opravit trvale, takže přeskočte na 4.8.1 – „Jak se vyhnout problému dříve, než nastane“ a vyberte si některý z popsaných postupů.

4.9. 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í.

  • Pokud byl nový jaderný metabalík přivlečen do systému jako závislost toho starého, bude mít příznak, že byl nainstalován automaticky. To byste měli napravit, aby náhodou aptitude nenapadlo, že se balík nepoužívá a že může být odstraněn:

    # aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
    	
  • Odstraňte zastaralé a nepoužívané balíky, jak popisuje 4.10 – „Zastaralé balíky“. Také byste se měli podívat, které konfigurační soubory patří k těmto zastaralým balíkům a pokud je nepotřebujete, tak je ze systému odstraňte.

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í Etche. 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í Lennyho[6] 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í Lennyho, 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ě, ovšem různé nástroje na to mají různý názor.

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 systému sledování chyb Debianu. Kromě hlášení o chybách ke konkrétním 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 4.0 (Etch) k verzi 5.0 (Lenny) bylo několik balíků rozděleno na větší počet menších balíků. V takových případech Lenny 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ů.

4.11. Plány pro příští vydání Debianu

4.11.1. Zahození portu ARM ABI ve prospěch portu ARM EABI

Debian Lenny má dva různé a nekompatibilní porty na ARM: starý ABI (arm) a nový EABI (armel). Debian Lenny je posledním vydáním Debianu, které podporuje port ARM ABI. Příští vydání již budou podporovat pouze ARM EABI (armel). Pro nové instalace Lennyho je doporučeno použít právě armel.

S výjimkou Netwinderu jsou instalační obrazy Lennyho dostupné jak pro architekturu arm, tak pro architekturu armel. Podpora pro Netwinder je dostupná pouze pro arm a po vydání Lennyho bude zahozena zároveň s podporou portu arm.

Více o portu ARM EABI (armel) se dozvíte na této stránce.



[2] Tato vlastnost se dá vypnout přidáním parametru panic=0 k ostatním zaváděcím parametrům.

[3] Debianí systém správy balíků běžně neumožňuje, aby balík přepsal nebo odstranil soubor vlastněný jiným balíkem; minimálně pokud balík explicitně nenahrazuje původní balík.

[4] Pravidla v tomto souboru jsou vytvářena automaticky skriptem /etc/udev/rules.d/75-persistent-net-generator.rules. Chcete-li zakázat perzistentní pojmenování síťových karet pomocí systému udev, můžete tento symbolický odkaz smazat.

[5] Více se o chybových kódech lila dozvíte v The Linux Bootdisk HOWTO.

[6] Pokud mezitím vyjde další stabilní verze Debianu tak i dříve. Typicky jsou současně podporovány maximálně dvě stabilní verze.