<h2>But de ce document</h2>
<p class="spip">Ce document me sert de <strong class="spip">mémo sur les différentes commandes de gestion des paquets sous Debian</strong>. Je le diffuse en espérant qu’il puisse servir à d’autres personnes.</p>

<p class="spip">Si vous préférez utiliser une interface graphique pour gérer vos paquets, vous pouvez suivre ce mémo :
<br /></p>
<li> <a href="http://www.coagul.org/article.php3?id_article=617" class="spip_out">http://www.coagul.org/article.php3 ?id_article=617</a>
<h2>Activer la completion intelligente pour faciliter l’utilisation de la ligne de commande</h2>
<p class="spip">Sous Linux, tout le monde connaît la complétion automatique avec la touche TAB, mais la complétion intelligente, permet en plus d’avoir la liste des options d’une commande (ex : apt-get) ou de connaître la liste des paquets commençants par certains caractères (ex : apt-get install vi +TAB). Je trouve qu’utiliser les commandes « apt » avec la complétion intelligente est pour moi plus simple que d’utiliser synaptique.</p>

<p class="spip">Pour activer la complétion intelligente, il faut saisir la commande suivante à la fin du fichier «  /.bashrc » ou à la fin du fichier « /etc/profile » :</p>

<p class="spip"><code class='spip_code' dir='ltr'>. /etc/bash_completion</code></p>

<p class="spip"><strong class="spip">Remarque </strong> : Pour une utilisation en console sous KDE de la completion intelligente, il est possible aussi de dé-commenter les 3 lignes correspondantes du fichier « /etc/bash.bashrc »</p>

<h2>Bash avec completion dès la première tabulation</h2>
<p class="spip">Sous Debian, pour avoir la liste des choix possibles de la completion il est nécessaire d’appuyer deux fois sur la touche TAB.</p>

<p class="spip">En ajoutant la ligne suivante à la fin du fichier « /etc/inputrc » ou du fichier «  /.inputrc », la liste des choix sera affichée dés la première tabulation (après reconnexion) :</p>

<p class="spip"><code class='spip_code' dir='ltr'>set show-all-if-ambiguous on </code></p>

<h2>dpkg : Utilitaire de base pour gérer les paquets Debian .deb</h2>
<p class="spip"><strong class="spip">dpkg</strong> est l’utilitaire de base sous Debian, pour installer, supprimer, configurer ou obtenir des informations sur des paquets (.deb). Contrairement à apt-get, il ne s’occupe pas du téléchargement et ne gère pas les dépendances.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Installer un paquet présent en local</td><td>dpkg -i Nom_Exact_Du_Paquet</td></tr>
<tr class="row_odd"><td>Supprimer un paquet </td><td>dpkg -r Nom_Exact_Du_Paquet</td></tr>
<tr class="row_even"><td>Supprimer un paquet même défectueux et marqué comme demandant une réinstallation</td><td>dpkg -r &mdash;force-remove-reinstreq Nom_Exacte_Du_Paquet</td></tr>
<tr class="row_odd"><td>Liste complète des paquets installés</td><td>dpkg -l</td></tr>
<tr class="row_even"><td>Liste partielle des paquets installés</td><td>dpkg -l Nom_Du_Paquetdpkg -l Début_Du_Nom_Du_Paquet* dpkg -l *Nom_Partiel_Du_Paquet* </td></tr>
<tr class="row_odd"><td>Rechercher l’emplacement du fichier contenu dans un paquet et le nom de ce paquet </td><td>dpkg -S Nom_Partiel_Du_Fichier </td></tr>
<tr class="row_even"><td>Connaître la liste des fichiers d’un paquet </td><td>dpkg -L Nom_Exacte_Du_Paquet</td></tr>
<tr class="row_odd"><td>Informations complètes sur un paquet </td><td>dpkg -p Nom_Du_Paquet</td></tr>
<tr class="row_even"><td>Re-configurer un paquet </td><td>dpkg-reconfigure Nom_Exacte_Du_Paquet</td></tr>
<tr class="row_odd"><td>Pour avoir l’historique des actions effectuées par dpkg</td><td>cat /var/log/dpkg.log</td></tr>
</tbody>
</table>
<p class="spip">Les scripts de pré-installation et post-installation des paquets sont disponibles dans :</p>

