 gestion des paquets deb sous debian avec dpkg aptget et aptitude but de ce document ce document me sert de mémo sur les différentes commandes de gestion des paquets sous debian  je le diffuse en espérant qu il puisse servir à d autres personnes si vous préférez utiliser une interface graphique pour gérer vos paquets vous pouvez suivre ce mémo  http wwwcoagulorg articlephp3 idarticle 617 activer la completion intelligente pour faciliter l utilisation de la ligne de commande 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 aptget ou de connaître la liste des paquets commençants par certains caractères ex aptget install vi tab je trouve qu utiliser les commandes apt avec la complétion intelligente est pour moi plus simple que d utiliser synaptique pour activer la complétion intelligente il faut saisir la commande suivante à la fin du fichier bashrc ou à la fin du fichier etc profile etc bashcompletion remarque  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 bashbashrc  bash avec completion dès la première tabulation sous debian pour avoir la liste des choix possibles de la completion il est nécessaire d appuyer deux fois sur la touche tab 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 set showallifambiguous on dpkg utilitaire de base pour gérer les paquets debian deb dpkg est l utilitaire de base sous debian pour installer supprimer configurer ou obtenir des informations sur des paquets deb contrairement à aptget il ne s occupe pas du téléchargement et ne gère pas les dépendances opération commande installer un paquet présent en local dpkg i nomexactdupaquet supprimer un paquet dpkg r nomexactdupaquet supprimer un paquet même défectueux et marqué comme demandant une réinstallation dpkg r mdash forceremovereinstreq nomexactedupaquet liste complète des paquets installés dpkg l liste partielle des paquets installés dpkg l nomdupaquetdpkg l débutdunomdupaquet dpkg l nompartieldupaquet rechercher l emplacement du fichier contenu dans un paquet et le nom de ce paquet dpkg s nompartieldufichier connaître la liste des fichiers d un paquet dpkg l nomexactedupaquet informations complètes sur un paquet dpkg p nomdupaquet reconfigurer un paquet dpkgreconfigure nomexactedupaquet pour avoir l historique des actions effectuées par dpkg cat var log dpkglog les scripts de préinstallation et postinstallation des paquets sont disponibles dans var lib dpkg info dans ce répertoire les fichiers terminés par list donnent la liste des fichiers installés par le paquet apt utilitaire avancé pour gérer les paquets debian deb aptget est un utilitaire plus évolué que dpkg 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   etc apt sourceslist    etc apt sourceslist ce fichier contient la liste des sources des paquets voici la syntaxe générale d une ligne deb debsrc url stable testing unstable main contrib nonfree  deb  adresse de paquets binaires compilés  debsrc  adresse de paquets sources  main  les paquets principaux  contrib  les paquets plus vraiment supportés  nonfree  les paquets de logiciels non libres propriétaires la ligne suivante permet de récupérer tous les paquets binaires de la debian testing deb http ftpfrdebianorg debian testing main contrib nonfree la même ligne avec un accès ftp deb ftp ftpfrdebianorg debian testing main contrib nonfree il est possible d écrire la ligne précédente sur 3 lignes deb http ftpfrdebianorg debian testing main deb http ftpfrdebianorg debian testing contrib deb http ftpfrdebianorg debian testing nonfree cette ligne est nécessaire uniquement pour pouvoir compiler des sources debsrc http ftpfrdebianorg debian testing main cette ligne facultative permet de récupérer des paquets non autorisés aux us ex algorithmes d encryptage deb http nonusdebianorg debiannonus testing nonus main cette ligne permet de récupérer les mises à jour de sécurité de la section principale main deb http securitydebianorg testing updates main voici un exemple complet pour suivre une debian testing deb ftp ftpfrdebianorg debian testing main nonfree debsrc ftp ftpfrdebianorg debian testing main deb http securitydebianorg testing updates main la commande  aptsetup  permet d utiliser une interface texte pour ajouter des sources à la fin du fichier la commande  netselectapt  aptget install netselectapt 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 netselectapt testing dpkgreconfigure debconf configurer apt cette commande permet de modifier le paramétrage d apt et d indiquer le niveau de priorité à partir duquel il doit poser des questions dpkgreconfigure debconf aptget update mettre à jour la base de données des paquets opération commande mettre à jour la liste des paquets disponibles sur les sites ftp aptget update mettre à jour la liste des paquets en utilisant un autre fichier que etc apt sourceslist aptget update o dir etc sourcelist etc apt monfichier aptget install remove installer ou supprimer des paquets opération commande installer un nouveau paquet aptget install expressionrégulièredupaquetex aptget install kde installe tout ce qui commence par kde réinstaller un paquet aptget mdash reinstall install paquet supprimer un paquet aptget remove expressionrégulièredupaquet supprimer un paquet avec ces fichiers de configuration aptget mdash purge remove expressionrégulièredupaquet aptget upgrade distupgrade mettre à jour la distribution opération commande mettre à jour tout le système débian aptget upgrade mettre à jour tout le système débian en téléchargeant les nouvelles versions des paquets et pas seulement les mises à jour attention  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 aptget distupgrade télécharger toutes les mises à jour sans les installer aptget dy upgrade mettre à jour le système en utilisant un autre fichier que etc apt sourceslist aptget upgrade o dir etc sourcelist etc apt monfichier mettre à jour tout le système débian jusqu au bout malgré les erreurs rencontrées aptget upgrade f aptget clean vider le cache des paquets téléchargés opération commande supprimer les paquets téléchargés dans var cache apt archives et installés pour libérer de l espace disque aptget clean aptcache recherches sur les paquets opération commande affiche la description d un paquet même si celuici n est pas installé aptcache show paquet cherche text dans la description des paquets même si celuici n est pas installé aptcache search text pour affiner la recherche il est possible d indiquer plusieurs textes à rechercher aptcache search text1 text2 l option f permet d avoir une description complète des paquets trouvés aptcache search f text aptfile rechercher à quel paquet appartient un fichier 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 aptfile fonctionne également avec les paquets non installés à condition de mettre à jour la base de données avant de l utiliser par défaut cette commande n est pas installée pour pouvoir l utiliser il faut donc installer un paquet supplémentaire aptget install aptfile opération commande mise à jour de la base de données attention  étant donné le nombre importent de paquets du système debian la mise à jour du cache peutêtre relativement longue aptfile update remarque  pour pouvoir lancer cette commande et corriger un problème de dépendance j ai dû installer le paquet  curl  aptget install curl liste des fichiers d un paquet aptfile list nompartieldupaquet liste des paquets contenants un fichier aptfile search nompartieldufichier remarque  étant donné le temps important nécessaire pour mettre à jour le cache il est souvent plus rapide de faire la recherche directement sur internet  http wwwdebianorg distrib packages searchcontents aptitude utilitaire avancé pour gérer les paquets debian deb aptitude est utilisable en ligne de commandes comme apt aptitude est désormais le frontal en mode texte pour apt à utiliser de préférence à la place d aptget car il est plus performant opération commande mise à jour de la liste des paquets aptitude update mise à jour des paquets installation des nouvelles version de tous les paquets aptitude upgrade télécharger les nouveaux paquets sans les installer opération pouvant être effectuée en batch dans un cron aptitude mdash downloadonly upgrade migrer vers une autre version de debian ex passage de testing à unstable aptitude distupgrade installer un paquet aptitude install lepaquet supprimer un paquet aptitude remove lepaquet purger un paquet le supprimer sans laisser aucune trace aptitude purge lepaquet rechercher dans la description de tous les paquets le mot indiqué aptitude search lemot effacer les paquets du cache var cache apt archives aptitude clean effacer les paquets du cache en conservant uniquement la dernière version de chaque paquet aptitude autoclean astuce  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 00 18 usr bin aptitude update usr bin aptitude downloadonly assumeyes distupgrade usr bin aptitude autoclean aptlistchanges connaître le détail des modifications des paquets le paquet aptlistchanges 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 aptget upgrade ou aptget distupgrade pour cela il faut commencer par installer ce nouveau paquet aptget install aptlistchanges ensuite il faut le configurer dpkgreconfigure aptlistchanges pour informations voici le paramétrage que j utilise  question réponse mode d affichage des changements par apt pageur ignorer les changements déjà affichés non adresse où envoyer les changements mon adresse mail type de changements affichés par apt les deux demande de confirmation après affichage des changement oui 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 aptlistbugs éviter d installer des paquets buggès le paquet aptlistbugs 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 pour cela il suffit d installer ce paquet aptget install aptlistbugs netselectapt trouver le miroir debian le plus rapide certains miroirs debian étant très sollicité ex ftpfrdebianorg 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 aptitude install netselectapt lancement de la détection pour la version stable netselectapt stable pour plus d infos ne pas hésiter à lire la page de man utiliser aptget derrière un proxy pour faire fonctionner aptget derrière un proxy il faut ajouter la ligne suivante dans le fichier etc apt aptconf si ce fichier n existe pas il faut le créer acquire http proxy http serveurproxy port 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 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  aptproxy  permet également de mettre en cache des paquets pour plusieurs postes mais celuici n est disponible que sur debian stable et instable pas sur testing  copier la configuration d un système sur un autre sur le premier système faire dpkg getselections maselectiontxt le paramètre permet de prendre en compte les paquets à purger le fichier maselectiontxt contiendra tous les paquets installés sur le système sur l autre ordinateur récupérer le fichier maselectiontxt et lancer les commandes suivantes dselect update dpkg setselections  