Aktualizace linuxového systému za běhu

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

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
Poznámka 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ů:

  1. 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.
  2. 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
  3. 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
  4. 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
  5. 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.
Poznámka S těmito stavovými kódy pracovala aplikace aptitude, kterou v současné době nahradil apt, který zastřešuje specializované nástroje s nimiž APT pracuje:
dpkg – který pracuje s nainstalovanými balíky
apt-get – který pracuje s repozitářem instalačních balíků a nástrojem dpkg
apt-cache – který pracuje se seznamy balíků které lze nainstalovat
stroj:~# apt-cache search ^meld
meld - graphical tool to diff and merge files
stroj:~# apt search ^meld
Řadí se… Hotovo
Fulltextové hledání… Hotovo
meld/testing 3.22.1-1 all
  graphical tool to diff and merge files


Než se pustíte do aktualizace..

Doporučuji vzít do ruky tužku a papír, a..

  1. 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
  2. Aktualizace snapshotovaného systému, nebo instalace do nového subvolume pomocí aplikace cdebootstrap a následný
  3. Reboot do aktualizovaného snapshotu, resp. nového subvolume
Poznámka 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 /dev, /proc a /sys – se přepínalo příkazem chroot.