<p class="spip"><code class='spip_code' dir='ltr'>/var/lib/dpkg/info.</code></p>

<p class="spip">Dans ce répertoire, les fichiers terminés par .list donnent la liste des fichiers installés par le paquet.</p>

<h2>apt : Utilitaire avancé pour gérer les paquets Debian .deb</h2>
<p class="spip"><strong class="spip">apt-get</strong> est un utilitaire plus évolué que <strong class="spip">dpkg</strong> qui permet d’installer des paquets en les téléchargeant depuis internet (ou depuis une autre source) à partir d’une liste de sites indiqués dans le fichier « <strong class="spip">/etc/apt/sources.list </strong> ».</p>

<h3>/etc/apt/sources.list</h3>
<p class="spip">Ce fichier contient la liste des sources des paquets.</p>

<p class="spip">Voici la syntaxe générale d’une ligne :</p>

<p class="spip"><code class='spip_code' dir='ltr'>{deb | deb-src} URL {stable | testing | unstable} {main | contrib | non-free}</code></p>

<li> <strong class="spip">deb : </strong>Adresse de paquets binaires (compilés)
<br /><li> <strong class="spip">deb-src</strong> : Adresse de paquets sources 
<br /><li> <strong class="spip">main</strong> : Les paquets principaux
<br /><li> <strong class="spip">contrib</strong> : Les paquets plus vraiment supportés
<br /><li> <strong class="spip">non-free</strong> : Les paquets de logiciels non libres (propriétaires)
<p class="spip">La ligne suivante permet de récupérer tous les paquets binaires de la Debian testing</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb http://ftp.fr.debian.org/debian/ testing main contrib non-free</code></p>

<p class="spip">La même ligne avec un accès ftp:</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb ftp://ftp.fr.debian.org/debian/ testing main contrib non-free</code></p>

<p class="spip">Il est possible d’écrire la ligne précédente sur 3 lignes</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>deb http://ftp.fr.debian.org/debian/ testing main<br />
deb http://ftp.fr.debian.org/debian/ testing contrib<br />
deb http://ftp.fr.debian.org/debian/ testing non-free</code></div>
<p class="spip">Cette ligne est nécessaire uniquement pour pouvoir compiler des sources :</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb-src http://ftp.fr.debian.org/debian/ testing main</code></p>

<p class="spip">Cette ligne (facultative) permet de récupérer des paquets non autorisés aux US (ex : Algorithmes d’encryptage) :</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb http://non-us.debian.org/debian-non-US/ testing/non-US main</code></p>

<p class="spip">Cette ligne permet de récupérer les mises à jour de sécurité de la section principale (main)</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb http://security.debian.org/ testing/updates main</code></p>

<p class="spip">Voici un exemple complet pour suivre une Debian testing :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>deb ftp://ftp.fr.debian.org/debian/ testing main non-free<br />
deb-src ftp://ftp.fr.debian.org/debian/ testing main<br />
deb http://security.debian.org/ testing/updates main</code></div>
<p class="spip">La commande « <strong class="spip">apt-setup</strong> » permet d’utiliser une interface texte pour ajouter des sources à la fin du fichier.</p>

<p class="spip">La commande « <strong class="spip">netselect-apt</strong> » (apt-get install netselect-apt) permet de rechercher le miroir officiel Debian qui donne les meilleures performances de téléchargement. Il faut juste lui donner en argument la distribution utilisée :</p>

<p class="spip"><code class='spip_code' dir='ltr'>netselect-apt testing</code></p>

<h3>dpkg-reconfigure debconf : Configurer apt</h3>
<p class="spip">Cette commande, permet de modifier le paramétrage d’apt et d’indiquer le niveau de priorité à partir duquel il doit poser des questions :</p>

<p class="spip"><code class='spip_code' dir='ltr'>dpkg-reconfigure debconf</code></p>

<h3>apt-get update : Mettre à jour la base de données des paquets</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Mettre à jour la liste des paquets disponibles sur les sites FTP</td><td>apt-get update</td></tr>
<tr class="row_odd"><td>Mettre à jour la liste des paquets en utilisant un autre fichier que « /etc/apt/sources.list »</td><td>apt-get update -o Dir ::Etc ::SourceList=/etc/apt/monfichier</td></tr>
</tbody>
</table>
<h3>apt-get install / remove : Installer ou supprimer des paquets</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Installer un nouveau paquet </td><td>apt-get install Expression_Régulière_Du_Paquetex : apt-get install ^kde* -> Installe tout ce qui commence par kde</td></tr>
<tr class="row_odd"><td>Réinstaller un paquet</td><td>apt-get &mdash;reinstall install paquet</td></tr>
<tr class="row_even"><td>Supprimer un paquet </td><td>apt-get remove Expression_Régulière_Du_Paquet</td></tr>
<tr class="row_odd"><td>Supprimer un paquet avec ces fichiers de configuration</td><td>apt-get &mdash;purge remove Expression_Régulière_Du_Paquet</td></tr>
</tbody>
</table>
<h3>apt-get upgrade / dist-upgrade : Mettre  à jour la distribution</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Mettre à jour tout le système Débian</td><td>apt-get upgrade</td></tr>
<tr class="row_odd"><td>Mettre à jour tout le système Débian en téléchargeant les nouvelles versions des paquets et pas seulement les mises à jour. <strong class="spip">Attention</strong> : Cette commande peut également supprimer des paquets si c’est nécessaire au fonctionnement de l’ensemble du système. Cette commande s’utilise normalement que pour passer d’une version de Debian à une autre (ex : Pour passer de Testing à Unstable)</td><td>apt-get dist-upgrade</td></tr>
<tr class="row_even"><td>Télécharger toutes les mises à jour sans les installer</td><td>apt-get -dy upgrade</td></tr>
<tr class="row_odd"><td>Mettre à jour le système en utilisant un autre fichier que « /etc/apt/sources.list »</td><td>apt-get upgrade -o Dir ::Etc ::SourceList=/etc/apt/monfichier</td></tr>
<tr class="row_even"><td>Mettre  à jour tout le système  Débian  jusqu’au bout, malgré les erreurs rencontrées</td><td>apt-get upgrade -f</td></tr>
</tbody>
</table>
<h3>apt-get clean : Vider le cache des paquets téléchargés</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Supprimer les paquets téléchargés dans « /var/cache/apt/archives » et installés (pour libérer de l’espace disque)</td><td>apt-get clean</td></tr>
</tbody>
</table>
<h3>apt-cache : Recherches sur les paquets</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Affiche la description d’un paquet, même si celui-ci n’est pas installé.</td><td>apt-cache show paquet</td></tr>
<tr class="row_odd"><td>Cherche « text » dans la description des paquets, même si celui-ci n’est pas installé.</td><td>apt-cache search text</td></tr>
<tr class="row_even"><td>Pour affiner la recherche, il est possible d’indiquer plusieurs textes à rechercher.</td><td>apt-cache search text1 text2</td></tr>
<tr class="row_odd"><td>L’option -f, permet d’avoir une description complète des paquets trouvés</td><td>apt-cache search -f text </td></tr>
</tbody>
</table>
<h2>apt-file : Rechercher à quel paquet appartient un fichier.</h2>
<p class="spip">Comme « dpkg -S » ou « dpkg -L », cette commande, permet de retrouver à quel paquet appartient un fichier ou permet de connaître le détail des fichiers d’un paquet. Mais contrairement à « dpkg », « apt-file », fonctionne également avec les paquets non installés à condition de mettre à jour la base de données avant de l’utiliser.</p>

<p class="spip">Par défaut, cette commande n’est pas installée. Pour pouvoir l’utiliser, il faut donc installer un paquet supplémentaire :</p>

