Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
utilisateurs:claudiux:migration_maverick_vers_precise [Le 07/09/2012, 17:50] – [Faire la liste des paquets à réinstaller] claudiux | utilisateurs:claudiux:migration_maverick_vers_precise [Le 09/09/2014, 17:06] (Version actuelle) – [Transfert de l'image iso sur clé USB] claudiux | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Migration de Maverick vers Precise ====== | ||
+ | Je relate ici mon aventure de migration de Maverick (Ubuntu 10.10) vers Precise (12.04.1). En espérant que cela pourra aider quelqu' | ||
+ | |||
+ | ===== Téléchargement ===== | ||
+ | |||
+ | Sur [[http:// | ||
+ | |||
+ | ===== Transfert de l' | ||
+ | |||
+ | J' | ||
+ | |||
+ | Une fois la clé USB branchée, ne pas la démonter. Il faut savoir comment elle est identifiée dans /dev. | ||
+ | La commande : | ||
+ | sudo fdisk -l | ||
+ | indique : | ||
+ | < | ||
+ | Disque /dev/sdd : 2062 Mo, 2062548992 octets | ||
+ | 19 têtes, 24 secteurs/ | ||
+ | Unités = secteurs de 1 * 512 = 512 octets | ||
+ | Taille de secteur (logique / physique) : | ||
+ | taille d'E/S (minimale / optimale) : | ||
+ | Identifiant de disque : 0x02aa025f | ||
+ | |||
+ | Périphérique Amorce | ||
+ | / | ||
+ | |||
+ | Donc ici la clé USB est le périphérique **/ | ||
+ | |||
+ | Se placer dans le dossier qui contient l' | ||
+ | cd ~/ | ||
+ | ls -t | head -1 | ||
+ | Réponse : | ||
+ | ubuntu-12.04.1-alternate-i386.iso | ||
+ | C'est bien ça ! | ||
+ | |||
+ | Pour vérifier que l' | ||
+ | md5sum ubuntu-12.04.1-alternate-i386.iso | ||
+ | et on obtient : | ||
+ | b4512076d85a1056f8a35f91702d81f9 | ||
+ | Un moteur de recherche confirme que cette clé md5 est la bonne. | ||
+ | |||
+ | Lancer alors la commande qui va transformer ma clé USB en clé bootable d' | ||
+ | sudo dd if=ubuntu-12.04.1-alternate-i386.iso of=/dev/sdd bs=4M && sync | ||
+ | |||
+ | Ne pas interrompre cette commande, ni fermer le terminal dans lequel elle s' | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | Vérifier que la clé USB n'est pas montée (elle ne l'est normalement pas) et la retirer de son port. | ||
+ | |||
+ | ===== Préparation de la mise à niveau ===== | ||
+ | |||
+ | ==== Sauvegarde des données personnelles ==== | ||
+ | Cela est indispensable, | ||
+ | |||
+ | Pour vérifier si /home est monté sur une partition : | ||
+ | df -h | ||
+ | si une ligne contient /home, c'est OK : | ||
+ | [...] | ||
+ | / | ||
+ | [...] | ||
+ | | ||
+ | |||
+ | ==== Mise à jour de la liste des paquets ==== | ||
+ | Vérifier que synaptic et le gestionnaire de mise à jour sont bien fermés, puis : | ||
+ | sudo apt-get update | ||
+ | |||
+ | (Une erreur survient : le dépôt dl.google.com n' | ||
+ | |||
+ | ==== Mise à jour des paquets et nettoyage ==== | ||
+ | sudo apt-get dist-upgrade | ||
+ | sudo apt-get autoremove | ||
+ | ==== Faire la liste des paquets à réinstaller ==== | ||
+ | |||
+ | Voici un script python qui fait la liste des paquets à installer. | ||
+ | |||
+ | < | ||
+ | # -*- coding: utf-8 -*- | ||
+ | |||
+ | import subprocess | ||
+ | import os, os.path | ||
+ | import re | ||
+ | |||
+ | ### Liste des paquets installés automatiquement (i.e non installés manuellement) ### | ||
+ | # Sous Maverick (Ubuntu 10.10) apt-mark ne connait pas l' | ||
+ | proc = subprocess.Popen([" | ||
+ | autoInstalls, | ||
+ | |||
+ | autoInstallsList = [] | ||
+ | for autoInstall in str.split(autoInstalls,' | ||
+ | autoInstallsList.append(autoInstall) | ||
+ | |||
+ | ## debug: | ||
+ | #print " | ||
+ | |||
+ | ### Liste de tous les paquets installés ### | ||
+ | # S'il n' | ||
+ | # (Pas élégant, mais ça fonctionne et c'est rapide !) | ||
+ | if not os.path.exists(os.path.abspath('' | ||
+ | allpackagescript=open(os.path.abspath('' | ||
+ | allpackagescript.write(" | ||
+ | allpackagescript.close() | ||
+ | # On utilise ce script : | ||
+ | proc=subprocess.Popen(["/ | ||
+ | allInstalls, | ||
+ | |||
+ | allInstallsList = [] | ||
+ | for allInstall in str.split(allInstalls,' | ||
+ | if not (allInstall.startswith(' | ||
+ | allInstallsList.append(allInstall) | ||
+ | |||
+ | ## debug: | ||
+ | #print " | ||
+ | |||
+ | ### Liste de tous les paquets installés manuellement ### | ||
+ | # C'est la différence entre la liste des paquets installés et celle des paquets auto. | ||
+ | manualInstallList = filter(lambda x:x not in autoInstallsList, | ||
+ | |||
+ | # Suppression des paquets réinstallés automatiquement | ||
+ | |||
+ | dependsList=[] | ||
+ | |||
+ | depends=re.compile(" | ||
+ | section=re.compile(" | ||
+ | |||
+ | for pkg in manualInstallList: | ||
+ | proc=subprocess.Popen([" | ||
+ | res,err = proc.communicate() | ||
+ | """ | ||
+ | #1ere idée : Suppression des paquets dont dependent les meta-paquets (tels ubuntu-minimal et ubuntu-desktop) : | ||
+ | sct=section.search(res) | ||
+ | if sct.group(1).startswith(" | ||
+ | #print "META : %s" %pkg | ||
+ | deps=depends.search(res) | ||
+ | deps=deps.group(1).replace("," | ||
+ | pkgsList=str.split(deps, | ||
+ | dependsList=dependsList + filter(lambda x:x not in dependsList, | ||
+ | """ | ||
+ | # 2nde idée : Finalement, supprimer tous les paquets qui seront réinstallés automatiquement du fait des dépendances : | ||
+ | deps=depends.search(res) | ||
+ | if deps is not None: | ||
+ | deps=deps.group(1).replace("," | ||
+ | pkgsList=str.split(deps, | ||
+ | dependsList=dependsList + filter(lambda x:x not in dependsList, | ||
+ | |||
+ | # On supprime ces paquets de la liste des paquets installés manuellement : | ||
+ | manualInstallList=filter(lambda x:x not in dependsList, | ||
+ | |||
+ | # debug: | ||
+ | #print " | ||
+ | |||
+ | for install in manualInstallList: | ||
+ | print install | ||
+ | </ | ||
+ | |||
+ | Créer un dossier migration, et s'y rendre : | ||
+ | mkdir ~/migration | ||
+ | cd ~/migration | ||
+ | |||
+ | Enregistrer le script '' | ||
+ | gedit ~/ | ||
+ | Fermer gedit puis rendre le script exécutable : | ||
+ | chmod +x ~/ | ||
+ | |||
+ | L' | ||
+ | ./ | ||
+ | |||
+ | ==== Enregistrer les clés GPG de tous les dépôts ==== | ||
+ | sudo apt-key exportall > maverick_all_repos.asc | ||
+ | |||
+ | |||
+ | |