[doc] gestion des paquets Debian (dpkg, apt, deborphan, debfoster ...)

gestion des paquets Debian (dpkg, apt, deborphan, debfoster ...) [doc] - Installation - Linux et OS Alternatifs

Marsh Posté le 02-07-2003 à 06:25:22    

Pourquoi cette doc ?
Pour aider tout le monde à gérer les paquets sous Debian. Les documentations sur Internet concernent surtout dpkg et apt-get. C'est sans compter sur tous les autres programmes qui existent et qui ont des points forts évidents !  
 
À qui s'adresse cette doc ?
Le système de gestion des paquets est un des points fondamentaux qui différencie une distribution Linux d'une autre. En conséquence, cette documentation ne pourra malheureusement pas convenir à des utilisateurs de Linux qui ne sont pas sous Debian. J'en suis désolé. C'est ma première documentation sur Internet et j'espère que la prochaine s'adressera à tous les utilisateurs de Linux :-)
 
Pourquoi la poster sur harware ?
Parce que c'est la qu'elle sera la plus utile. J'utilise le forum pour poser des questions mais je ne réponds pas aux questions des autres : je suis encore débutant. C'est un moyen d'apporter une contribution personnelle pour remercier le forum de l'aide qu'il m'apporte (en particulier pour me remotiver lorsque je suis découragé. Pas toujours facile d'être autodidacte ! J'ai essayé de réaliser un document de qualité mais il contient peut-être des erreurs. Merci à tous les forumeurs qui prendront le temps de le lire et de faire des remarques pour que je puisse l'améliorer :-)
 
Quel est mon parcours sous Linux ?
Je me suis mis à Linux il y a 1 an et demi. J'ai abandonné presque aussitôt puis me suis relancé dans l'aventure de manière ferme depuis 4 mois ; j'ai découvert le système de gestion de paquets Debian il y a 2 semaines et demies, après avoir passé pas mal de temps sur les commandes de base du bash et sur le fonctionnement général de Linux
 
Remerciements
Je tiens spécialement à remercier toutes les personnes qui m'ont soutenu jusqu'à présent sur hardware.fr et sans qui la rédaction de cette doc n'aurait pas été possible. Je remercie également tous les rédacteurs de sites Internet sans qui je n'aurai réussi à rien faire !
 
Un grand merci à :
Humidifier, e_esprit, Threep, lithium, 911GT3, imalip, qxn, cedric80 et pipomolo
pour leur aide très précieuse.
 
Merci aussi aux rédacteurs des docs suivantes :
http://casteyde.christian.free.fr/ [...] book1.html
http://www.debian.org/doc/manuals/ [...] em.fr.html
http://www.debian.org/doc/manuals/ [...] ge.fr.html
http://www.debian.org/doc/manuals/ [...] ex.fr.html
http://savannah.nongnu.org/downloa [...] index.html
 


Message édité par s-gaia le 02-07-2003 à 08:55:48

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 06:25:22   

Reply

Marsh Posté le 02-07-2003 à 06:25:33    

PLAN DE CE DOCUMENT
 
 
I Description des paquets Debian
 
I.1 les paquets sources
I.2 les paquets binaires (.deb)
* Où trouve-t-on les paquets .deb ?
* Comment les paquets debian sont-ils classés ? (sections, distributions, catégories)
* Quelles sont les données fondamentales contenues dans un paquet .deb ? (dépendances, priorité, description?.)
 
 
II Présentation des programmes indispensables pour la gestion des paquets
 
II.1 présentation du paquet dpkg (dpkg, dpkg-deb, dselect)
II.2 présentation du paquet apt (apt-cache, apt-cdrom, apt-get)
II.3 présentation du paquet aptitude (aptitude)
II.4 présentation du paquet deborphan (deborphan, orphaner)
II.5 présentation du paquet tasksel (tasksel)
II.6 présentation du paquet debfoster (debfoster)
 
 
III Maintenir le système de gestion des paquets dans un état sain
 
III.1 comment savoir si le système est en bon état ?
III.2 comment remettre le système en bon état ?
* Correction des problèmes de dépendances
* Correction d'autres problèmes, relatifs aux paquets
* Corrections de problèmes avec apt-get, relatifs à des oublis ou erreurs de l'utilisateur
 
 
IV Installation et mise à jour des paquets
 
IV.1 rechercher le paquet souhaité, savoir s'il est déjà installé
* savoir si un paquet est installable et connaître ses caractéristiques
* rechercher un nom de paquet, une fonctionnalité
IV.2 ajouter des sources CDs ou Internet avec apt
* où apt va-t-il chercher les paquets à installer ?
* description succincte du fichier de configuration /etc/apt/sources.list
* comment ajouter des accès CDs pour apt ?
* comment ajouter des accès Internet pour apt ?
IV.3 installer des paquets et les mettre à jour
* comment installer de nouvelles tâches (regroupant tout un ensemble de paquets) ?
* comment installer un paquet à partir d'une disquette ou d'un disque dur ?
* dans le cas d'une installation à partir des CDs ou d' Internet, comment savoir à partir de quel support le paquet sera installé ?
* où apt stocke-t-il les nouveaux paquets qui servent aux mises à jour depuis Internet ?
* dois-je purger ces paquets après mise à jour de mon système ?
* quel programme choisir pour l'installation de paquets à partir de CDs ou d' Internet ?
* faut-il installer ou non les paquets de type "recommends" et de type "suggests" ?
* comment voir les relations de type "recommends" et "suggests" non satisfaites sur son système ?
* comment installer de nouveaux paquets à partir des CDs ou d' Internet ?
* comment savoir si des paquets déjà installés peuvent être mis à niveau ?
* comment télécharger les mises à jour disponibles des paquets sans les installer ?
* comment mettre à jour les paquets ?
 
 
V Faire le ménage !
 
V.1 commandes classiques de suppression et de purge des paquets
* comment supprimer un paquet ?
* comment supprimer et purger un paquet ?
* comment repérer la liste des paquets qui ont été supprimés mais pas purgés ?
V.2 utilisation de deborphan
* comment lister les bibliothèques orphelines ?
* comment lister les bibliothèques orphelines + tous les autres paquets orphelins ?
* connaître la priorité des paquets listés
* comment limiter la liste des orphelins affichés en fonction de leur priorité ?
* comment ne plus afficher certains paquets dans la liste de deborphan
V.3 utilisation de orphaner
V.4 utilisation de debfoster
V.5 utilisation d'aptitude
 
 
VI Marquer les paquets
 
* comment marquer un paquet ?
* application concrète n° 1 : geler les paquets que vous ne voulez pas mettre à jour
* application concrète n° 2 : installer immédiatement un système avec tous les paquets voulus et non voulus : très utile si vous réinstallez complètement votre système Linux et que vous souhaitez retrouver tous les paquets que vous aviez installés / désinstallé par rapport au système d'origine.
 


Message édité par s-gaia le 02-07-2003 à 20:50:23

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 06:25:40    

I Description des paquets Debian
 
Les paquets sont des fichiers qui permettent d'installer des programmes sous un système Linux. Ce chapitre décrit très brièvement les paquets sources, le but étant d'étudier les fichiers binaires.
 
 
I.1 les paquets sources
 
Les paquets sources sont généralement matérialisés sous forme de fichiers avec les extensions :
 * .dsc qui décrit le paquet source
 * .orig.tar.gz qui contient la source originale non modifiée compressée par tar et gzip
 * .diff.gz qui contient les modifications des sources originales spécifiques à Debian.
 
Nous n'étudierons pas les paquets sources dans ce document car leur utilisation *rigoureuse* demande des connaissances en compilation et en programmation.
 
 
I.2 les paquets binaires (.deb)
 
Les paquets binaires sont adaptés à une utilisation pour utilisateur lambda. Les sources ont déjà été compilées en format binaire, c'est à dire dans un langage directement compréhensible par les machines.
 
 Où trouve-t-on les paquets .deb ?
Les paquets .deb se trouvent bien sûr sur vos CDs d'installation mais également sur Internet. Le site officiel de Debian propose la liste de tous les paquets à l'adresse :
http://www.debian.org/distrib/packages
 
 Comment les paquets debian sont-ils classés ?
 
Les sections classent les paquets suivant leur positionnement par rapport au logiciel libre.
Les distributions classent les paquets par rapport à leur niveau de développement/stabilité.
Les catégories classent les paquets suivant ce qu'ils permettent de faire concrètement.
 
 les sections (4) :
 * main : les paquets de cette section sont libres
 * contrib : les paquets de cette section sont eux même libres, mais dépendent de paquets ne l'étant pas.
 * non free : les paquets de cette section ne sont pas forcément payants, mais ils ont une licence pénible qui restreint leur usage ou leur redistribution.
 * non-us : la loi au Etats-Unis impose des restrictions sur l'export de certains articles relatifs à la défense qui, malheureusement, incluent certains types de logiciels cryptographique. pgp et ssh, entre autres, tombent dans cette catégorie. Cela veut dire qu'il est illégal d'utiliser de tels logiciels en dehors des Etats-Unis ! Comme quoi, on peut se mettre dans l'illégalité avec Linux ! (dommage?)
 
- les distributions (3) :
 * unstable : les paquets dans la zone unstable ne sont pas ou peu testés, et peuvent contenir des problèmes suffisamment graves pour affecter la stabilité de votre système. Seuls les utilisateurs suffisamment expérimentés devraient utiliser cette distribution.
 * testing : une fois que les paquets ont atteint les critères de stabilité et de qualité imposés, ils sont déplacés vers cette zone.
 * stable : c'est la distribution stable par excellence. Les paquets ne sont modifiés que pour corriger des problèmes de sécurité majeurs, ou pour en améliorer l'utilisabilité.
 
- les catégories (28) :
 * Administration Utilities : pour administrer les ressources systèmes, gérer les comptes utilisateurs, etc. ?
 * Base Utilities : utilitaires basiques indispensables pour le système Debian. Il n'y a pas besoin de les installer. Cette section est présente uniquement dans un but de mise à jour des paquets.
 * Communication Programs : logiciels pour utilisation avec modems
 * Developement : utilitaires de développement, compilateurs, environnements de développement, bibliothèques, etc.
 * Documentation : FAQs, HOWTOs ou tout autre document expliquant comment utiliser Debian GNU-Linux (man, info, etc.)
 * Editors : logiciels permettant d'éditer des fichiers ; plutôt orientés pour environnements de programmation
 * Electronics : tous les utilitaires relatifs à l'électronique
 * Games : contient tout ce qui est relatif aux jeux
 * Graphics : pour la retouche d'images : éditeurs, lecteurs, convertisseurs?
 * Ham Radio : utilitaires pour tous types de connexions sans fil
 * Interpreters : toutes sortes d'interpréteurs de langages pour les développeurs
 * Librairies : contient toutes sortes de bibliothèques pour les développeurs.
 * Mail : tous types de logiciels relatifs à la messagerie électronique.
 * Mathematics : tous types de logiciels relatifs aux mathématiques.
 * Miscellaneous : logiciels divers inclassables dans les autres catégories
 * Network : logiciels réseaux pour clients/serveurs, connexion sur un réseau local et Internet
 * Newsgroups : logiciels pour accéder à Usenet, pour configurer les serveurs de News, etc.
 * Software restricted in the U.S. : (voir la section non-us ci-dessus pour des explications)
 * Old librairies : vieilles versions de bibliothèques, conservées pour maintenir les vieilles applications compatibles.
 * Other OS's and file systems : logiciels permettant de lancer des programmes compilés pour d'autres systèmes d'exploitation et permettant d'utiliser leurs systèmes de fichiers.
 * Science : utilitaires basiques pour le travail scientifique.
 * Shells : utilitaires pour exécution de lignes de commandes. Les utilitaires de cette section ont pour but de proposer des interfaces conviviales pour utilisateurs débutants.
 * Sound : utilitaires relatifs au son : lecteurs, mixers, enregistreurs, lecteurs de CD?
 * TeX : éditeurs de fichiers texte pour la programmation ; réservé aux développeurs.
 * Tex processing : utilitaires pour formater et imprimer des documents ; contient également des utilitaires comme des convertisseurs de format de texte, des dictionnaires?
 * Utilities : utilitaires pour la manipulation de fichiers/disques, outils d'archivage et de sauvegarde, monitoring du système, etc.
 * Web software : utilitaires relatif au Web et à la navigation sur Internet
 * X Window System software : serveurs X, bibliothèques, fontes, gestionnaires de fenêtres, émulateurs de terminaux et beaucoup d'autres applications relatives à l'environnement Xwindow
 
 Quelles sont les données fondamentales contenues dans un paquet .deb ?
 
Maintenant que nous avons vu comment les paquets sont classés, nous allons nous intéresser à leur contenu.
 
Les .deb ont la convention de nommage suivante : foo_vvv-rrr.deb
 * foo indique le nom du paquet
 * vvv indique le numéro de version du paquet. Il est spécifié par le développeur original. Il n'y a aucune norme spécifiant la numérotation des versions, elle peut avoir des formats aussi différents que « 19990513 » et « 1.3.8pre1 ».
 * rrr indique le numéro de révision du paquet. Il est spécifié par le développeur Debian.
 
Un fichier .deb contient un ensemble d'informations qu'il est utile de comprendre. Pour voir ces infos, nous utiliserons les commandes suivantes :
 * dpkg-deb --info
 permet de lister le contenu du .deb
 * dpkg-deb --contents
 liste le contenu du fichier du .deb
 * dpkg-deb -x /repertoire
 extrait le contenu du .deb dans le répertoire demandé
 * dpkg-deb -e /repertoire
 extrait les fichiers de contrôle du .deb dans un répertoire.
Ces fichiers ne sont pas visibles avec dpkg-deb --contents et ne sont pas extraits avec dpkg-deb --x /repertoire
 
Ces commandes devront être suivies du nom du paquet .deb à traiter.
 
Voici les informations données sur un paquet grâce à dpkg-deb --info :
 


   new debian package, version 2.0.
   size 422062 bytes: control archive= 7829 bytes.
a  55 bytes,        2 lines   conffiles
b  457 bytes,      14 lines   control
   16987 bytes,   253 lines   md5sums
c  770 bytes,      31 lines   *  postinst
c  89 bytes,        7 lines   *  postrm
c  470 bytes,      17 lines   *  prerm
   Package:        jed-common
   Version:        0.99.9-14
   Section:        editors
d  Priority:       optional
   Architecture:   all
e  Recommends:     jed
e  Conflicts:      jedsl-src, jed (<< 0.99.9-2)
e  Replaces:       jedsl-src, jed (<< 0.99.9-2)
   Installed-Size: 1159
   Maintainer: Christian Hammers
   <ch@debian.org>
   Description: Byte compiled SLang runtime
   files for jed and xjed. This package
   provides the compiled slang runtime files
   that are needed by both jed and xjed.
   Source: jed


 
 
ligne a :
Le fichier conffiles contient les informations des chemins d'accès vers les fichiers de configuration qui seront installés avec le paquet.
 
ligne b :
Le fichier control contient toutes les informations du paquet. Il permet d'afficher les lignes allant de "Package :" jusqu'à "Source :"
 
lignes c :
Ces lignes donnent la liste des scripts de maintenance Debian. Ces scripts assurent la bonne installation et la mise à jour des paquets debian. Les fichiers scripts trouvés dans les lignes c peuvent être parmi les 4 suivants : preinst, postinst, prerm et postrm
 
ligne d :
Cette ligne identifie la priorité du paquet. Il existe 5 types de priorités :
 * "required" indique que le paquet est nécessaire au bon fonctionnement du système. Les paquets de priorité "required" ne doivent *pas* être supprimés du système
 * "important" indique un paquet qu'il est nettement préférable d'avoir sur le système pour son bon fonctionnement ; cependant, son absence sera sans conséquence grave pour la restauration du système.
 * "standard" inclut tous les paquets qui sont installé en standard sous Linux.
 * "optional" inclut tous les paquets que l'utilisateur peut souhaiter installer suivant ses goûts et les applications qu'il souhaite installer.
 * "extra" sont les paquets qui :
   * soit entrent en conflit avec des paquets ayant une priorité plus haute ;
   * soit ne seront utiles que si vous les connaissez ;
   * soit ont besoin de pré requis spécifiques qui les rendent peu convenables pour les paquets "Optional".
 
lignes e :
indique les dépendances du paquet à d'autres paquets
 * "depends" liste les paquets qui doivent absolument être installés pour que le paquet que l'on souhaite installer puisse fonctionner.
 * "pre-depends" (rare) : ceci est plus fort que "depends". Le paquet ne sera pas installé à moins que les paquets dont il pré dépend ne soient installés et correctement configurés.
 * "recommends" indique les paquets que le responsable du paquet estime importants pour l'utilisateur soit satisfait des services du paquet installé.
 * "suggests" indique des paquets qui améliorent généralement les fonctionnalités du paquet que l'on souhaite installer.
 * "conflicts" : si un des paquets de la liste "conflicts" est déjà installé sur le système, alors le paquet que l'on souhaite installer ne fonctionnera pas. "conflicts" est souvent associé avec "replaces".
 * "replaces" : si le paquet voulu est installé, il remplacera (il écrasera) les paquets de la liste "replaces".
 * "provides" : cette section est faite pour lister les paquets virtuels. Les paquets virtuels sont utilisés pour désigner un groupe de paquets similaires remplissant la même fonction. L'utilisateur pourra ainsi choisir un paquet parmi les paquets disponibles dans le groupe désigné par le paquet virtuel.
 


Message édité par s-gaia le 02-07-2003 à 18:23:53

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 06:39:10    

II Présentation des programmes indispensables pour la gestion des paquets
 
Ce que j'entends pas gestion des paquets :
 * maintenir le système dans un état sain (dépendances non brisées, paquets installés correctement)
 * gestion de l'installation et de la mise à jour
 * gestion des désinstallations
 
Ces trois actions peuvent sembler toutes simples, et pourtant il faut un nombre de programmes plutôt impressionnant pour réussir à tout faire correctement. Seuls les programmes que j'estime fondamentaux et indispensables sont présentés ci-dessous. Ils feront l'objet d'un descriptif détaillé dans les chapitres qui suivent. Voici déjà un aperçu de leurs points forts.
 
 
II.1 présentation du paquet dpkg
 
Le paquet dpkg contient 3 programmes indispensables : dpkg, dpkg-deb et dselect
 * dpkg est LE programme de base indispensable pour maintenir le système dans un état sain, assurer les installations locales et aider à gérer les désinstallations.
 * dpkg-deb permet de visualiser toutes les informations contenues dans un paquet .deb Nous l'avons utilisé dans le chapitre précédent. Ce programme joue un rôle pédagogique fondamental dans la compréhension du contenu d'un paquet.
 * dselect est un programme difficile d'accès et qui pourrait être plus simple à utiliser. Cependant, c'est le seul programme capable de traiter le marquage des paquets (l'utilisateur indique son souhait sur les paquets et dselect est capable de faire le travail d'installation/désinstallation tout seul ; très utile pour installer plusieurs systèmes avec exactement les mêmes paquets.
 
 
II.2 présentation du paquet apt
 
Le paquet apt contient 3 programmes indispensables : apt-cache, apt-cdrom et apt-get
 * apt-cache permet principalement de faire des recherches sur le nom des paquets et sur leur descriptif.
 * apt-cdrom sert à mettre à jour les bases d'informations sur les paquets disponibles à partir de ce média
 * apt-get est LE programme pour assurer la mise à jour des paquets du système grâce à Internet. Il sert également à assurer la maintenance du système en réparant automatiquement les liens de dépendances brisées.
 
 
II.3 présentation du paquet aptitude
 
Le paquet aptitude contient un programme indispensable : aptitude. aptitude peut s'utiliser en ligne de commande tout comme en mode graphique.
 * le mode graphique est agréable pour lister les paquets qui sont installés sur le système
 * le mode ligne de commande est intéressant pour réaliser une installation précise des  paquets souhaités. Contrairement à dpkg et apt-get, aptitude est capable de tenir compte des relations de type "recommends" et "suggests" lors de l'installation. Cela en fait un programme indispensable.
 
 
II.4 présentation du paquet deborphan
 
Le paquet deborphan contient 2 programmes indispensables : deborphan et orphaner.
 * deborphan est capable de lister les orphelins (c'est à dire les paquets qui ne dépendent d'aucun autre paquet). Cette fonctionnalité est très intéressante afin d'aider à maintenir un système propre. deborphan est le seul programme qui permette d'afficher les orphelins en fonction du type de paquet, de la priorité, etc. Son mode de classification en fait un programme indispensable, rien qu'au point de vue pédagogique.
 * orphaner est un programme qui utilise deborphan pour afficher uniquement les bibliothèques orphelines dans un mode graphique. Il n'est pas capable d'afficher les paquets orphelins. En revanche, ce programme permet de supprimer les bibliothèques orphelines la où deborphan est limité à en afficher la liste.
 
 
II.5 présentation du paquet tasksel
 
Le paquet tasksel contient un programme unique : tasksel. C'est un programme très intéressant qui permet d'installer tout un ensemble de paquets en même temps en raisonnant par tâches. Par exemple, rien de plus facile que d'installer tous les paquets relatifs à l'environnement français ou au système X window. Bien évidemment, tasksel a le défaut de sa qualité : il n'est pas possible de choisir avec précision les paquets qui seront installés.
 
 
II.6 présentation du paquet debfoster
 
Le paquet debfoster contient un programme unique : debfoster. La spécialité de debfoster est la facilité et la rapidité avec lesquelles il est capable de "faire le ménage". Grâce à debfoster, la désinstallation est très facile et rapide. Attention à ce que vous ferez !
 


Message édité par s-gaia le 02-07-2003 à 18:40:25

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 06:51:31    

III Maintenir le système de gestion des paquets dans un état sain
 
Ce chapitre est vu avant celui traitant de l'installation des paquets car il est indispensable d'avoir un système sain pour installer de nouveaux paquets, sans quoi les programmes refusent toutes opérations d'installation / mise à jour sur l'ordinateur !
 
 
III.1 comment savoir si le système est en bon état ?
 
Il vous suffit de taper les commandes ci-dessous. Si vous n'obtenez pas de réponses d'erreurs à l'écran, c'est que le système est parfaitement sain ! Certaines des commandes ci-dessous sont un peu redondantes, mais il vaut mieux en avoir plus que moins !
 
* apt-cache unmet -i
liste l'ensemble des dépendances manquantes par paquet.
* apt-get check
met à jour la liste des paquets et vérifie qu'il n'y a pas de dépendances brisées.
* apt-get install
vérifie qu'il n'y a pas de dépendances brisées.
* dpkg -C
recherche les paquets qui ont été installés seulement en partie sur le système. dpkg suggèrera une solution.
 
 
III.2 comment remettre le système en bon état ?
 
Correction des problèmes de dépendances
 
Pour commencer, vous devez lister les paquets qui posent des problèmes de dépendances. Les problèmes de dépendances sont souvent dus à des problèmes de compatibilités de versions entre elles. Bien souvent, il faut supprimer les paquets qui posent problèmes puis réinstaller les bonnes versions.
 
* apt-get -sf install
Donne des informations complètes sur les problèmes de dépendances.
 
Ensuite, il faut résoudre le problème à l'aide des commandes suivantes, au choix :
 
* apt-get --reinstall install "paquet"
Grâce à cette commande, vous pourrez conserver les données /var /usr et /etc du paquet, tout en vous évitant l'installation ultérieure du paquet puisque la commande permet de le réinstaller.
 
* dpkg --remove "paquet"
Si la commande apt-get reinstall ne marche pas, essayez celle-ci. Les données /var /usr et /etc du paquet ne seront pas perdues mais il vous faudra réinstaller le paquet.
 
* apt-get -f install
pour corriger automatiquement les dépendances cassées. Si vous l'utilisez, faites attention de bien noter les paquets qui seront supprimés afin de pouvoir les réinstaller.
 
 
Correction d'autres problèmes, relatifs aux paquets
 
dpkg -C
vous permettra de lister les paquets qui n'ont pas été installé correctement.
Notez-les puis tapez la commande :
dpkg -l "paquet1" "paquet2" "paquetn"
où "paquet1", "paquet2" et "paquetn" sont les paquets que vous avez notés grâce à dpkg -C
 
Vous verrez 2 lettres affichées en début de ligne indiquant l'état du paquet. Les statuts problématiques les plus courants sont :
 
iU
Le paquet a été dépaqueté mais l'installation ne s'est pas terminée correctement ; il est possible que les fichiers de configuration soient mal configurés ou absents. Cela peut arriver suite à un problème de dépendance ou si l'installation ne s'est pas terminée correctement.
 
solution :
Le problème peut être simple à résoudre.
Utilisez la commande :
dpkg --configure "paquet"
où paquet est le nom du paquet à reconfigurer.  
 
autre solution :
Résoudre tous les problèmes de dépendance comme nous l'avons vu ci-dessus puis réinstallez le paquet dont le statut n'est pas bon.
 
autre solution :
Il peut arriver qu'un paquet pose systématiquement des problèmes d'installation. Si vous utilisez dpkg, l'installation ne tiendra pas compte de certains problèmes, mais pour autant, votre paquet sera mal installé et aura un statut iU.
Le problème de dépendance peut être la conséquence d'un numéro de version incompatible. Vous devez alors vous procurer les paquets requis avec un le même numéro de version mais cela peut entraîner des réactions en chaîne (les nouveaux paquets installés ayant eux-même besoin de paquets avec des numéros de versions précis. Je ne suis pas spécialiste de ce genre de problème qui peut survenir si vous faites coexister 2 versions différentes de paquets sur votre système (par exemple, vous avez une woody et vous avez installé quelques paquets de la sarge?)
 
iF
L'installation du paquet ne s'est pas terminé correctement.
 
solution :
Essayez la commande :
apt-get reinstall "paquet"
puis
dpkg --remove
si cela ne marche pas. Il faudra ensuite réinstaller le paquet (nous verrons comment le faire dans le chapitre suivant).
 
 
Corrections de problèmes avec apt-get, relatifs à des oublis ou erreurs de l'utilisateur
 
message :
W: Couldn't stat source package list
E: Couldn't find package
 
solution :
* soit vous avez oublié de mettre à jour la base d'information de apt-get, suite à une modification du fichier
/etc/apt/sources.list
Veuillez taper : apt-get update
* soit votre fichier /etc/apt/sources.list n'est pas configuré correctement (nous en parlerons dans le chapitre suivant traitant des installations et mises à jour)
 
message :
E: Unable to fetch some archives
 
solution :
Vous avez oublié de démonter votre lecteur de CDs, ce qui empêche apt d'y accéder : umount /cdrom


Message édité par s-gaia le 27-07-2003 à 11:29:28

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 07:01:22    

IV Installation et mise à jour des paquets
 
L'installation et la mise à jour de paquets sous Debian peut demander un peu de temps : il faut s'assurer de configurer correctement certains programmes et faire quelquefois des recherches pour savoir quel paquet pourrait bien remplir telle ou telle tâche souhaitée?
 
 
IV.1 rechercher le paquet souhaité, savoir s'il est déjà installé
 
savoir si un paquet est installable et connaître ses caractéristiques
dpkg -p "paquet"
 
connaître l'état d'installation d'un paquet
dpkg -l "paquet"
si le paquet est installé, la deuxième lettre affichée du statut sera "i"
 
rechercher un nom de paquet, une fonctionnalité
apt-cache search "recherche"
Cette commande fera une recherche dans le nom des paquets et leur descriptifs.
 
http://www.debian.org/distrib/packages
c'est la page du site de debian où vous pouvez chercher.
 
 
IV.2 ajouter des sources CDs ou Internet avec apt
 
où apt va-t-il chercher les paquets à installer ?
 
apt se constitue une base d'information sur les paquets disponibles et où il doit aller les chercher. Cette base d'information est mise à jour automatiquement grâce à la commande :
apt-get update
 
Pour générer cette base d'information, apt-get update se sert du fichier :
/etc/apt/sources.list et d'un fichier nommé Package.
Afin que apt sache chercher correctement l'information sur les CDs et sur Internet, il faut configurer correctement /etc/apt/sources.list. Pour les accès sur des disques locaux, il n'y a rien à faire car ce n'est pas apt que nous utiliserons.
 
description succincte du fichier de configuration
/etc/apt/sources.list

 
Une ligne de sources.list qui commence par "deb" indique un accès vers des paquets binaires (contrairement à une ligne commençant par deb-src qui indique un accès vers des paquets sources).  Les accès vers les paquets peuvent se faire avec du http, du ftp ou un fichier local (c'est à dire un répertoire contenant une image ISO9660 montée, ce qui correspond à l'utilisation des CDs pour l'utilisateur lambda).
 
Comme nous l'avons dit, ce fichier de configuration n'a aucune influence directe sur le comportement de apt qui se sert de bases d'infos stockées dans /var/lib/apt Pour que les changements du fichier de configuration /etc/apt/sources.list soit pris en compte, il faut lancer la commande :
apt-get update
ce qui aura pour effet de mettre à jour les bases d'infos de apt contenues dans /var/lib/apt
 
comment ajouter des accès CDs pour apt ?
 
C'est l'opération la plus simple ; elle n'impose pas d'éditer le fichier sources.list (vous pouvez regarder par curiosité ce fichier : toutes les lignes indiquant un accès CDs commence par :
deb cdrom:[  
Il vous suffit de taper la commande :
apt-cdrom add
Ensuite il faut taper :
apt-get update
pour mettre à jour la base d'information de apt
 
comment ajouter des accès Internet pour apt ?
 
Debian distingue 3 types de mises à jour :
* paquets principaux (concerne les sections main, contrib et non free)
* paquets non autorisés à l'extérieur des Etats-Unis, principalement ceux relatifs au chiffrement (non-us) ; encore une fois, leur chargement est illégal en dehors des Etats Unis, attention !
* paquets relatifs aux mises à jour de sécurité, suite à des failles découvertes sur le système (security)
 
Voici les lignes types qui peuvent être entrées dans sources.list :
* pour les mises à jour classiques des paquets :
deb http://http.us.debian.org/debian stable main contrib non-free
* pour les mises à jour de sécurité :
deb http://security.debian.org stable/updates main contrib non-free
 
L'idéal est de choisir la meilleure adresse Internet en fonction de la connexion de votre PC (la meilleure adresse ne correspondra pas forcément au serveur le plus proche de votre emplacement géographique ! ) Pour savoir quel serveur sera le plus intéressant pour vous, vous  pouvez utiliser netselect. Il suffit de taper la commande :
netselect url1 url2 urln
(url1, url2, urln étant la liste des adresses Internet à tester). La liste de toutes les adresses est ici :
http://www.debian.org/mirror/mirrors_full
netselect retournera l'url la plus intéressante ; il suffit alors de l'inscrire dans /etc/apt/sources.list
Ne pas oublier de taper la commande :
apt-get update
pour que les modifications prennent effet !
 
 
IV.3 installer des paquets et les mettre à jour
 
comment installer de nouvelles tâches (regroupant tout un ensemble de paquets) ?
Utiliser tasksel (sélecteur de tâche !). C'est un programme génial pour les débutants. Il a le gros avantage de proposer l'installation d'une tache complète et sélectionne tous les paquets dont vous pourriez avoir besoin. Evidemment, tasksel a le défaut de sa qualité : il installera quelquefois des paquets que vous ne voulez pas.
 
Pour utiliser ce programme, il n'y a pas plus simple, il suffit de taper :
tasksel
Vous tomberez sur un mode graphique sur lequel la sélection/désélection des tâches se fait avec la barre d'espace. Pour avoir de l'information sur une tâche, il suffit de se mettre dessus et de taper "i". Pour sortir du programme, il suffit de taper la touche "f". Les tâches sélectionnées seront alors installées.
 
comment installer un paquet à partir d'une disquette ou d'un disque dur ?
L'installation d'un nouveau paquet à partir de tels supports se fait avec dpkg. Faites attention au paquet que vous souhaitez installer ! S'il ne fait par partie de la même distribution que celle installée sur votre système, cela peut poser des problèmes (voir le chapitre : Maintenir le système de gestion des paquets dans un état sain). Il suffit de taper la commande :
dpkg -i "paquet.deb"
 
dans le cas d'une installation à partir des CDs ou d' Internet, comment savoir à partir de quel support le paquet sera installé ?
apt-cache policy "paquet"
 
où apt stocke-t-il les nouveaux paquets qui servent aux mises à jour depuis Internet ?
dois-je purger ces paquets après mise à jour de mon système ?
 
Les paquets téléchargés en entier sont dans /var/cache/apt/archives/
Les paquets qui n'ont pas pu être chargés complètement sont stockés dans /var/cache/apt/archives/partial
 
Les fichiers inutiles stockés ici peuvent être purgés sans problème. Les fichiers inutiles sont les paquets qu'il n'est plus possible de télécharger parce des paquets plus récents sont dispos et permettent de faire une mise à jour équivalente. Vous pouvez donc purger sans problème ces anciens paquets grâce à la commande :
apt-get autoclean
 
Pour autant, tous les autres paquets seront conservés. Si vous voulez les supprimer aussi, vous pouvez le faire mais je ne vous le conseille pas, surtout si vous n'avez pas un accès Internet haut débit. Voici la commande pour le faire malgré tout :
apt-get clean
 
quel programme choisir pour l'installation de paquets à partir de CDs ou d' Internet ?
Il y a trois programmes possibles à utiliser : apt-get, aptitude et debfoster.
 * apt-get est incapable de tenir compte des relations de type "recommends" et "suggests" mais il est le seul à afficher la liste des paquets qui peuvent être mis à jour.
 * debfoster tiendra compte des relations de type "recommends" et "suggests" si vous configurez le fichier /etc/debfoster.conf ; les relations sélectionnées avec la valeur 'yes' seront traitées comme de véritables dépendances. L'ennui est qu'il enchaîne avec des questions sur les paquets que vous souhaitez supprimer? Par ailleurs, debfoster n'est pas capable de simuler une installation?
 * aptitude prend en compte les relations "recommends" et "suggests" à la carte, suivant les souhaits de l'utilisateur mais il est moins convivial pour les mises à jour car on ne voit pas la liste des paquets téléchargés.
Conclusion : apt-get et aptitude seront utilisés alternativement suivant leurs points forts. debfoster ne sera pas utilisé à cause de sa difficulté à exécuter uniquement ce qu'on lui demande.
 
Note complémentaire : aptitude et debfoster utilise apt-get pour faire les installations. Ils utilisent aussi les bases d'infos d'apt-get (d'où l'importance du fichier /etc/apt/sources.list dans tous les cas).
 
faut-il installer ou non les paquets de type "recommends" et de type "suggests" ?
Ma réponse personnelle est non : il vaut mieux utiliser dpkg -p "paquet" pour voir ce que le paquet "suggests" ou "recommends" apportera de plus. Par ailleurs, ces paquets optionnels ne se repèrent pas toujours facilement sur le système. Ils ne sont pas toujours considérés comme orphelins par le système suite à une désinstallation du paquet principal.
Exemple : installer bsdgames avec les "recommends" puis désinstaller-le : le paquet wenglish qui n'a aucune dépendance ne sera pas listé comme orphelin (nous le verrons plus tard avec la commande deborphan).
Il vaut mieux être raisonnable et prendre le temps d'étudier le "+" apporté par ces paquets.
 
comment voir les relations de type "recommends" et "suggests" non satisfaites sur son système ?
Par curiosité, vous pouvez taper la commande :
apt-cache unmet | less
Vous verrez qu'il y en a sûrement beaucoup, et c'est mieux comme cela !
 
comment installer de nouveaux paquets à partir des CDs ou d' Internet ?
aptitude install "paquet"
-s  pour faire une simulation seulement
--with-recommends  pour installer avec les paquets de type "recommends"
--with-suggests  pour installer avec les paquets de type "suggests"
 
 
comment savoir si des paquets déjà installés peuvent être mis à niveau ?
apt-get -su upgrade "paquet"
 
comment télécharger les mises à jour disponibles des paquets sans les installer ?
apt-get -du upgrade "paquet"
 
comment mettre à jour les paquets ?
apt-get -u upgrade "paquet"
 
commentaires sur les options d'apt-get que nous venons de voir :
-u : voir les paquets qui seront téléchargés
-s : faire une simulation seule
-d : faire le téléchargement seul des nouveaux paquets sans installer
 


Message édité par s-gaia le 02-07-2003 à 20:38:48

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 07:13:38    

V Faire le ménage !
 
Bien que les disques durs soient aujourd'hui de taille fort importante, faire le ménage est toujours une bonne chose ! Cela force à savoir ce que l'on veut réellement qui soit installé sur son système.
 
 
V.1 commandes classiques de suppression et de purge des paquets
 
comment supprimer un paquet ?
apt-get remove "paquet"
 
comment supprimer et purger un paquet ?
apt-get --purge remove "paquet"
 
comment purger un paquet qui a déjà été supprimé ?
seul dpkg est capable de faire ça :
dpkg --purge "paquet"
 
comment repérer la liste des paquets qui ont été supprimés mais pas purgés ?
dpkg -l | less
Tous les paquets qui ont un statut "rc" sont les paquets qui ont été supprimés mais non purgés. Vous pouvez les purger avec la commande déjà vue ci-dessus mais attention à ce que vous faites : la purge supprimera les fichiers /var et /etc associés au paquet que vous souhaitez purger.
 
 
V.2 utilisation de deborphan
 
deborphan est un programme capable de lister les paquets orphelins. Il n'est cependant pas capable de les supprimer. Un paquet orphelin est un paquet qui ne dépend d'aucun autre.  
 
Note :
Aucun programme sous Linux ne semble capable de détecter tous les orphelins. C'est le cas des paquets qui installent des dictionnaires, comme wenglish, non considéré comme orphelin. Cependant, l'utilisation d'un programme comme deborphan est un bon moyen de faire un premier tour sur la question. deborphan est le meilleur programme qui existe aujourd'hui pour détecter les orphelins.
 
comment lister les bibliothèques orphelines ?
deborphan
 
comment lister les bibliothèques orphelines + tous les autres paquets orphelins ?
deborphan -a
Cette méthode n'est pas parfaite (voir paragraphe ci-dessus)
 
connaître la priorité des paquets listés
utilisez l'option -P
 
comment limiter la liste des orphelins affichés en fonction de leur priorité ?
utilisez l'option --priority=PRIORITE
Cela permet de lister les orphelins dont la priorité est supérieur ou égale à la priorité indiquée (bien que symbolisé par la touche "=" dans la ligne de commande)
 
valeurs possibles pour PRIORITE :
1 required
2 important
3 standard
4 optional
5 extra
L'option --priority=PRIORITE fait disparaître de l'affichage l'info concernant la rubrique du paquet.
Utilisez -s pour faire réapparaître cette info.
 
comment ne plus afficher certains paquets dans la liste de deborphan ?
Il est possible d'empêcher l'affichage de certains paquets orphelins par deborphan en éditant le fichier
/var/lib/deborphan/keep ou en utilisant dans la ligne de commande l'option suivante :
--add-keep "paquet"
 
 
V.3 utilisation de orphaner
 
orphaner est un programme qui fait partie du paquet deborphan.
Il utilise une interface graphique conviviale. orphaner est capable de lister et proposer la suppression des bibliothèques orphelines. Il suffit alors de choisir si on veut les supprimer ou non en les sélectionnant avec la barre d'espace puis de valider. Pour lancer ce programme, il suffit de taper :
orphaner
 
 
V.4 utilisation de debfoster
 
voici un programme très puissant pour vous aider à faire le ménage dans les paquets.
Il suffit de taper :
debfoster
et le programme vous posera tout un tas de questions sur les paquets que vous souhaitez supprimer.
 
Avant de voir comment le faire, il est intéressant de savoir configurer le fichier /etc/debfoster.conf pour qu'il réponde le mieux à vos attentes.
/etc/debfoster.conf propose 20 options.
Il y en a quelques-unes qu'il ne vaut mieux pas modifier, d'autres qui n'ont rien à voir avec la suppression des paquets (nous en avons parlé dans le chapitre "installation et mise à jour des paquets" ). Enfin, il y a des options qu'il est intéressant de connaître et de configurer suivant ses souhaits personnels :
 
* MaxPriority =  (default: standard)
Cette option permet de limiter les paquets que debfoster invite à supprimer. La valeur "standard" sera appliquée par défaut, c'est à dire qu'il ne proposera jamais de supprimer des paquets de type "required" ou "important", ce qui serait dangereux. Vous pouvez le configurez pour qu'il ne pose que des questions sur les paquets "optional" et "extra" en choisissant la valeur "optional". Vous pouvez aussi le configurer pour qu'il ne pose que des questions sur les paquets de type "extra" en choisissant la valeur "extra".
 
* KeepSections =
Cette option très puissante vous permet d'indiquer à debfoster qu'il ne doit jamais vous inviter à supprimer des paquets qui se trouvent dans la section indiquée.
 
* NokeepSections =
Cette option me semble dangereuse. Elle indique à debfoster de ne pas poser de questions à l'utilisateur et de supprimer sans confirmation les paquets qui se trouvent dans ces catégories (si c'est vraiment le bazard sur votre système et que vous ne vous en sortez pas, c'est peut-être une option à tenter ;-)  ).
 
* KeeperFile = /var/lib/debfoster/keepers
Cette option est très importante, non pas du point de vue de la configuration, mais vu ce que cela implique :
le fichier /var/lib/debfoster/keepers garde tous les paquets que vous souhaitez conserver, mais si un jour vous changez d'avis ou vous faites une erreur, il faudra le modifier à la main (pas simple si vous avez déjà décidé de conserver plein de paquets).
Donc, les infos contenues dans ce fichier peuvent fausser les invites de suppressions faites par debfoster.
Le fichier /var/lib/debfoster/keepers est édité automatiquement dans les cas suivants :
 * debfoster a trouvé des paquets appartenant à une section que vous avez placée dans KeepSections = . À ce moment là, tous les noms de paquets appartenant à cette section seront édités dans ce fichier.
 * en lançant debfoster, celui-ci vous demande si vous voulez conservez tel ou tel paquet. Si vous répondez oui (y), le nom du paquet sera ajouté dans /var/lib/debfoster/keepers
En conclusion, si vous voulez faire le ménage correctement, faites attention aux fichiers que vous demandez à debfoster de conserver et n'hésiter pas à lire /var/lib/debfoster/keepers
de temps en temps pour savoir si la liste des paquets qui s'y trouvent correspond bien à votre souhait.
 
Maintenant que vous êtes prêt, il n'y a plus qu'à le lancer en tapant :
debfoster
 
Vous verrez que debfoster vous propose de supprimer :
 * soit un groupe de paquet entier, assimilé à une tâche (c'est l'anti-tasksel !!)
 * soit un paquet unique qui est orphelin
Personnellement, j'apprécie beaucoup cet anti-tasksel car tasksel lui-même ne propose pas de supprimer les paquets des tâches qu'il a installées.  
Pour supprimer une tâche avec debfoster, il faut répondre avec `p' comme nous allons le voir ci-dessous.
 
Pour finir, une petite mise en garde : les paquets seront automatiquement purgés et non simplement supprimés ! Faites attention aux données /var /etc que vous voudriez conserver.
 
Voici comment répondre aux questions posées par debfoster :
`Y' : (Yes) Oui, conserver ce paquet. C'est la réponse par défaut
`n' : (No) Non, supprimer ce paquet ; les paquets supprimés seront purgés
`p' : (Prune) Ceci indique à debfoster de supprimer tous les paquets qui sont installés parce que ce paquet dépend d'eux ; les paquets supprimés seront purgés.
`s' : (Skip) Passer cette question. Debfoster vous la posera la prochaine fois que vous le lancerez.
`i' ou `?' : (Information) Affiche des infos sur ce paquet
`u' : (Undo) Revenir à la réponse précédente
`q' : (Quit) Sortir sans supprimer de paquets. Aucune des réponses de l'utilisateur depuis le lancement de debfoster ne seront exécutées
`x' : Sortir de debfoster sans terminer en exécutant toutes les questions auxquelles l'utilisateur a déjà répondu.
`H' : (Help) Affiche un message d'aide.
 
 
V.5 utilisation d'aptitude
 
aptitude est très intéressant dans son mode graphique. Il permet de lister les paquets installés en les classant par catégorie. Le descriptif des paquets est affiché de façon très claire, ce qui vous donne une idée très rapide de l'utilité de chaque paquet sur le système. Vous pouvez vous déplacer avec les flèches haut et bas + la touche entrée pour voir le contenu d'une catégorie. Utilisez la touche 'q' pour quitter.
 


Message édité par s-gaia le 02-07-2003 à 21:17:04

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 07:39:41    

VI Marquer les paquets
 
La notion de marquage des paquets est vraiment particulière et inclassable dans les chapitres précédents.
 
Nous avons déjà utiliser la commande dpkg -l | less pour voir le statut des paquets qui se compose de 2 lettres. Alors que la deuxième lettre indique l'état d'installation du paquet, la première lettre indique ce qui est souhaité par l'utilisateur : c'est la notion de marquage du paquet.
 
On distingue 5 valeurs de marqueur :
* unknown (u) : l'utilisateur n'a pas précisé quoi faire avec ce paquet
* install (i) : l'utilisateur veut que ce paquet soit installé
* deinstall (r) : l'utilisateur veut que ce paquet soit supprimé
* purge (p) : l'utilisateur veut que ce paquet soit supprimé avec ses fichiers de configuration
* hold (h) : l'utilisateur veut que ce paquet soit conservé et ne veut pas que des mises à jour lui soit appliquées (paquet gelé)
 
À noter que le dernier marqueur - hold - est très particulier : c'est le seul marqueur dont les programmes tiennent compte en général. Tous les autres marqueurs sont ignorés.
 
Pourtant, tous les marqueurs de paquets sont mis à jour en fonction des actions de l'utilisateur :
* vous avez installé un paquet ? : son marqueur sera ( i )
* vous avez supprimé un paquet ? : son marqueur sera ( r )
* vous avez purgé un paquet ? : son marqueur sera ( p )
 
Le seul programme capable d'exécuter une action en fonction des marqueurs ( i ), ( r ) et ( p ) est dselect.
dselect est un programme difficile à utiliser. Je ne vous le conseille pas pour autre chose que les marqueurs de paquets. Pour lancer dselect, il suffit de taper :
dselect
 
Les menus de dselect à utiliser sont les suivants :
* 3. Installer les paquets marqués ( i )
* 5. Supprimer les paquets marqués ( r ) et ( p )
* 6. Quitter
 
comment marquer un paquet ?
utilisez la commande dpkg --set-selections Voici comment faire concrètement :
dpkg --set-selections <<cmd
>> "nom_du_paquet" "marqueur_à_appliquer"
>> (si vous avez plusieurs paquets à marquer, tapez-les sur les lignes qui suivent ; un par ligne)
>> cmd
 
application concrète n° 1 : geler les paquets que vous ne voulez pas mettre à jour
 
dpkg --set-selections <<go
>> bsdgames hold
>>go
 
application concrète n° 2 : installer immédiatement un système avec tous les paquets voulus et non voulus : très utile si vous réinstallez complètement votre système Linux et que vous souhaitez retrouver tous les paquets que vous aviez installés / désinstallé par rapport au système d'origine.
 
Attention ! Cela suppose un petit pré requis :
Vous devez réinstaller la même version. Si vous réinstallez une version différente, les dépendances entre paquets auront changé et vous risquez de mettre le bazar et tout caser !
 
Voici comment faire :
 
première étape :
récupérez toutes les infos sur les marqueurs de paquets de votre système et enregistrez-les dans un document que nous appellerons : myselections
Pour se faire, tapez la commande suivante :
dpkg --get-selections >myselections
 
deuxième étape :
conservez précieusement votre fichier myselections
 
troisième étape :
après avoir réinstallé votre nouveau système (dont la version est identique), réintroduisez votre fichier myselection sur votre système puis tapez la commande :
dpkg --set-selections <myselections
 
quatrième étape :
utilisez les menus 3 et 5 de dselect, et voilà !
 


Message édité par s-gaia le 02-07-2003 à 21:32:23

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 07:55:18    

(j'aimerais me garder ce post pour faire un dernier chapitre mais je ne sais pas du tout quand ce sera prêt)
 
(sûrement pas avant très longtemps car je suis encore débutant ; ce sera sousX).
 


Message édité par s-gaia le 02-07-2003 à 21:33:38

---------------
[:iboll]
Reply

Marsh Posté le 02-07-2003 à 08:10:28    

Et voilà !
Tout a été posté.
 
Je vous propose de ne pas poster vos remarques dans ce topic
afin que je puisse ajouter des posts en cas de besoins pour de
nouveaux chapitres.
 
Un topic a été ouvert ici :
http://forum.hardware.fr/forum2.ph [...] subcat=420
 
Merci d'avance à tout ceux qui m'apporteront leurs remarques
pour améliorer l'aide de ce topic.
 
 :hello:


Message édité par s-gaia le 02-07-2003 à 22:00:57

---------------
[:iboll]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed