De nieuwe Ubuntu 12.04 Precise Pangolin LTS versie zal worden vrijgegeven op 26 april 2012. Als de Unity interface voldoende uitontwikkeld is en niet de meeste gebruikers al overgestapt zijn naar Linux Mint met Gnome 3 wordt het dus upgraden geblazen voor veel Ubuntu gebruikers.
Eén van de voordelen van een Linux systeem is de grote hoeveelheid softwareprogramma’s die je erbij krijgt. Maar bij een upgrade wordt het wel lastig om nog te weten wat er ook alweer allemaal geïnstalleerd was op je oude systeem. Daarom hieronder een korte HOWTO over hoe je jouw pakketselectie van je oude Ubuntu versie over kan zetten naar de nieuwe versie. Ik ga er in de voorbeelden vanuit dat je een upgrade wilt uitvoeren van Oneiric Ocelot naar Precise Pangolin.
PAKKETSELECTIE HERSTELLEN EN DATABASE UPDATEN:
Ga de Terminal (command shell) in via Toepassingen > Hulpmiddelen > Terminalvenster.
Voer dan op de commandoregel de volgende commando’s na elkaar uit:
mkdir ~/oldconfig
dpkg --get-selections > ~/oldconfig/pakketselectie.txt
cp -ra /etc/apt ~/oldconfig/apt.bkp 2> /dev/null
De bestanden staan nu in je thuismap in de map (of in Linux termen: directory) oldconfig. Sla de bestanden eventueel ergens op waar je na de upgrade ook bijkan, bijvoorbeeld een USB-stick. Installeer daarna de nieuwe Ubuntu versie. Ik ga er even vanuit dat je je oude thuismap ( /home/user ) ongemoeid laat en deze ook voor je nieuwe installatie gebruikt.
Na de installatie is het nodig de softwarebronnenconfiguratie aan te passen en te updaten naar de nieuwe versie, dat kan vanuit de terminal met:
find ~/oldconfig/apt.bkp -regex ".*\.list" | while read FILE; do cat "${FILE}" | sed "s|oneiric|precise|g ; s|oneiric|precise|g" > "${FILE}.tmp" && mv "${FILE}.tmp" "${FILE}"; done
Met bovenstaand commando word de term “oneiric” veranderd naar “precise” in alle bestanden die eindigen met de extensie “.list”. Je kunt deze regel kopiëren en in het Terminalvenster plakken om eventuele tikfouten te voorkomen. Als je een upgrade tussen 2 andere releases doet moet je deze termen even aanpassen.
Je kunt echter ook handmatig de .list betanden aanpassen via Toepassingen > Hulpmiddelen > Tekst-editor. Open dan met de Tekst-editor de .list bestanden op en verander oneiric in precise.
Als dat is gebeurd ga je de “/etc/apt” directory backuppen vanuit de terminal, zodat we altijd weer terug kunnen naar de situatie van vóór de upgrade:
sudo cp -ra /etc/apt /etc/apt.bkp
Let op! Het sudo commando geeft root (systeembeheer) rechten aan jou als gewone gebruiker. Er wordt naar je gebruikerswachtwoord gevraagd.
Daarna kun je de aangepaste configuratie naar de “/etc/apt” directory kopiëren:
sudo cp ~/oldconfig/apt.bkp/*.list /etc/apt
sudo cp ~/oldconfig/apt.bkp/sources.list.d/*.list /etc/apt/sources.list.d
NB: Als er dingen fout gaan kun je je /etc/apt directory weer in de oorspronkelijke staat terugbrengen door het volgende commando uit te voeren:
sudo cp -raf /etc/apt.bkp/* /etc/apt
Optionele stap: als je wilt dat de pakketten die niet waren geïnstalleerd op je oude systeem, ook van je nieuwe systeem verwijderd worden, dan kan dat met:
sudo dpkg --clear-selections
Hier zit wel een risico aan vast, namelijk dat geïnstalleerde pakketten die uniek zijn voor je nieuwe Ubuntu versie, maar toch nodig kunnen zijn om het systeem goed te laten functioneren, verwijderd worden.
Vervolgens ga je je oude pakketselectie in de pakkettendatabase invoeren door middel van het volgende commando:
sudo dpkg --set-selections < ~/oldconfig/pakketselectie.txt
Als dat is gebeurd voer dan de volgende commando’s uit om de database te updaten en pakketten te installeren:
sudo apt-get update
sudo apt-get dselect-upgrade
sudo apt-get update zal zeer waarschijnlijk GPG fouten geven, pakketten die niet geverifieerd kunnen worden. Je kunt deze meldingen negeren of de bijpassende GPG sleutels proberen te zoeken op internet en deze importeren in je apt-configuratie.
CONFIGURATIEBESTANDEN HERSTELLEN:
Let wel op dat bovenstaande methode eventuele configuratie settings die op de root partitie aanwezig waren niet bewaard. Er worden immers nieuwe pakketten geinstalleerd, met de standaardconfiguratie. Om er zeker van te zijn dat je je settings bewaart vóórdat je een upgrade gaat doen kun je alle aangepaste configuratiebestanden saven en ze daarna handmatig terugkopiëren. Je moet daarvoor eerst het programma debsums installeren, via synaptic of evt via de commandoregel:
sudo apt-get install debsums
Debsums kan checken of configuratiebestanden al dan niet aangepast zijn na een installatie. Via de commandoregel kun je het resultaat afvangen en kopiëren naar ~/oldconfig:
mkdir -p ~/oldconfig
debsums -ca 2> "/dev/null" | sed "s|^[ ]\/|/|" | while read FILE ; do cp -a --parents "${FILE}" ~/oldconfig
Alle ooit aangepaste configuratiebestanden zijn nu gekopieerd naar de map ~/oldconfig. Je kunt ze dan indien nodig handmatig naar je nieuwe installatie kopiëren.
Enkele bestanden die je vooral NIET moet herstellen zijn:
/boot/grub/menu.lst
/etc/group
/etc/gshadow
/etc/fstab
/etc/inittab
/etc/lsb-release
/etc/passwd
/etc/shadow
Terugzetten van bovenstaande bestanden kan je systeem onbruikbaar maken.
Slotwoord: dit lijkt een hoop werk allemaal, maar toch is dit in een krap uurtje gebeurd, gewoon een stel commando’s invoeren en updaten die hap. Vergelijk dat eens met het opnieuw installeren van een Windows systeem, met alle bijkomende gezoek naar sofware CD’s, registratiecodes, gezoek naar programma downloads op websites, voortdurend herstarten, en het per programma opnieuw configureren. Daar ben je dagen mee bezig, weet ik uit ervaring…

Plaats een reactie