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:02] claudiux [Mise à jour 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 ==== | ||
| + | Vérifier que synaptic et le gestionnaire de mise à jour sont bien fermés, puis : | ||
| sudo apt-get update | sudo apt-get update | ||
| (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 |
| + | | ||