<p class="spip"><code class='spip_code' dir='ltr'># apt-get install apt-file</code></p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Mise à jour de la base de données. <strong class="spip">Attention</strong> : Étant donné le nombre importent de paquets du système Debian, la mise  à jour du cache peut-être relativement longue.</td><td>apt-file update<strong class="spip">Remarque </strong> : Pour pouvoir lancer cette commande et corriger un problème de dépendance, j’ai dû installer le paquet « <strong class="spip"> curl </strong> » (apt-get install curl)</td></tr>
<tr class="row_odd"><td>Liste des fichiers d’un paquet</td><td>apt-file list Nom_Partiel_Du_Paquet</td></tr>
<tr class="row_even"><td>Liste des paquets contenants un fichier</td><td>apt-file search Nom_Partiel_Du_Fichier</td></tr>
</tbody>
</table>
<p class="spip"><strong class="spip">Remarque </strong> : Étant donné le temps important nécessaire pour mettre à jour le cache, il est souvent plus rapide de faire la recherche directement sur Internet :
<br /></p>
<li> <a href="http://www.debian.org/distrib/packages#search_contents" class="spip_out">http://www.debian.org/distrib/packages#search_contents</a>
<h2>aptitude : Utilitaire avancé pour gérer les paquets Debian .deb</h2>
<p class="spip"><strong class="spip">aptitude</strong> est utilisable en ligne de commandes comme apt. <strong class="spip">aptitude</strong> est désormais le frontal en mode texte pour APT à utiliser de préférence à la place d’apt-get car il est plus performant.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opération</strong></th><th scope='col'><strong class="spip">Commande </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Mise à jour de la liste des paquets</td><td>aptitude update</td></tr>
<tr class="row_odd"><td>Mise à jour des paquets (installation des nouvelles version de tous les paquets)</td><td>aptitude upgrade</td></tr>
<tr class="row_even"><td>Télécharger les nouveaux paquets sans les installer (Opération pouvant être effectuée en batch dans un cron)</td><td>aptitude &mdash;download-only upgrade</td></tr>
<tr class="row_odd"><td>Migrer vers une autre version de Debian (ex : Passage de testing à unstable)</td><td>aptitude dist-upgrade</td></tr>
<tr class="row_even"><td>Installer un paquet</td><td>aptitude install LePaquet</td></tr>
<tr class="row_odd"><td>Supprimer un paquet</td><td>aptitude remove LePaquet</td></tr>
<tr class="row_even"><td>Purger un paquet (le supprimer sans laisser aucune trace)</td><td>aptitude purge LePaquet</td></tr>
<tr class="row_odd"><td>Rechercher dans la description de tous les paquets le mot indiqué</td><td>aptitude search LeMot</td></tr>
<tr class="row_even"><td>Effacer les paquets du cache (/var/cache/apt/archives) </td><td>aptitude clean</td></tr>
<tr class="row_odd"><td>Effacer les paquets du cache en conservant uniquement la dernière version de chaque paquet</td><td>aptitude autoclean </td></tr>
</tbody>
</table>
<p class="spip"><strong class="spip">Astuce </strong> : Personnellement, je place dans la crontab de root (crontab -e), la ligne suivante pour télécharger tous les jours les derniers paquets mais sans les installer :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>00 18 * * * /usr/bin/aptitude update && <br />
/usr/bin/aptitude --download-only --assume-yes dist-upgrade && <br />
/usr/bin/aptitude autoclean</code></div>
<h2>apt-listchanges : connaître le détail des modifications des paquets</h2>
<p class="spip">Le paquet « apt-listchanges », permet d’être informé à l’écran ou par mail des modifications effectuées sur les paquets avant de mettre à jour votre système à l’aide des commandes « apt-get upgrade » ou « apt-get dist-upgrade »</p>

<p class="spip">Pour cela, il faut commencer par installer ce nouveau paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'>apt-get install apt-listchanges</code></p>

<p class="spip">Ensuite, il faut le configurer :</p>

<p class="spip"><code class='spip_code' dir='ltr'>dpkg-reconfigure apt-listchanges</code></p>

