Přeinstalace Debianu se zachováním balíčků

21. 1. 2013 23:01 (aktualizováno) Petr Krčmář

O víkendu jsem vyměnil disk v počítači, instaloval znovu Debian a chtěl jsem zachovat všechny balíčky, které jsem měl na předchozím disku.

V sobotu jsem se konečně rozhoupal a vyměnil jsem si po čtyřech letech disk v notebooku z klasického rotačního na SSD. Je to velká paráda, ale o tom teď psát nechci. Rozhodl jsem se při té příležitosti přejít z 32bitového Debianu na 64bitový. Před třemi lety jsem tu psal, že k takové změně není důvod. Pořád si myslím, že se bez problémů dá pokračovat na 32 bitech, ale už tak nějak nazrál čas a když jsem měnil disk, tak jsem vyměnil i bity.

Mimochodem, asistoval mi při tom Ondra Caletka, kterému patří dík. Fungoval jako chytrý rádce, morální podpora a hlavně jsme si mohli v klidu povídat, zatímco počítač dělal takové ty dlouhé akce jako je instalace, rsyncování dat ze starého disku a podobně.

Původní představa byla taková, že provedu debootstrap ze starého systému. Jak se ukázalo, komplikovala to výměna architektur, takže jsme se rozhodli jít cestou nejmenšího odporu a provést čistou instalaci z flash disku. Samozřejmě jsme použili můj oblíbený netinstall, takže se všechny balíčky pěkně tahaly čerstvé z internetu.

Samozřejmě jsem chtěl zachovat všechny balíčky ze stávajícího systému, což naštěstí v Debianu není problém. Pokud byste to někdy potřebovali, popíšu sem jednoduchý postup. Varování na začátek: do nového systému si doinstalujte dselect. Je to stará utilita pro správu balíčků, která se už běžně nepoužívá, protože ji nahradil apt. Při tomto postupu ji ale budete potřebovat.

Ve starém systému si jednoduše zálohujete seznam nainstalovaných i odinstalovaných balíčků:

petr@stary# dpkg --get-selections > balicky

Soubor balicky si přenesete do nového systému, kde musíte mít zmíněný dselect. Musíte si také přenést zdroje, ze kterých se instalují balíčky. Ty najdete v adresáři /etc/apt/sources.list.d/ a v souboru /etc/apt/sources.list. Pokud nebudete mít příslušné zdroje k dispozici, některé balíčky se samozřejmě nenainstalují.

Teď na novém stroji provedete aktualizaci databáze balíčků ve zmíněném dselectu. Poté načtete seznam balíčků ze svého souboru balicky a tím je označíte k instalaci. Nakonec je necháte nainstalovat.

petr@novy# dselect update
petr@novy# dpkg --set-selections < balicky
petr@novy# apt-get dselect-upgrade

A to je vše. Poslední příkaz vezme balíčky označené k instalaci a prostě je nainstaluje. Ještě jeden tip: Kdyby se něco nepodařilo a vy byste potřebovali balíčky označené k instalaci zase odznačit a začít od začátku, pokužijte k dpkg  parametr  --clear-selections.

Konfiguraci si už pak samozřejmě řešíte sami, ale z uživatelského hlediska stačí zkopírovat domovské adresáře a bude to fungovat. Systémovou konfiguraci si pak doladíte ručně, ideálně podle záloh starého  /etc.

Sdílet