Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:claudiux:migration_maverick_vers_precise [Le 07/09/2012, 17:19] claudiux [Sauvegarde des données personnelles] |
utilisateurs:claudiux:migration_maverick_vers_precise [Le 11/09/2022, 13:12] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 28: | Ligne 28: | ||
Donc ici la clé USB est le périphérique **/dev/sdd** ; elle contient une partition /dev/sdd1. | Donc ici la clé USB est le périphérique **/dev/sdd** ; elle contient une partition /dev/sdd1. | ||
- | Se placer dans le dossier qui contient l'image iso que l'on vient de télécharger : | + | Se placer dans le dossier qui contient l'image iso que l'on vient de télécharger : |
cd ~/Téléchargements | cd ~/Téléchargements | ||
ls -t | head -1 | ls -t | head -1 | ||
Ligne 35: | Ligne 35: | ||
C'est bien ça ! | C'est bien ça ! | ||
- | Pour vérifier que l'image iso est correcte, chercher sur [[https://help.ubuntu.com/community/UbuntuHashes]] sa clé md5 (md5sum). Hélas, elle ne s'y trouve pas encore ! Tant pis, on lance : | + | Pour vérifier que l'image iso est correcte, chercher sur [[https://help.ubuntu.com/community/UbuntuHashes]] sa clé md5 (md5sum). Hélas, elle ne s'y trouve pas encore ! Tant pis, on lance : |
md5sum ubuntu-12.04.1-alternate-i386.iso | md5sum ubuntu-12.04.1-alternate-i386.iso | ||
- | et on obtient : | + | et on obtient : |
b4512076d85a1056f8a35f91702d81f9 ubuntu-12.04.1-alternate-i386.iso | b4512076d85a1056f8a35f91702d81f9 ubuntu-12.04.1-alternate-i386.iso | ||
Un moteur de recherche confirme que cette clé md5 est la bonne. | 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'installation d'Ubuntu 12.04.1 Alternate i386 : | + | Lancer alors la commande qui va transformer ma clé USB en clé bootable d'installation d'Ubuntu 12.04.1 Alternate i386 : |
- | sudo dd if=ubuntu-12.04.1-alternate-i386.iso of=/dev/sdd | + | 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'exécute ; cela peut durer une dizaine de minutes. | Ne pas interrompre cette commande, ni fermer le terminal dans lequel elle s'exécute ; cela peut durer une dizaine de minutes. | ||
Ligne 69: | Ligne 69: | ||
(Une erreur survient : le dépôt dl.google.com n'existe plus. J'ouvre synaptic, clique sur Origine, sélectionne "testing/non-free (dl.google.com)" et vois que seul picasa, que je n'ai pas installé, est concerné ; je supprime ce dépôt, ferme synaptic, et relance la commande ci-dessus. Tout est OK.) | (Une erreur survient : le dépôt dl.google.com n'existe plus. J'ouvre synaptic, clique sur Origine, sélectionne "testing/non-free (dl.google.com)" et vois que seul picasa, que je n'ai pas installé, est concerné ; je supprime ce dépôt, ferme synaptic, et relance la commande ci-dessus. Tout est OK.) | ||
- | ==== Mise à jour des paquets ==== | + | ==== Mise à jour des paquets et nettoyage ==== |
sudo apt-get dist-upgrade | sudo apt-get dist-upgrade | ||
+ | sudo apt-get autoremove | ||
+ | ==== Faire la liste des paquets à réinstaller ==== | ||
- | ==== OneConf ==== | + | Voici un script python qui fait la liste des paquets à installer. |
- | Installer OneConf, outil d'enregistrement de la configuration sur Ubuntu One : | + | <code>#!/usr/bin/python |
- | sudo apt-get install oneconf | + | # -*- coding: utf-8 -*- |
- | Ouvrir la logithèque Ubuntu. Les id/mdp d'Ubuntu One sont demandés (créer un compte si ce n'est déjà fait). Dans le menu fichier : "Inventory on Ubuntu One". | + | import subprocess |
+ | import os, os.path | ||
+ | import re | ||
- | Dans "Ubuntu One Settings...", démarrer le service. | + | ### Liste des paquets installés automatiquement (i.e non installés manuellement) ### |
+ | # Sous Maverick (Ubuntu 10.10) apt-mark ne connait pas l'option showmanual. | ||
+ | proc = subprocess.Popen(["apt-mark","showauto"], stdout=subprocess.PIPE) | ||
+ | autoInstalls,err = proc.communicate() | ||
- | Cocher "Share this computer's inventory". Décocher "Show inventories from other computers". Fermer. | + | autoInstallsList = [] |
+ | for autoInstall in str.split(autoInstalls,'\n'): | ||
+ | autoInstallsList.append(autoInstall) | ||
+ | |||
+ | ## debug: | ||
+ | #print "autoInstallsList: %i" %len(autoInstallsList) | ||
+ | |||
+ | ### Liste de tous les paquets installés ### | ||
+ | # S'il n'existe pas, on crée un script bash qui nous donne cette liste. | ||
+ | # (Pas élégant, mais ça fonctionne et c'est rapide !) | ||
+ | if not os.path.exists(os.path.abspath('')+'/allpackages.sh'): | ||
+ | allpackagescript=open(os.path.abspath('')+'/allpackages.sh', 'w') | ||
+ | allpackagescript.write("dpkg --get-selections | grep -v deinstall | awk '{print $1}'") | ||
+ | allpackagescript.close() | ||
+ | # On utilise ce script : | ||
+ | proc=subprocess.Popen(["/bin/sh",os.path.abspath('')+"/allpackages.sh"], stdout=subprocess.PIPE) | ||
+ | allInstalls,err = proc.communicate() | ||
+ | |||
+ | allInstallsList = [] | ||
+ | for allInstall in str.split(allInstalls,'\n'): | ||
+ | if not (allInstall.startswith('linux-headers-2.6') or allInstall.startswith('linux-image-2.6')): | ||
+ | allInstallsList.append(allInstall) | ||
+ | |||
+ | ## debug: | ||
+ | #print "allInstallsList: %i" %len(allInstallsList) | ||
+ | |||
+ | ### 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,allInstallsList) | ||
+ | |||
+ | # Suppression des paquets réinstallés automatiquement | ||
+ | |||
+ | dependsList=[] | ||
+ | |||
+ | depends=re.compile("Depends: ([^\n/]*)") | ||
+ | section=re.compile("Section: ([^\n/]*)") | ||
+ | |||
+ | for pkg in manualInstallList: | ||
+ | proc=subprocess.Popen(["apt-cache","show",pkg], stdout=subprocess.PIPE) | ||
+ | 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("metapackages"): | ||
+ | #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,pkgsList) | ||
+ | """ | ||
+ | # 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,pkgsList) | ||
+ | |||
+ | # On supprime ces paquets de la liste des paquets installés manuellement : | ||
+ | manualInstallList=filter(lambda x:x not in dependsList,manualInstallList) | ||
+ | |||
+ | # debug: | ||
+ | #print "manualInstallList: %i" %len(manualInstallList) | ||
+ | |||
+ | for install in manualInstallList: | ||
+ | print install | ||
+ | </code> | ||
+ | |||
+ | Créer un dossier migration, et s'y rendre : | ||
+ | mkdir ~/migration | ||
+ | cd ~/migration | ||
+ | |||
+ | Enregistrer le script ''listofpackages.py'' ci-dessus : | ||
+ | gedit ~/migration/listofpackages.py | ||
+ | Fermer gedit puis rendre le script exécutable : | ||
+ | chmod +x ~/migration/listofpackages.py | ||
+ | |||
+ | L'exécuter en redirigeant sa sortie dans un fichier nommé ''maverick_packages_list.txt'' : | ||
+ | ./listofpackages.py > maverick_packages_list.txt | ||
+ | |||
+ | ==== Enregistrer les clés GPG de tous les dépôts ==== | ||
+ | sudo apt-key exportall > maverick_all_repos.asc | ||
+ | |||
+ | |||
+ | |