<p class="spip">Pour informations, voici le paramétrage que j’utilise :</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Question </strong></th><th scope='col'><strong class="spip">Réponse </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Mode d’affichage des changements par apt</td><td>Pageur</td></tr>
<tr class="row_odd"><td>Ignorer les changements déjà affichés</td><td>Non</td></tr>
<tr class="row_even"><td>Adresse où envoyer les changements</td><td>mon adresse mail</td></tr>
<tr class="row_odd"><td>Type de changements affichés par apt</td><td>Les deux </td></tr>
<tr class="row_even"><td>Demande de confirmation après affichage des changement</td><td>Oui</td></tr>
</tbody>
</table>
<p class="spip">Avec cette configuration et avant chaque mise à jour du système, les modifications seront affichées à l’écran et envoyées par mail et une demande de confirmation sera affichée.</p>

<h2>apt-listbugs : Éviter d’installer des paquets buggès</h2>
<p class="spip">Le paquet « apt-listbugs », télécharge avant chaque installation de paquets les rapports de bugs émis sur ce paquet. Si un rapport de bug est émis, un message d’avertissement apparaît et demande une confirmation avant d’installer ce paquet. Cela permet d’éviter d’installer des paquets buggés ou d’être informé de problèmes éventuels.</p>

<p class="spip">Pour cela, il suffit d’installer ce paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'>apt-get install apt-listbugs</code></p>

<h2>netselect-apt : Trouver le miroir Debian le plus rapide</h2>
<p class="spip">Certains miroirs Debian étant très sollicité (ex : ftp.fr.debian.org surtout lors de la sortie d’une nouvelle version) il existe un outil scannant tous les miroirs disponibles à la recherche du plus efficace. Installation du paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install netselect-apt</code></p>

<p class="spip">Lancement de la détection pour la version stable :</p>

<p class="spip"><code class='spip_code' dir='ltr'># netselect-apt stable </code></p>

<p class="spip">Pour plus d’infos, ne pas hésiter à lire la page de man</p>

<h2>Utiliser apt-get derrière un proxy</h2>
<p class="spip">Pour faire fonctionner apt-get derrière un proxy  il faut ajouter la ligne suivante dans le fichier « /etc/apt/apt.conf » (Si ce fichier n’existe pas, il faut le créer) :</p>

<p class="spip"><code class='spip_code' dir='ltr'>Acquire::http::Proxy "http://ServeurProxy:Port";</code></p>

<p class="spip">Il faut remplacer  ServeurProxy par l’adresse IP ou le nom du serveur Proxy et Port par le numéro du port utilisé par le Proxy (ex : 3128 pour Squid).</p>

<p class="spip">Le gros avantage de passer derrière un Proxy est d’éviter de télécharger plusieurs fois les mêmes paquets pour plusieurs postes. Le programme « <strong class="spip">apt-proxy</strong> » permet également de mettre en cache des paquets pour plusieurs postes, mais celui-ci n’est disponible que sur Debian Stable et Instable (Pas sur Testing).</p>

<h2>Copier la configuration d’un système sur un autre</h2>
<p class="spip">Sur le premier système, faire :</p>

<p class="spip"><code class='spip_code' dir='ltr'>dpkg --get-selections "*" >MaSelection.txt</code></p>

<p class="spip">Le paramètre "*", permet de prendre en compte les paquets à purger.</p>

<p class="spip">Le fichier MaSelection.txt contiendra tous les paquets installés sur le système.</p>

<p class="spip">Sur l’autre ordinateur récupérer le fichier MaSelection.txt et lancer les commandes suivantes :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>dselect update<br />
dpkg --set-selections <MaSelection.txt<br />
apt-get dselect-upgrade</code></div>
<h2>Automatiser le téléchargement des mises à jour </h2>
<p class="spip">Pour télécharger automatiquement à 12H5 du lundi au vendredi les mises à jour et envoyer un message d’avertissement à root, il faut écrire la ligne suivante dans le crontab de root (crontab -e) :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>5 12 * * 1-5 (/usr/bin/apt-get update && /usr/bin/apt-get <br />
-dy dist-upgrade) | mail -s "Mise à jour `hostname`" root </code></div>
<h2>Automatiser l’installation des mises à jour de sécurité</h2>
<p class="spip"><strong class="spip">ATTENTION</strong> : Il peut être dangereux de faire des installations automatiquement sans aucun contrôle de l’administrateur. Donc la procédure ci-dessous est donnée à titre expérimentale et sans aucune garantie (D’ailleurs, je ne l’utilise pas :-) )</p>

