ATTENTION!
Ce qui suit ne marche pas encore parfaitement, il y a pas mal de choses à améliorer, et des plantages à corriger, je le laisse tel quel car ça contient des infos interressantes, mais je vous déconseille de suivre le how-to à la lettre. Il y a notamment des plantages à cause de certains paquets non disponibles sur les dépots (installés à la la main par exemple).
Qui n'a jamais eu une succession de freeze en tentant le 177ème how-to de la mort pour installer XGL?
Qui n'a jamais tenté un sudo rm -Rf /. rien que par curiosité?
Qui n'a jamais tenté un sudo apt-get install kubuntu-desktop edubuntu-desktop xubuntu-desktop un peu trop violent?
Tous ces petits curieux dont je fais partie se sont alors fait la remarque: "ha si j'avais fait une sauvegarde de mon install je ne serai pas en train de me taper à rechercher tous les paquets super essentiels que j'avais mis des milliards de micro-secondes à trouver?"
Je me suis donc lancé dans la création d'un méta-paquet contenant tous les paquets installés sur mon système, une fois celui-ci personnalisé à ma convenance, allégé (le blue-tooth sans périphérique blue-tooth ne m'étant d'aucune utilité...) et pleinement fonctionnel, voila la démarche que j'ai suivie:
How-to sauvegarder son Ubuntu
Prérequis: Installation de equivs pour créer le paquet et de dpkg-dev pour créer un dépôt:
sudo apt-get install equivs dpkg-dev
Créer un fichier liste des paquets installés:
dpkg --get-selections | cat > paquets.txt
Ce qui crée un fichier texte contenant la liste de tous les paquetages installés, ce fichier a besoin d'être modifié pour respecter la syntaxe de equivs:
Procédure à détailler
Personnellement j'ai utilisé gedit et avec la fonction remplacer j'ai viré toutes les tabulations, les espaces, les retours chariot et les install inopportuns pour avoir un zouli fichier tout propre mais j'aimerai bien créer un script pour le faire automatiquement, quelqu'un sait comment faire pour remplacer une chaine de caractère dans un fichier texte en ligne de commande?
Créer le fichier de contrôle:
equivs-control mini-ubuntu
Le renseigner, moi ça donne:
Section: Systeme de base
Priority: optional
Standards-Version: 3.5.10
Package: mini-ubuntu
Version: 1-0ubuntu2
Maintainer: Nicolas CARRIER <
winnie@the.pooh>
Depends: acpi, acpi-support, acpid, adduser, alacarte, alsa-base, alsa-utils, anacron,
... liste très longue de paquetages ...
xwininfo, xwud, zenity, zip, zlib1g
Architecture: all
Description: Restauration du système
Restaure mon systeme comme au 8 avril 2006
.
Pourvu que ca marche.
Pour plus d'information sur la création de méta-paquets consulter
http://doc.ubuntu-fr.org/installation/creer_un_meta_paquet
Puis construire le paquet:
equivs-build mini-ubuntu
Ce qui crée le fichier mini-ubuntu_1.0_all.deb
Ensuite il faut créer un dépôt local pour y mettre le nouveau paquet créé
sudo -s
mkdir /home/nicolas/depot
chown nicolas /home/nicolas/depot
On copie le paquet mini-ubuntu (et éventuellement des paquets qui auraient déjà été téléchargés pour gagner du temps et éviter de les retélécharger au moment de la restauration) dans le répertoire /home/nicolas/depot:
cp /home/nicolas/mini-ubuntu_1.0_all.deb /home/nicolas/depot
On crée les index du nouveau dépôt, on l'ajoute aux dépôts et on met à jour la liste des dépôts disponibles:
dpkg-scanpackages /home/nicolas/depot /dev/null | gzip - > /home/nicolas/depot/Packages.gz
echo "deb file:/home/nicolas/depot ./" >> /etc/apt/sources.list
exit
sudo apt-get update
Pour plus d'infos consulter sur la création d'un dépot local consulter
http://forum.ubuntu-fr.org/viewtopic.php?id=8494&p=2
Il ne reste plus qu'à sauvegarder le fichier de sources de apt en faisant par exemple:
cp /etc/apt/sources.list /home/nicolas/
Le jour où on a besoin de restaurer son système, il suffit de réinstaller un système minimal en choisissant installation d'un serveur au lancement du CD d'installation, on remplace le fichier sources.list par celui qu'on avait au préalable sauvegardé:
sudo cp /home/nicolas/sources.list /etc/apt/sources.list
puis:
sudo apt-get update
sudo apt-get install mini-ubuntu_1.0_all.deb
après ça peut prendre du temps, partez boire un café!!!
REM Vérifier le numéro de version et le nom du paquetage, c'est pour ça que ça a planté?
Bon vous vous en doutez ce How-to est HAUTEMENT expérimental, je suis en train de le tester chez moi, on va voir dans 1/4 d'heure si mon ordi a supporté le choc. De plus il contient certainement des erreurs (notamment cette histoire de version du paquet). Etant donné que c'est mon premier how-to et que ce post me sert d'entrainement pour ce genre d'exercice, je vous demande beaucoup d'indulgence et surtout des conseils ainsi qu'une lecture critique pour apporter vos corrections, conseils etc...
Reste à faire:
Je voudrai automatiser cette procédure au maximum, et pour l'instant mon problème principal est le formatage du fichier paquet pour qu'il suive la syntaxe adéquate, quelqu'un a une idée?
De plus j'aimerai que la procédure puisse passer par une interface graphique (au moins pour ce qui est de la création du paquet) quelqu'un a des conseils à donner à un apprentis débutant newbie dont la plus belle réalisation en programmation a été un métronome pas régulier programmé avec gambas?
Enfin je voudrai me créer un cd qui serait en quelque sorte un gros dépot des paquets persos (pilotes, codecs etc...) que j'utilise pour que la procédure ne passe plus par le net, des idées quelqu'un?
D'avance merci de votre aide.
PS: je n'ai jamais tenté le sudo rm -Rf /. vous y avez cru?
PS2: Aïe je récupère une sortie un peu inquiétante après pas mal de temps de téléchargement:
Impossible de récupérer cdrom:[Ubuntu 6.06 ... ... open office ln je sais pas quoi et
E: Impossible de récupérer file:/home/nicolas/depot//home/nicolas/depot//mini-ubuntu_1.0_all.deb Fichier non trouvé
ça m'inquiète tout ça...
PS3: Aïe marche pas du tout rien ne s'est installé
PS4:un petit
sudo apt-get --fix-missing install mini-ubuntu_1.0_all.deb
Semble avoir résolu le problème, j'attend de voir si ça me lance au moins gdm... Yeah ça marche!!!!