[ předchozí ] [ Obsah ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ další ]
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í.
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.
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.
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.
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.
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.
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.
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.
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í''.
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).
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.
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ů.
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>'
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í.
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 (#).
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 (#).
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.
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.
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
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í.
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:
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 nainstalovaný
popularity-contest, můžete vypsat největší nepoužívané balíky
příkazem popcon-largest-unused. S vyhledáním nepotřebých balíků
pomohou i programy deborphan nebo debfoster (viz Zastaralé balíky, Oddíl 4.10). 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).
Odstranit nebo dočasně přesunout na jiný systém systémové logy ve
/var/log/.
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.
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.
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
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).
Na systému bez X nemusíte provádět žádné další příkazy aptitude install a můžete pokračovat dalším krokem.
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.
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.
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.
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.
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.
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.
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.
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>
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/.
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.
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.
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.
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.
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.
Po aktualizaci ještě zbývá, provést několik drobností, které vám později usnadní přechod na příští vydání.
Používáte-li grub, upravte soubor
/etc/kernel-img.conf a změňte umístění programu
update-grub z /sbin/update-grub na
/usr/sbin/update-grub.
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 metabalíky s jádrem pocházející ze sarge:
# aptitude purge kernel-image-2.6-<varianta>
Přesuňte konfigurační proměnné z /etc/network/options do
/etc/sysctl.conf. Podrobnosti naleznete v
/usr/share/doc/netbase/README.Debian.
Odstraňte zastaralé a nepoužívané balíky, jak popisuje Zastaralé balíky, Oddíl 4.10. 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.
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:
apache (1.x), následníkem je apache2
bind8, následníkem je bind9
php4, následníkem je php5
postgresql-7.4, následníkem je postgresql-8.1
exim 3, následníkem je exim4
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.
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 $debian-doc@lists.debian.org