<p class="spip">Pour automatiser l’installation des mises à jour de sécurité sans mettre à jour tout le système, il faut commencer par créer un nouveau fichier (ex : /etc/apt/sources.list.security) contenant la ligne suivante pour une Debian testing :</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb http://security.debian.org/ testing/updates main</code></p>

<p class="spip">Ensuite pour lancer l’installation automatiquement à 12H5 du lundi au vendredi et envoyer un message d’avertissement à root, il faut écrire la ligne suivante dans le crontab de root (crontab -e) :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>5 12 * * 1-5 (/usr/bin/apt-get -o <br />
 Dir::Etc::SourceList=/etc/apt/sources.list.security <br />
  update && /usr/bin/apt-get -o <br />
   Dir::Etc::SourceList=/etc/apt/sources.list.security<br />
    dist-upgrade) | mail -s "Mise à jour Sécurité `hostname`" root </code></div>
<h2>Purger les paquets orphelins avec « deborphan »</h2>
<p class="spip">Après avoir installé et supprimé de nombreux paquets, il arrive que des paquets contenant des librairies deviennent inutiles car celles-ci ne sont plus utilisées par aucun programme.</p>

<p class="spip">Le paquet « deborphan » donne la liste de ces libraires inutiles (orphelines).</p>

<p class="spip">Installation du paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'># apt-get install deborphan</code></p>

<p class="spip">Une fois la paquet installé, la commande suivante donne la liste des paquets inutiles :</p>

<p class="spip"><code class='spip_code' dir='ltr'># deborphan</code></p>

<p class="spip">Et la commande suivante permet de supprimer ces paquets :</p>

<p class="spip"><code class='spip_code' dir='ltr'># apt-get --purge remove `deborphan`</code></p>

<p class="spip"><strong class="spip">Remarque </strong> : Il faut lancer la commande précédente plusieurs fois jusqu’à la suppression de tous les paquets orphelins. Dans mon cas, je l’ai lancé 3 fois et j’ai supprimé 32 paquets et  17Mo.</p>

<h2>Reconstituer un paquet à partir des fichiers installés</h2>
<p class="spip">Si vous avez installé un paquet sur un poste et souhaitez l’installer sur un autre poste mais que celui-ci n’est plus disponible sur Internet, il est possible de le reconstruire.</p>

<p class="spip">Pour cela, il faut commencer par installer les paquets suivants :</p>

<p class="spip"><code class='spip_code' dir='ltr'># apt-get install fakeroot dpkg-repack </code></p>

<p class="spip">Ensuite, la commande suivante permet de reconstruire le paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'># fakeroot dpkg-repack MonPaquet</code></p>

<p class="spip">Ensuite, il suffit de copier le paquet régénéré sur l’autre poste et de l’installer :</p>

<p class="spip"><code class='spip_code' dir='ltr'># dpkg -i MonPaquet</code></p>

<p class="spip"><strong class="spip">Remarque </strong> : Cette méthode permet également de créer des paquets personnalisés avec vos propres fichiers de configuration.</p>

<h2>Passer de Debian Testing à Debian Stable</h2>
<p class="spip">Si à force de jouer avec votre fichier « <strong class="spip">/etc/apt/sources.list</strong> », vous avez installer par erreur des paquets d’une version plus récente (ex : Des paquets de Testing alors que vous êtes sous Stable), voici comment revenir en arrière et repasser tous vos paquets dans une version plus ancienne (ex : Stable)</p>

<p class="spip">Pour information, la commande suivante, permet de connaître les paquets plus récent que la version utilisée :</p>

<p class="spip"><code class='spip_code' dir='ltr'># apt-show-versions | grep newer</code></p>

