Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 
 + 
 + 
 +  ​
  • utilisateurs/claudiux/migration_maverick_vers_precise.1347031197.txt.gz
  • Dernière modification: Le 07/09/2012, 17:19
  • par claudiux