Aktualizace linuxového systému za běhu
Aktualizace linuxové distribuce je vždy ožehavá záležitost, protože se můžete dostat do stavu, kdy to nepůjde tam, ani zpět.
Záleží na tom, jaký používá balíčkovací systém. Velice dobře byl navržen balíčkovací systém Debianu APT (Advanced Package Tools), který pracuje s různými stavy ve kterých se může balík ocitnout, a ty se zobrazují jako dvojice (či trojice) znaků na začátku řádku výpisu příkazu dpkg -l
Díky tomu lze pomocí utility grep z výpisu vyfiltrovat seznam balíků podle toho co nás zajímá.
Popis všech stavů, ve kterých se může DEB balíček ocitnout je na prvních třech řádcích výpisu dpkg -l | head -3
. Jenže to má háček, pokud používáte lokalizovanou konzoli, protože překlad anglických výrazů do češtiny učinil kdosi bez toho, že by si byl vědom toho, co vlastně překládá:
Požadované=Neznámé/Instalovat/Odinstalovat/Vyčistit/Podržet
| Stav=Ne/Instalován/Konfigurační soubory/Rozbalen/Nezkonfigurován/Nekompletní
| instalace/Očekávané spouštěče/Nevyřízené spouštěče
|/ Chyba?=(nic)/Nutná přeinstalace (Stav,Chyba: velké písmeno=chyba)
Originální anglický text se vám zobrazí pokud použijete předtím příkaz unset LANG
:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
Stavy, zvýrazněné v popisu velkými písmeny se obvykle zobrazují (až na výjimky) malými písmeny, a jsou popsané v následující tabulce:
Požadovaný stav balíku (Desired) | Aktuální stav balíku (Status) | ||
---|---|---|---|
Neznámý | u | n | Nenainstalovaný |
Nainstalovaný | i | i | Nainstalovaný a zkonfigurovaný |
Odinstalovaný | r | c | Odinstalovaný, ale konfigurace k balíku je zachovaná |
Kompletně odinstalovaný | p | U | Nerozbalený |
Nezkonfigurovaný | h | F | Konfigurační proces nebyl z nějakého důvodu dokončen |
h | Instalační proces byl z nějakého důvodu přerušen | ||
W | Instalační proces čeká na to, až bude dokončena instalace balíku, na kterém je závislý | ||
t | Na dokončení instalace balíčku závisí jiný balík |
Za určitých okolností, se může objevit ještě třetí znak R, který signalizuje, že některý ze souborů z balíku byl poškozen, a tak musí být balík reinstalován. |
Obvykle se balík vyskytuje v některém z následujících stavů:
- Balík je k dispozici, nenainstalován : Lze stáhnout informace o závislostech nutných pro instalaci balíku a před jeho vlastní instalací doplnit chybějící balíky. Takový balík se ve výpisu dpkg vůbec nezobrazuje.
- Balík je k dispozici, nainstalován, ale nezkonfigurován : Balík je stažen na lokální disk, rozbalený do dočasné pozice a čeká na konfiguraci. Teprve po úspěšné konfiguraci jsou přepsány z dočasné pozice do systému. Řádek takové balíku začíná
iF
- Balík je nainstalován a zkonfigurován : Soubory z balíku jsou zavedeny v systému a konfigurační soubory odpovídajícím způsobem nastaveny. Řádek takové balíku začíná
ii
- Balík je odinstalován, ovšem konfigurační soubory zůstaly zachovány : Během odebrání balíku zůstávají konfigurační soubory zachovány. Tím pádem při aktualizaci (nebo opětné instalaci) systém konfigurační soubory nepřepisuje, ale nabídne více možností, mezi jinými úpravu stávajících. Řádek takové balíku začíná
rc
- Balík je kompletně odinstalován : Balík je odinstalován včetně konfiguračních souborů. Takový balík se ve výpisu dpkg vůbec nezobrazuje.
Než se pustíte do aktualizace..
Doporučuji vzít do ruky tužku a papír, a..
- Udělat si poznámky o stávající instalaci. Teprve po důkladném zmapování celého systému (bloková zařízení, přípojné body, konfigurace sítě, sdílené adresáře, aj.) lze přikročit k dalšímu bodu, kterým je
- Aktualizace snapshotovaného systému, nebo instalace do nového subvolume pomocí aplikace cdebootstrap a následný
- Reboot do aktualizovaného snapshotu, resp. nového subvolume
Původní postup, uvedený na této stránce, byl sepsán v lednu 2011, kdy v rámci disklessové infrastruktury DCE ještě nebyl nasazen souborový systém Btrfs, který umožňuje snapshotování na úrovni souborového systému přes Btrfs a neexistoval nástroj systemd-nspawn.
Systém se tehdy instaloval na logické diskové oddíly vytvořené v rámci LVM nad softwarovám MD RAIDem. A k přepnutí do kopie systémového adresáře, určené k aktualizaci – do které se na příslušné přípojné body z běžícího systému „bindovaly” adresáře |