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 05/09/2012, 19:03] claudiux [Mise à jour de la liste des paquets] |
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 53: | Ligne 53: | ||
==== Sauvegarde des données personnelles ==== | ==== Sauvegarde des données personnelles ==== | ||
- | Cela est indispensable, surtout si /home n'est pas dans une partition à part. | + | Cela est indispensable, surtout si /home n'est pas monté dans une partition qui lui est propre. |
+ | |||
+ | Pour vérifier si /home est monté sur une partition : | ||
+ | df -h | ||
+ | si une ligne contient /home, c'est OK : | ||
+ | [...] | ||
+ | /dev/sda4 1,8T 711G 1016G 42% /home | ||
+ | [...] | ||
+ | | ||
==== Mise à jour de la liste des paquets ==== | ==== Mise à jour de la liste des paquets ==== | ||
Ligne 61: | 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 ==== | ||
+ | |||
+ | Voici un script python qui fait la liste des paquets à installer. | ||
+ | |||
+ | <code>#!/usr/bin/python | ||
+ | # -*- 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'option showmanual. | ||
+ | proc = subprocess.Popen(["apt-mark","showauto"], stdout=subprocess.PIPE) | ||
+ | autoInstalls,err = proc.communicate() | ||
+ | |||
+ | 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 | ||
- | ==== OneConf ==== | + | L'exécuter en redirigeant sa sortie dans un fichier nommé ''maverick_packages_list.txt'' : |
+ | ./listofpackages.py > maverick_packages_list.txt | ||
- | Installer OneConf, outil d'enregistrement de la configuration sur Ubuntu One : | + | ==== Enregistrer les clés GPG de tous les dépôts ==== |
- | sudo apt-get install oneconf | + | sudo apt-key exportall > maverick_all_repos.asc |
+ | |