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:10]
claudiux [Transfert de l'image iso sur clé USB]
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 50: Ligne 50:
 Vérifier que la clé USB n'est pas montée (elle ne l'est normalement pas) et la retirer de son port. Vérifier que la clé USB n'est pas montée (elle ne l'est normalement pas) et la retirer de son port.
  
 +===== Préparation de la mise à niveau =====
  
 +==== Sauvegarde des données personnelles ====
 +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 ====
 +Vérifier que synaptic et le gestionnaire de mise à jour sont bien fermés, puis :
 +  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.)
 +
 +==== Mise à jour des paquets et nettoyage ====
 +  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.1346857842.txt.gz
  • Dernière modification: Le 05/09/2012, 17:10
  • par claudiux