<p class="spip">Créer le fichier « <strong class="spip">/etc/apt/preferences</strong> » et ajouter les lignes suivantes :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>Package: *<br />
Pin: release a=stable<br />
Pin-Priority: 1001</code></div>
<p class="spip">Ces lignes indiques que vous souhaitez utiliser la version stable. En mettant une « Pin-Priority » supérieur à 1000 cela autorise une mise  jour vers des paquets plus anciens.</p>

<p class="spip">Ensuite, une simple mise à jour avec la simple commande suivante devrait réinstaller tous les paquets dans leur version « Stable » :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude upgrade</code></p>

<p class="spip">Autrement, ne pas hésiter à faire « man apt_preferences » ou man « apt-show-versions » pour avoir plus d’informations.</p>

<p class="spip"><strong class="spip">Attention</strong> : Une mise à jour vers une version plus ancienne n’est pas garanti mais fonctionne bien dans la plupart des cas.</p>

<h2>Documentation officielle</h2>
<p class="spip">Pour en savoir plus sur « apt », un paquet contenant une documentation très complète et en français existe :</p>

<p class="spip"><code class='spip_code' dir='ltr'>aptitude install apt-howto-fr aptitude-doc-fr</code></p>

<p class="spip">Après l’installation de ces paquets, la documentation est disponible dans les dossiers « /usr/share/doc/Debian/apt-howto » et « /usr/share/doc/aptitude »</p>

<p class="spip">Cette documentation est fournie au format html, pdf et postscript. Pour ces deux dernières, il faut installer le paquet « gunzip » pour pouvoir les décompresser et les lire.</p>

<h2>Liens Internet</h2>
<p class="spip">La documentation officielle en français et très bien faite :
<br /></p>
<li> <a href="http://www.debian.org/doc/manuals/quick-reference/ch-package.fr.html" class="spip_out">http://www.debian.org/doc/manuals/quick-reference/ch-package.fr.html</a>
<p class="spip">Pour voir la liste des paquets ou rechercher dans les répertoires de paquets ou rechercher dans le contenu des paquets :
<br /></p>
<li> <a href="http://www.debian.org/distrib/packages" class="spip_out">http://www.debian.org/distrib/packages</a>
<p class="spip">Rechercher des informations sur des bugs :
<br /></p>
<li> http://bugs.debian.org/package-name 	si vous connaissez le nom du paquet
<br /><li> http://bugs.debian.org/bugnumber      	si vous connaissez le numéro du bogue
<p class="spip">Installer l’ancienne version d’un paquet :
<br /></p>
<li> <a href="http://snapshot.debian.net/" class="spip_out">http://snapshot.debian.net/</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>10/09/04</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.3</td><td>16/12/04</td><td>Ajout Chapitre « Copier la configuration d’un système sur un autre »</td></tr>
<tr class="row_even"><td>0.4</td><td>04/02/05</td><td>Ajout « Automatiser le téléchargement » et « Automatiser l’installation »</td></tr>
<tr class="row_odd"><td>0.5</td><td>06/04/05</td><td>Ajout chapitre « apt-file » </td></tr>
<tr class="row_even"><td>0.6</td><td>12/04/05</td><td>Ajout chapitre « apt-listchanges »</td></tr>
<tr class="row_odd"><td>0.7</td><td>28/06/05</td><td>Ajout chapitre « apt-listbugs : Éviter d’installer des paquets buggès »</td></tr>
<tr class="row_even"><td>0.8</td><td>27/07/05</td><td>Ajout chapitre « Purger les paquets orphelins » (Merci Jibux)</td></tr>
<tr class="row_odd"><td>0.9</td><td>02/09/05</td><td>Ajout chapitre « Reconstituer un paquet à partir des fichiers installés »</td></tr>
<tr class="row_even"><td>1.0</td><td>20/08/06</td><td>Ajout chapitre « aptitude » et « Activer la completion intelligente »</td></tr>
<tr class="row_odd"><td>1.1</td><td>08/05/07</td><td>Ajout chapitre « netselect-apt : Trouver le miroir Debian le plus rapide »</td></tr>
<tr class="row_even"><td>1.2</td><td>15/08/07</td><td>Ajout chapitre « Passer de Debian Testing à Debian Stable »</td></tr>
</tbody>
</table>