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 05/09/2012, 17:22]
claudiux
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
  
 +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.1346858561.txt.gz
  • Dernière modification: Le 05/09/2012, 17:22
  • par claudiux