Table des matières
apt
comparé à apt-get
/
apt-cache
comparé à aptitude
testing
avec quelques paquets
d’unstable
unstable
avec quelques paquets
d’experimental
Note | |
---|---|
Ce chapitre a été écrit en supposant que le nom de code de la dernière
version stable est |
Debian est une association de volontaires qui construit des distributions cohérentes de paquets binaires de logiciels libres pré-compilés et les distribue depuis son archive.
L’archive Debian est proposée depuis de nombreux sites-miroirs distants, on peut y accéder par les méthodes HTTP et FTP. Elle est aussi disponible sous forme de CD-ROM/DVD.
The current Debian package management system which can utilize all these resources is Advanced Packaging Tool (APT).
Le système de gestion des paquets Debian, lorsqu’il est proprement utilisé, permet à l’utilisateur d’installer sur le système des ensembles cohérents de paquets binaires à partir de l’archive. Il y a actuellement 68980 paquets disponibles pour l’architecture amd64.
Le système de gestion des paquets de Debian possède un riche historique et de nombreux choix de programmes d’interface pour l’utilisateur final et de méthodes de fond pour l’accès aux archives. Actuellement, nous recommandons ce qui suit :
apt
(8) for all interactive command line operations,
including package installation, removal and dist-upgrades.
apt-get
(8) pour appeler le système de gestion de paquet
Debian depuis des scripts. C'est également une option de rechange
lorsqu'apt
n'est pas disponible (souvent le cas avec
d'anciens systèmes Debian).
aptitude
(8) pour une interface interactive en mode texte
permettant de gérer les paquets installés et de faire des recherches parmi
les paquets disponibles.
Tableau 2.1. Liste des outils de gestion des paquets de Debian
paquet | popcon | taille | description |
---|---|---|---|
dpkg
|
V:919, I:999 | 5989 | low level package management system for Debian (file based) |
apt
|
V:874, I:999 | 4211 | APT front-end to manage packages with CLI:
apt /apt-get /apt-cache |
aptitude
|
V:60, I:321 | 4268 | APT front-end to interactively manage packages with full screen console:
aptitude (8) |
tasksel
|
V:33, I:978 | 346 | APT front-end to install selected tasks: tasksel (8) |
unattended-upgrades
|
V:297, I:462 | 301 | paquet d’amélioration d’APT permettant une installation automatique des mises à niveau de sécurité |
gnome-software
|
V:131, I:232 | 3007 | Software Center for GNOME (GUI APT front-end) |
synaptic
|
V:42, I:351 | 7686 | graphical package manager (GTK APT front-end) |
apt-utils
|
V:351, I:998 | 1030 | Programmes utilitaires d’APT :
apt-extracttemplates (1),
apt-ftparchive (1) et apt-sortpkgs (1) |
apt-listchanges
|
V:329, I:856 | 423 | outil de notification des modifications d’un paquet |
apt-listbugs
|
V:6, I:10 | 475 | affiche la liste des bogues critiques avant chaque installation par APT |
apt-file
|
V:17, I:74 | 89 | utilitaire de recherche de paquet d’APT — interface en ligne de commandes |
apt-rdepends
|
V:0, I:6 | 39 | afficher de manière récursive la liste des dépendances du paquet |
Voici quelques points-clés de la configuration des paquets sur un système Debian :
la configuration manuelle effectuée par l’administrateur du système est respectée. En d’autres termes, le système de configuration des paquets effectue, pour des raisons de commodité, une configuration non intrusive ;
chaque paquet possède son propre script de configuration avec une interface
utilisateur standardisée appelée debconf
(7) qui permet de
faciliter le processus initial d’installation du paquet ;
les développeurs Debian font de leur mieux pour que vos mises à jour se fassent de manière impeccable avec les scripts de configuration du paquet ;
l’administrateur du système peut utiliser toutes les fonctionnalités des paquets de logiciels. Cependant, celles qui présentent un risque de sécurité sont désactivées lors de l’installation par défaut ;
si vous activez vous-même un service qui présente certains risques de sécurité, vous êtes responsable du confinement du risque ;
Des configurations ésotériques peuvent être activées manuellement par l’administrateur du système. Cela peut créer une interférence avec les programmes génériques d’assistance à la configuration du système.
Avertissement | |
---|---|
Ne pas installer de paquets provenant d’un mélange aléatoire de suites. Cela va probablement casser la cohérence des paquets et demande une connaissance en profondeur de la gestion du système, comme l’ABI, d’un compilateur, la version d’une bibliothèque, les fonctionnalités d’un interpréteur, etc. |
L’administrateur débutant d’un système Debian
devrait conserver la version stable
de Debian en appliquant
les mises à jour de sécurité. Je veux dire qu’il vaut mieux éviter, par
précaution, certaines des actions valables suivantes, jusqu’à ce que vous
ayez très bien compris le système Debian. Voici quelques rappels :
ne pas inclure testing
, ni unstable
dans
« /etc/apt/sources.list
» ;
ne pas mélanger des archives standard de Debian avec d’autres archives
telles qu’Ubuntu dans
« /etc/apt/sources.list
» ;
ne pas créer le fichier
« /etc/apt/preferences
» ;
ne pas modifier le comportement par défaut des outils de gestion des paquets au travers des fichiers de configuration sans en connaître toutes les conséquences ;
ne pas installer de paquets quelconques à l’aide de « dpkg -i
paquet_quelconque
» ;
ne jamais installer de paquets quelconques à l’aide de « dpkg
--force-all -i
paquet_quelconque
» ;
ne pas effacer ni modifier les fichiers se trouvant dans
« /var/lib/dpkg/
» ;
ne pas écraser les fichiers systèmes en installant des logiciels directement depuis les sources.
Au besoin, les installer dans « /usr/local
» ou
« /opt
».
Les effets non compatibles avec le système de gestion des paquets Debian engendrés par les actions ci-dessus peuvent rendre votre système inutilisable.
L’administrateur système Debian sérieux, qui s’occupe de serveurs dont la mission est critique, devra prendre des précautions supplémentaires :
ne pas installer de paquets, y compris les mises à jour de sécurité provenant de Debian sans les avoir testés soigneusement, avec votre configuration particulière, dans des conditions sûres.
Vous êtes finalement, en tant qu’administrateur système, responsable de votre système.
La longue histoire de stabilité du système Debian n’est pas, en elle-même, une garantie.
Attention | |
---|---|
Pour votre serveur de production, la
suite |
Despite my warnings above, I know many readers of this document may wish to
run the newer testing
or unstable
suites.
La Lumière provenant de ce qui suit sauvera une personne de l’éternelle lutte karmique de l’enfer des mises à jour et lui permettra d’atteindre le nirvana de Debian.
This list is targeted for the self-administered Desktop environment.
Use the testing
suite since it is practically the rolling
release automatically managed by the Debian archive QA infrastructure such
as the Debian continuous
integration, the source
only upload practices, and the library transition tracking. The
packages in the testing
suite are updated frequently
enough to offer all the latest features.
Set the codename corresponding to the testing
suite
(currently "bookworm
") in the
"/etc/apt/sources.list
".
Manually update this codename in the
"/etc/apt/sources.list
" to the new one only after
assessing situation by yourself for about a month after the major suite
release. The Debian user and developer mailing list are good sources of
information for this, too.
The use of the unstable
suite isn't recommended. The
unstable
suite is good for
debugging packages as a developer but tends to expose you to
unnecessary risks for the normal Desktop usage. Even though the
unstable
suite of the Debian system looks very stable for
most of the times, there have been some package problems and a few of them
were not so trivial to resolve.
Here are some basic precautionary measure ideas to ensure quick and easy recovery from bugs in Debian packages.
faites un système avec un double
démarrage en installant la suite stable
du
système Debian sur une autre partition ;
tenez à disposition le CD d’installation pour un démarrage de secours ;
pensez à installer apt-listbugs
afin de vérifier les
informations du Système Debian de
suivi des bogues (BTS) avant de faire une mise à jour ;
apprenez suffisamment l’infrastructure du système de paquets pour contourner le problème ;
Install a corresponding sandboxed upstream binary package in case of trouble (see Section 7.6, « Sandbox »)
Créez un environnement isolé (« chroot ») ou similaire et faites-y tourner à l’avance la dernière version du système (consultez Section 9.11, « Système virtualisé »).
Attention | |
---|---|
If you can not do any one of these precautionary actions, you are probably
not ready for the |
Jetez un œil sur l’archive Debian avec le point de vue d’un utilisateur du système.
Astuce | |
---|---|
La charte officielle de l’archive Debian est définie dans la Charte Debian, chapitre 2 - l’archive Debian. |
Pour un accès HTTP typique, l’archive est indiquée de la manière suivante
dans le fichier « /etc/apt/sources.list
», par
exemple pour le système stable
=
bullseye
actuel :
deb http://deb.debian.org/debian/ bullseye main non-free-firmware contrib non-free deb-src http://deb.debian.org/debian/ bullseye main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bullseye-security main non-free-firmware contrib non-free deb-src http://security.debian.org/debian-security bullseye-security main non-free-firmware contrib non-free
Ici, j’ai tendance à utiliser le nom de code
« bullseye
» plutôt que le nom de la
suite « stable
» afin d’éviter des surprises
lorsque la version stable
suivante sera diffusée.
La signification de « /etc/apt/sources.list
»
est décrite dans sources.list
(5), ses points-clés sont
les suivants :
la ligne « deb
» définit les paquets
binaires ;
la ligne « deb-src
» définit les paquets
sources ;
le premier paramètre est l’URL-racine de l’archive Debian ;
le deuxième paramètre est le nom de la distribution : soit le nom de la suite, soit son nom de code ;
le troisième paramètre et les suivants sont la liste des noms de sections d’archives valables dans l’archive Debian.
Les lignes deb-src
peuvent être omises sans risque (ou
mises en commentaire en mettant un « # » au début de la ligne) si
ce n’est qu’aptitude
ne pourra pas avoir accès aux
métadonnées liées aux sources. Cela accélérera les mises à jour des
métadonnées de l’archive. L’URL peut-être
« http://
»,
« ftp://
»,
« file://
», etc.
Astuce | |
---|---|
Si « |
Voici la liste des URL des sites d’archives de Debian et les noms de suite ou les noms de code utilisés dans le fichier de configuration :
Tableau 2.2. Liste des sites d’archive de Debian
URL de l’archive | nom de la suite (nom de code) | but |
---|---|---|
http://deb.debian.org/debian/ | stable (bullseye ) |
édition stable (Bullseye) |
http://deb.debian.org/debian/ | testing (bookworm ) |
édition testing (Bookworm) |
http://deb.debian.org/debian/ | unstable (sid ) |
édition unstable (Sid) |
http://deb.debian.org/debian/ | experimental |
pré-version expérimental (optionnelle, uniquement pour les développeurs) |
http://deb.debian.org/debian/ | stable-proposed-updates
(bullseye-proposed-updates ) |
Updates for the next stable (bullseye) point release (optional) |
http://deb.debian.org/debian/ | stable-updates (bullseye-updates ) |
compatible updates for spam filter, IM clients, etc. for stable (bullseye) |
http://deb.debian.org/debian/ | stable-backports
(bullseye-backports ) |
newer backported packages for stable (bullseye) (optional) |
http://security.debian.org/debian-security/ | stable-security
(bullseye-security ) |
security updates for stable release (bullseye) (important) |
http://security.debian.org/debian-security/ | testing-security
(bookworm-security ) |
security updates for testing release (This isn't actively supported by the security team) |
Attention | |
---|---|
Seule la version |
Attention | |
---|---|
De base, vous ne devriez avoir qu’une seule des suites
|
Astuce | |
---|---|
For the Debian system with the |
Note | |
---|---|
Les bogues de sécurité de l’archive |
Tableau 2.3. Liste des sections de l’archive de Debian
section | nombre de paquets | critères de composant du paquet |
---|---|---|
main |
67672 | conforme à DFSG sans dépendance vers non-free |
non-free-firmware |
31 | not DFSG compliant, firmware required for reasonable system installation experience |
contrib |
338 | conforme à DFSG mais avec des dépendances vers non-free |
non-free |
939 | not DFSG compliant and not in non-free-firmware |
Ici, le nombre de paquets est celui de l’architecture amd64. La section
main
fournit le système Debian (consultez Section 2.1.5, « Debian est totalement libre »).
La meilleure manière d’étudier l’organisation de l’archive Debian est de
pointer votre navigateur vers chacune des URL des archives en y ajoutant
dists
ou pool
.
On se réfère à la distribution de deux manières, la version ou le nom de code. Le mot « distribution » est aussi utilisé comme synonyme de version dans de nombreuses documentations. La relation entre la version et le nom de code peut être résumée comme suit :
Tableau 2.4. Relation entre version et nom de code
calendrier | version = stable |
version = testing |
version = unstable |
---|---|---|---|
après la diffusion de bullseye |
nom de code = bullseye |
nom de code = bookworm |
nom de code = sid |
après la diffusion de bookworm |
nom de code = bookworm |
nom de code = trixie |
nom de code = sid |
L’histoire des noms de code a été décrite dans la FAQ Debian : 6.2.1 Quels noms de code ont déjà été utilisés ?
Dans la terminologie la plus stricte de l’archive Debian, le mot « section » est spécifiquement utilisé pour la catégorisation des paquets par zone d’application. (Cependant l’expression « section principale » peut parfois être utilisée pour décrire la section de l’archive Debian qui fournit la zone « main »).
Chaque fois qu’un nouveau chargement est fait par un développeur Debian (DD)
vers l’archive unstable
(par l’intermédiaire du
traitement d’incoming), le DD doit s’assurer
que les paquets envoyés sont compatibles avec le dernier ensemble de paquets
de l’archive unstable
.
Si le DD casse intentionnellement cette compatibilité en raison de la mise à jour d’une bibliothèque importante, etc., il y a habituellement une annonce sur la liste de diffusion debian-devel, etc.
Avant qu’un ensemble de paquets ne soit déplacé par le script de maintenance
de l’archive Debian depuis l’archive unstable
vers
l’archive testing
, le script de maintenance de l’archive
ne se contente pas vérifier sa maturité (environ 10 jours) et l’état des
rapports de bogues pour ces paquets mais essaie aussi de s’assurer qu’ils
sont compatibles avec le dernier ensemble des paquets de l’archive
testing
. Ce processus rend l’archive testing
très actuelle et utilisable.
Par le processus de gel progressif de l’archive dirigé par l’équipe de
diffusion (« release team »), l’archive testing
est mûrie afin de la rendre entièrement cohérente et sans bogue avec
quelques interventions manuelles. Ensuite, la nouvelle version
stable
est créée en assignant le nom de code de
l’ancienne archive testing
à la nouvelle archive
stable
et en créant un nouveau nom de code pour la
nouvelle archive testing
. Le contenu initial de la
nouvelle archive testing
est exactement le même que celui
de l’archive stable
qui vient d’être diffusée.
Les archives unstable
et testing
peuvent toutes les deux souffrir temporairement de problèmes en raison de
divers facteurs :
chargement vers l’archive cassé (la plupart du temps, cela concerne
unstable
) ;
délai pour accepter un nouveau paquet dans l’archive (la plupart du temps,
cela concerne unstable
) ;
problème de temps de synchronisation de l’archive (à la fois pour
testing
et unstable
) ;
intervention manuelle sur l’archive comme la suppression d’un paquet
(davantage pour testing
), etc.
Si vous décidez donc d’utiliser ces archives, vous devriez être capable de corriger ou de contourner ces types de problèmes.
Attention | |
---|---|
Pendant les quelques mois qui suivent la diffusion d’une nouvelle version
|
Astuce | |
---|---|
Lors du suivi de l’archive |
Consultez la Charte Debian pour la définition des archives.
« Sections »
« Priorités »
« Système de base »
Debian est totalement libre pour les raisons suivantes :
Debian n’installe que des logiciels libres par défaut pour respecter les libertés des utilisateurs ;
Debian ne fournit que des logiciels libres dans main
;
Debian recommande de n’utiliser que des logiciels libres de
main
;
Aucun paquet de main
ne dépend ou ne recommande de
paquets de non-free
ni de contrib
.
Certaines personnes se demandent si les deux faits suivants sont contradictoires ou non.
« Debian demeurera totalement libre. » (Premier point du contrat social Debian).
Debian servers host some non-free-firmware
,
non-free
and contrib
packages.
Ce n’est pas contradictoire pour les raisons suivantes.
Le système Debian est totalement libre et ses paquets sont hébergés par les
serveurs Debian dans la section main
de l’archive.
Des paquets hors du système Debian sont hébergés par les serveurs Debian
dans les sections non-free
et contrib
de l’archive.
C’est précisément expliqué dans les quatrième et cinquième points du contrat social Debian :
Nos priorités sont nos utilisateurs et les logiciels libres.
Les besoins de nos utilisateurs et de la communauté des logiciels libres nous guideront. Nous placerons leurs intérêts en tête de nos priorités. Nous répondrons aux besoins de nos utilisateurs dans de nombreux types d’environnements informatiques différents. Nous ne nous opposerons pas aux travaux non libres prévus pour fonctionner sur les systèmes Debian. Nous permettrons, sans réclamer rétribution, que d’autres créent des distributions contenant conjointement des logiciels Debian et d’autres travaux. Pour servir ces objectifs, nous fournirons un système intégrant des composants de grande qualité sans restrictions légales incompatibles avec ces modes d’utilisation.
Travaux non conformes à nos standards sur les logiciels libres.
Nous reconnaissons que certains de nos utilisateurs demandent à pouvoir
utiliser des travaux qui ne sont pas conformes aux principes du logiciel
libre selon Debian. Les paquets correspondant prennent place dans des
sections nommées « contrib
» (« contributions ») et
« non-free
» (« non libre »). Les paquets de ces sections
ne font pas partie du système Debian, bien qu’ils aient été configurés afin
d’être utilisés avec lui. Nous encourageons les fabricants de CD à lire les
licences de ces paquets afin de déterminer s’ils peuvent les
distribuer. Ainsi, bien que les travaux non libres ne fassent pas partie de
Debian, nous prenons en compte leur utilisation et fournissons donc
l’infrastructure nécessaire (à l’image de notre système de suivi des bogues
et de nos listes de diffusion).
Les utilisateurs doivent être conscients des risques lors de l’utilisation
de paquets des sections non-free
et
contrib
de l’archive :
l’absence de liberté pour de tels paquets de logiciel ;
l’absence de suivi de la part de Debian pour de tels paquets de logiciel (Debian ne peut pas suivre correctement un logiciel sans avoir accès à son code source) ;
la contamination de votre système Debian totalement libre.
Les principes du logiciel libre selon Debian sont les normes du logiciel libre pour Debian. Debian interprète « logiciel » de la façon la plus large possible, y compris la documentation, les microprogrammes, les logos et données artistiques des paquets. Cela rend les normes du logiciel libre de Debian très strictes.
Les paquets typiques de non-free
et
contrib
contiennent des paquets librement distribuables
des types suivants :
Les paquets de documentation sous licence de documentation libre
GNU avec des sections invariables comme celles de GCC et Make (la
plupart sont dans la section non-free/doc
).
Les paquets de microprogramme contenant des données binaires sans source
comme celles de Section 9.10.5, « Pilotes de matériel et microprogramme » dans
non-free (la plupart sont dans la
sectionnon-free/kernel
).
Les paquets de jeu ou de police avec des restrictions sur l’utilisation commerciale ou la modification de contenu.
Veuillez remarquer que le nombre de paquets de non-free
et contrib
est inférieur à 2 % de ceux dans
main
. Activer l’accès aux sections
non-free
et contrib
ne cache pas la
provenance des paquets. L’utilisation interactive
d’aptitude
(8) fournit une visibilité totale et un
contrôle complet des paquets installés et de leur section pour garder le
système aussi libre que voulu.
Le système Debian offre un ensemble cohérent de paquets binaires par l’intermédiaire de son mécanisme de déclaration de dépendances binaires versionnées dans les champs du fichier « control ». En voici une définition un peu simplifiée :
« Depends »
Cela déclare une dépendance absolue du paquet et tous les paquets listés dans ce champ doivent être installés en même temps ou à l’avance.
« Pre-Depends »
Comme pour « Depends » excepté que cela demande une installation complète et à l’avance des paquets cités.
« Recommends »
Cela déclare une dépendance forte mais non absolue. La plupart des utilisateurs n’installeront pas le paquet si tous les paquets cités dans ce champ ne sont pas installés.
« Suggests »
Cela déclare une dépendance lâche. De nombreux utilisateurs de ce paquet pourront tirer profit de l’installation des paquets cités dans ce champs mais auront cependant des fonctionnalités acceptables sans eux.
« Enhances »
This declares a weak dependency like Suggests but works in the opposite direction.
« Casse »
Cela déclare une incompatibilité de paquet avec habituellement une indication de version. La solution est en général de mettre à jour tous les paquets indiqués dans ce champ.
« Conflicts »
Cela déclare une incompatibilité absolue. Tous les paquets cités dans ce champs doivent être supprimés pour installer ce paquet.
« Replaces »
C’est déclaré lorsque les fichiers installés par ce paquet remplacent des fichiers des paquets cités.
« Provides »
C’est déclaré lorsque ce paquet fournit tous les fichiers et les fonctionnalités des paquets cités.
Note | |
---|---|
Remarquez que définir simultanément « Provides », « Conflicts » et « Replaces » pour un paquet virtuel est une configuration saine. Cela permet de s’assurer qu’un seul paquet réel fournissant ce paquet virtuel puisse être installé à un moment donné. |
La définition officielle, y compris les dépendances de sources, se trouve dans la Charte Debian ; Chapitre 7 - Déclaration des dépendances entre paquets.
Voici un résumé du flux simplifié des événements de la gestion d’un paquet par APT.
Mettre à jour (« update »)
(«apt update
», « aptitude
update
» ou « apt-get
update
») :
Rechercher les métadonnées d’une archive depuis l’archive distante
Reconstruire et mettre à jour les métadonnées locales pour qu’elles puissent être utilisées par APT
Mettre à niveau (« upgrade »)
(«apt upgrade
» et «apt full-upgrade
»,
ou « aptitude safe-upgrade
» et
« aptitude full-upgrade
» ou
« apt-get upgrade
» et « apt-get
dist-upgrade
») :
Choose candidate version which is usually the latest available version for all installed packages (see Section 2.7.3, « Ajuster la version candidate » for exception)
Effectuer la résolution des dépendances du paquet
Rechercher le paquet binaire sélectionné depuis l’archive distante si la version candidate est différente de la version installée
Dépaqueter les paquets binaires ayant été téléchargés
Lancer le script preinst
Installer les fichiers binaires
Lancer le script postinst
Installer («apt install
…
», aptitude install …
» ou
« apt-get install …
») :
Choose packages listed on the command line
Effectuer la résolution des dépendances du paquet
Récupérer les paquets binaires sélectionnés depuis l’archive distante
Dépaqueter les paquets binaires ayant été téléchargés
Lancer le script preinst
Installer les fichiers binaires
Lancer le script postinst
Supprimer («apt remove
…
», « aptitude remove …
» ou
« apt-get remove …
») :
Choose packages listed on the command line
Effectuer la résolution des dépendances du paquet
Lancer le script prerm
Supprimer les fichiers installés à l’exception des fichiers de configuration
Lancer le script postrm
Purger (« apt
purge
», « aptitude purge …
» ou
« apt-get purge …
») :
Choose packages listed on the command line
Effectuer la résolution des dépendances du paquet
Lancer le script prerm
Supprimer les fichiers installés y compris leurs fichiers de configuration
Lancer le script postrm
J’ai ici intentionnellement sauté des détails techniques dans le souci d’avoir une vue d’ensemble.
Vous devriez lire l’excellente documentation officielle. Le premier document
à lire est
« /usr/share/doc/nom_paquet/README.Debian
»
qui est spécifique à Debian. Les autres documents dans
« /usr/share/doc/nom_paquet/
»
devraient aussi être consultés. Si vous avez configuré l’interpréteur de
commande comme dans Section 1.4.2, « Personnaliser bash », entrez ce qui
suit :
$ cd package_name
$ pager README.Debian
$ mc
Vous aurez besoin d’installer le paquet de documentation correspondant au
paquet dont le nom possède le suffixe « -doc
»
pour des informations détaillées.
Si vous rencontrez des problèmes avec un paquet particulier, faites d’abord une recherche sur le site du système de suivi des bogues Debian (BTS).
Tableau 2.5. Liste de sites web clés pour résoudre les problèmes avec un paquet particulier
site web | commande |
---|---|
Page d’accueil du système de suivi des bogues Debian (BTS) | sensible-browser « http://bugs.debian.org/ » |
Signalement de bogue d’un nom de paquet connu | sensible-browser
« http://bugs.debian.org/nom_paquet » |
Rapport de bogue concernant un numéro de bogue connu | sensible-browser
« http://bugs.debian.org/bug_number » |
Rechercher sur Google avec des mots de
recherche comprenant « site:debian.org
»,
« site:wiki.debian.org
»,
« site:lists.debian.org
», etc.
Pour déposer un signalement de bogue, veuillez utiliser la commande
reportbug
(1).
Sur le système Debian, les opérations de gestion des paquets basées sur les
dépôts peuvent être réalisées à l’aide de nombreux outils de gestion de
paquets basés sur APT et disponibles dans le système Debian. Nous décrirons
ici les outils de base de gestion des paquets : apt
,
apt-get
/apt-cache
et
aptitude
.
Pour les opérations de gestion des paquets qui concernent l’installation des paquets ou les mises à jour des métadonnées des paquets, vous aurez besoin des privilèges de l’administrateur.
Bien qu'aptitude
soit un très bon outil interactif et que
l'auteur l'utilise, voici quelques avertissements que vous devriez
connaître :
La commande aptitude
n'est pas recommandée pour une mise
à niveau du système entre versions sur le système Debian
stable
après la sortie d'une nouvelle version.
L'utilisation de "apt full-upgrade
" ou de
"apt-get dist-upgrade
" est recommandée pour cela. Voir
Bug #411280.
La commande aptitude
suggère parfois la suppression
massive de paquets lors de la mise à niveau du système sur des systèmes
Debian en testing
ou unstable
.
Cette situation a effrayé de nombreux administrateurs système. Pas de panique.
Il semblerait que cela soit principalement causé par un biais de version
parmi des paquets dépendants de, ou recommandés par, un méta-paquet tel que
gnome-core
.
Cela peut être résolu en sélectionnant « Annuler les actions en attente »
dans le menu de commande d'aptitude
, en quittant
aptitude
et en utilisant la commande « apt
full-upgrade
».
Les commandes apt-get
et apt-cache
sont les outils les plus basiques de
gestion des paquets basés sur APT.
apt-get
et apt-cache
n’offre qu’une
interface utilisateur en ligne de commandes.
apt-get
est le mieux adapté pour les mises à jour majeures du système entre les
versions, etc.
apt-get
offre un système de résolution des dépendances
entre paquets robuste.
apt-get
nécessite moins de ressources matérielles. Il
consomme moins de mémoire et fonctionne plus rapidement.
apt-cache
offre une recherche basée sur des expressions
rationnelles standard sur les noms et les
descriptions des paquets.
apt-get
et apt-cache
peuvent gérer des
versions multiples des paquets en utilisant
/etc/apt/preferences
mais est assez lourd.
The apt
command is a high-level commandline interface for
package management. It is basically a wrapper of apt-get
,
apt-cache
and similar commands, originally intended as an
end-user interface and enables some options better suited for interactive
usage by default.
apt
provides a friendly progress bar when installing
packages using apt install
.
apt
will remove cached
.deb
packages by default after sucessful installation of
downloaded packages.
Astuce | |
---|---|
Users are recommended to use the new |
La commande aptitude
est l’outil de gestion des paquets
basé sur APT le plus flexible.
aptitude
offre une interface utilisateur interactive en
plein écran en mode texte.
aptitude
offre aussi une interface utilisateur en ligne
de commandes.
aptitude
est le mieux adapté pour la gestion interactive journalière des paquets comme,
par exemple, la vérification des paquets installés et la recherche de
paquets disponibles.
aptitude
nécessite plus de ressources matérielles. Il
consomme plus de mémoire et fonctionne moins rapidement.
aptitude
offre une recherche avancée basée sur des expressions rationnelles pour
la recherche sur toutes les métadonnées des paquets.
aptitude
peut gérer des versions multiples des paquets
sans utiliser /etc/apt/preferences
et est assez intuitif.
Voici les opérations de base de gestion des paquets en ligne de commandes en
utilisant apt
(8), aptitude
(8),
apt-get
(8) et apt-cache
(8) .
Tableau 2.6. Opérations de base de gestion des paquets avec la ligne de commandes en
utilisant apt
(8), aptitude
(8),
apt-get
(8) et apt-cache
(8)
syntaxe d’apt |
syntaxe d’aptitude |
syntaxe d’apt-get et apt-cache |
description |
---|---|---|---|
apt update |
aptitude update |
apt-get update |
mettre à jour les métadonnées de l’archive du paquet |
apt install toto |
aptitude install toto |
apt-get install toto |
installer la version candidate du paquet
« toto » ainsi que ses dépendances |
apt upgrade |
aptitude safe-upgrade |
apt-get upgrade |
installer les versions candidates des paquets installés sans supprimer aucun autre paquet |
apt full-upgrade |
aptitude full-upgrade |
apt-get dist-upgrade |
installer les versions candidates des paquets installés en supprimant d’autres paquets si nécessaire |
apt remove toto |
aptitude remove toto |
apt-get remove toto |
supprimer le paquet « toto » en laissant ses
fichiers de configuration |
apt autoremove |
N/A | apt-get autoremove |
supprimer les paquets installés automatiquement lorsqu’ils ne sont plus nécessaires |
apt purge toto |
aptitude purge toto |
apt-get purge toto |
purger le paquet « toto » ainsi que ses
fichiers de configuration |
apt clean |
aptitude clean |
apt-get clean |
nettoyer complètement le dépôt local des fichiers de paquets récupérés |
apt autoclean |
aptitude autoclean |
apt-get autoclean |
nettoyer le dépôt local des fichiers des paquets périmés |
apt show toto |
aptitude show toto |
apt-cache show toto |
afficher des informations détaillées concernant le paquet
« toto » |
apt search <expression rationnelle> |
aptitude search <expression rationnelle> |
apt-cache search <expression rationnelle> |
rechercher les paquets qui correspondent à l’<expression rationnelle> |
N/A | aptitude why <expression rationnelle> |
N/A | expliquer les raisons qui font que les paquets correspondant à l’<expression rationnelle> devront être installés |
N/A | aptitude why-not <expression rationnelle> |
N/A | expliquer les raisons pour lesquels les paquets qui correspondent à l’<expression rationnelle> ne peuvent pas être installés |
N/A | aptitude search '~i!~M' |
apt-mark showmanual |
lister les paquets installés manuellement |
apt
/ apt-get
and
aptitude
can be mixed without major troubles.
« aptitude why
expression-rationnelle
» peut afficher
plus d’informations par « aptitude -v why
expression_rationnelle
». On peut
obtenir des informations similaires par « apt rdepends
paquet
" ou "apt-cache rdepends
paquet
».
Lorsque la commande aptitude
est lancée en mode ligne de
commande, et rencontre des problèmes tels que des conflits de paquets, vous
pouvez passez en mode plein écran en pressant ensuite la touche
« e
» à l’invite de commande
Note | |
---|---|
Bien que la commande |
Vous pouvez indiquer les options de commande juste après
« aptitude
».
Tableau 2.7. Options importantes de la commande aptitude
(8)
option de la commande | description |
---|---|
-s |
simuler le résultat de la commande |
-d |
télécharger seulement les paquets sans les installer ni les mettre à jour |
-D |
afficher une courte explication avant les installations ou les suppressions automatiques |
Consultez aptitude
(8) et le « manuel de
l’utilisateur d’aptitude » à
« /usr/share/doc/aptitude/README
» pour en
apprendre davantage.
Pour une gestion interactive des paquets, lancez aptitude
en mode interactif depuis l’invite de l’interpréteur de commandes à la
console comme suit :
$ sudo aptitude -u Password:
Cela va mettre à jour la copie locale des informations de l’archive et
afficher la liste des paquets en plein écran avec un menu. On trouvera la
configuration d’aptitude dans
« ~/.aptitude/config
».
Astuce | |
---|---|
Si vous désirez utiliser la configuration de l’administrateur (root) plutôt
que celle de l’utilisateur, utilisez la commande « |
Astuce | |
---|---|
|
Les raccourcis clavier principaux pour parcourir l’état des paquets et pour définir les « actions prévues » sur ces paquets dans le mode plein écran sont les suivants :
Tableau 2.8. Liste des raccourcis clavier d’aptitude
touche | affectation |
---|---|
F10 ou Ctrl-t |
menu |
? |
afficher l’aide pour les raccourcis clavier (liste plus complète) |
F10 → Aide → Manuel de l’utilisateur |
afficher le Manuel de l’utilisateur |
u |
mettre à jour les informations de l’archive des paquets |
+ |
marquer le paquet pour mise à niveau ou installation |
- |
marquer le paquet pour suppression (conserver ses fichiers de configuration) |
_ |
marquer le paquet pour être purgé (supprimer ses fichiers de configuration) |
= |
mettre le paquet dans l’état « conservé » |
U |
marquer tous les paquets susceptibles de mise à niveau (fonctionne comme full-upgrade) |
g |
lancer le téléchargement et l’installation des paquets sélectionnés |
q |
quitter l’écran actuel et enregistrer les modifications |
x |
quitter l’écran actuel en abandonnant les modifications |
Entrée |
afficher les informations concernant un paquet |
C |
afficher le journal des modifications (« changelog ») d’un paquet |
l |
modifier les limites pour les paquets affichés |
/ |
rechercher la première correspondance |
\ |
répéter la dernière recherche |
The file name specification of the command line and the menu prompt after
pressing "l
" and "//
" take the
aptitude regex as described below. Aptitude regex can explicitly match a
package name using a string started by "~n
" and followed
by the package name.
Astuce | |
---|---|
Vous devrez presser « |
Dans le mode interactif en plein écran d’aptitude
(8), les
paquets de la liste des paquets sont affichés comme dans l’exemple suivant.
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
Cette ligne signifie, en partant de la gauche :
Indicateur d’« état actuel » (la première lettre)
Indicateur d’« action prévue » (la seconde lettre)
Indicateur « automatique » (la troisième lettre)
Nom du paquet
Modification de l’utilisation du disque attribuée à l’« action prévue »
Version actuelle du paquet
Version candidate du paquet
Astuce | |
---|---|
La liste complète des indicateurs est donnée en bas de l’écran d’Aide affiché en pressant
« |
La version candidate est choisie en
fonction des préférences locales actuelles (consultez
apt_preferences
(5) et Section 2.7.3, « Ajuster la version candidate »).
Plusieurs types de vues de paquets sont disponibles depuis le menu
« Vues
».
Tableau 2.9. Liste des vues d’aptitude
vue | description de la vue |
---|---|
Vue des paquets |
consultez Tableau 2.10, « Classement par catégories des vues de paquets standard » (défaut) |
Recommandations d’audit |
liste des paquets qui sont recommandés par certains paquets installés mais qui ne sont pas encore installés sur le système |
Liste de paquet « à plat » |
liste des paquets sans regroupement par catégories (pour l’utilisation avec des expressions rationnelles) |
Navigateur de Debtags |
liste des paquets classés selon leur entrée debtags |
Source Package View |
list packages grouped by source packages |
Note | |
---|---|
Merci de nous aider à améliorer le marquage des paquets avec debtags ! |
La « Vue des paquets
» standard classe les
paquets un peu comme le fait dselect
avec quelques
fonctionnalités supplémentaires.
Tableau 2.10. Classement par catégories des vues de paquets standard
catégorie | description de la vue |
---|---|
Paquets susceptibles de mise à jour |
liste des paquets organisée sous la forme section →
zone → paquet |
Nouveaux paquets |
, , |
Paquets installés |
, , |
Paquets non installés |
, , |
Paquets obsolètes ou créés localement |
, , |
Paquets virtuels |
liste des paquets ayant la même fonction |
Tâches |
liste des paquets ayant les différentes fonctions généralement nécessaires à une tâche |
Astuce | |
---|---|
La vue des |
Aptitude vous offre différentes options pour rechercher des paquets en utilisant sa formule d’expressions rationnelles.
Ligne de commande du shell :
« aptitude search
'expression_rationnelle_aptitude'
» afin
d’afficher l’état d’installation, le nom du paquet et une courte description
des paquets correspondants
« aptitude show
'nom_paquet'
» pour afficher la
description détaillée du paquet
Mode interactif plein écran :
« l
» pour limiter la vue des paquets à ceux
qui correspondent
« /
» pour rechercher un paquet correspondant
« \
» pour rechercher en arrière un paquet
correspondant
« n
» pour rechercher le suivant
« N
» pour rechercher le suivant (en arrière)
Astuce | |
---|---|
La chaîne du nom_paquet est traitée comme la
correspondance exacte de chaîne pour le nom de paquet à moins qu’il ne soit
lancé explicitement avec « |
La formule des expressions rationnelles d’aptitude est étendue ERE de manière similaire à mutt (consultez Section 1.6.2, « Expressions rationnelles ») et la signification des extensions de
règles de correspondance spécifiques à aptitude
est la
suivante :
Tableau 2.11. Liste des formules d’expressions rationnelles d’aptitude
description des règles étendues de correspondance | formules d’expressions rationnelles |
---|---|
correspond au nom du paquet | ~nexpression_rationnelle_nom |
correspond à la description | ~dexpression_rationnelle_description |
correspond au nom de la tâche | ~texpression_rationnelle_tâche |
correspond à l’étiquette debtag | ~Gexpression_rationnelle_debtag |
correspond au responsable du paquet | ~mexpression_rationnelle_responsable |
correspond à la section du paquet | ~sexpression_rationnelle_section |
correspond à la version du paquet | ~Vexpression_rationnelle_version |
correspond à l’archive | ~A{bullseye,bookworm,sid } |
correspond à l’origine | ~O{debian,… } |
correspond à la priorité | ~p{extra,important,optional,required,standard } |
correspond aux paquets essentiels | ~E |
correspond aux paquets virtuels | ~v |
correspond aux nouveaux paquets | ~N |
correspond aux actions en attente | ~a{install,upgrade,downgrade,remove,purge,hold,keep } |
correspond aux paquets installés | ~i |
correspond aux paquets installés ayant la marque A (paquets installés automatiquement) | ~M |
correspond aux paquets installés n’ayant pas la marque A (paquets sélectionnés par l’administrateur) | ~i!~M |
correspond aux paquets installés et pouvant être mis à jour | ~U |
correspond aux paquets supprimés mais non purgés | ~c |
correspond aux paquets supprimés, purgés ou pouvant être supprimés | ~g |
correspond aux paquets ayant une dépendance cassée | ~b |
correspond aux paquets ayant une dépendance cassée de type | ~Btype |
correspond aux paquets filtrés par motif ayant une dépendance de type | ~D[type:]motif |
correspond aux paquets filtrés par motif ayant une dépendance cassée de type | ~DB[type:]motif |
correspond aux paquets vers lesquels le paquet filtré par motif déclare une dépendance de type | ~R[type:]motif |
correspond aux paquets vers lesquels le paquet filtré par motif a une dépendance cassée de type | ~RB[type:]motif |
correspond aux paquets desquels dépendent d’autres paquets installés | ~R~i |
correspond aux paquets desquels ne dépend aucun autre paquet | !~R~i |
correspond aux paquets vers lesquels d’autres paquets installés dépendent ou qu’ils recommandent | ~R~i|~Rrecommends:~i |
correspond au paquet motif dont la version est filtrée | ~S filter motif |
correspond à tous les paquets (vrai) | ~T |
ne correspond à aucun paquet (faux) | ~F |
La partie expression rationnelle est la même ERE que celle utilisée dans les outils UNIX
typiques en utilisant « ^
»,
« .*
», « $
»
etc. comme dans egrep
(1), awk
(1) et
perl
(1).
La dépendance type est comprise dans la liste (depends, predepends, recommends, suggests, conflicts, replaces, provides) et spécifie les relations du paquet avec d’autres paquets.
Le type de relation par défaut est « depends ».
Astuce | |
---|---|
Lorsqu’un <motif d’expression rationnelle>
(« regex_pattern> ») est une chaîne de caractères vide, placez
« |
Voici quelques raccourcis.
« ~Pterm
» ==
« ~Dprovides:term
»
« ~Cterm
» ==
« ~Dconflicts:term
»
« …~W term
» ==
« (…|term)
»
Les utilisateurs familiers avec mutt
comprendront
rapidement car mutt a été la source d’inspiration pour la syntaxe des
expressions. Consultez « SEARCHING, LIMITING, AND EXPRESSIONS »
dans le manuel de l’utilisateur
(« /usr/share/doc/aptitude/README
»).
Note | |
---|---|
Avec la version |
La sélection d’un paquet dans aptitude
récupère non
seulement les paquets définis dans son champ
« Depends:
» mais aussi ceux définis dans le
champ « Recommends:
» si la configuration a été
faite dans ce sens dans le menu « F10
→ Options →
Préférences → Gestion des dépendances ». Ces paquets installés
automatiquement seront supprimés automatiquement s’ils ne sont plus
nécessaires sous aptitude
.
Le drapeau contrôlant le comportement "auto install" de la commande
aptitude
peut aussi être manipulé en utilisant la
commande apt-mark
(8) du paquet apt
.
Vous pouvez vérifier l’activité de l’historique des paquets dans les fichiers journaux.
Tableau 2.12. Fichiers journaux de l’activité des paquets
fichier | contenu |
---|---|
/var/log/dpkg.log |
Enregistrement des actions au niveau de dpkg pour
l’activité de tous les paquets |
/var/log/apt/term.log |
Journal de l’activité générique d’APT |
/var/log/aptitude |
Journal des actions de la commande aptitude |
En réalité, il n’est pas aussi facile de comprendre la signification de ces journaux. Consultez Section 9.3.9, « Enregistrer les modifications dans des fichiers de configuration » pour une façon de faire plus simple.
Voici quelques exemples d’opérations d’aptitude
(8).
La commande suivante affiche les paquets dont les noms correspondent à une expression rationnelle.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Il vous est assez facile de trouver le nom exact d’un paquet.
L’expression rationnelle « ~dipv6
» entrée dans
la vue « Nouvelle liste des paquets » (« New Flat Package
List » depuis l’invite « l
» limite la vue
aux paquets dont la description correspond à cette expression rationnelle et
vous permet de parcourir les informations de manière interactive.
Vous pouvez supprimer tous les fichiers de configuration subsistant des paquets supprimés.
Vérifiez le résultat de la commande suivante :
# aptitude search '~c'
Si vous pensez que les paquets affichés doivent être purgés, exécutez la commande suivante :
# aptitude purge '~c'
Vous pouvez avoir envie de faire la même chose en mode interactif avec un contrôle plus fin.
Indiquez l’expression rationnelle « ~c
» dans
la « Nouvelle liste des paquets » en utilisant l’invite
« l
». Cela limite la vue des paquets à ceux
qui correspondent à l’expression rationnelle, c’est-à-dire « supprimé
mais non purgé ». On peut visualiser tous les paquets correspondant à
cette expression rationnelle en pressant « [
»
depuis une section de haut niveau.
Pressez ensuite « _
» depuis une fenêtre de
haut niveau comme « Paquets non installés ». Seuls les paquets
correspondants à l’expression rationnelle se trouvant dans cette section
seront marqués comme devant être purgés par cette commande. Vous pouvez
exclure certains paquets de cette opération en pressant de manière
interactive la touche « =
» en face de chacun
d’eux.
Cette technique est assez pratique et fonctionne avec de nombreuses autres touches de commande.
Voici comment je nettoie l’état d’installation automatique/manuel des paquets (après avoir utilisé un installateur de paquets autre qu’aptitude, etc.).
Démarrer aptitude
en mode interactif en tant
qu’administrateur.
Entrer « u
»,
« U
», « f
» et
« g
» pour mettre à jour la liste des paquets
et mettre à niveau les paquets.
Entrer « l
» afin de définir la limite
d’affichage des paquets avec
« ~i(~R~i|~Rrecommends:~i)
» et entrez
« M
» sur « Paquets
installés
» automatiquement.
Entrer « l
» afin de définir la limite
d’affichage des paquets avec
« ~prequired|~pimportant|~pstandard|~E
» et
entrez « m
» sur les « Paquets
installés
» manuellement.
Entrer « l
» pour définir la limite d’affichage
des paquets avec « ~i!~M
» et supprimez tous
les paquets inutilisés en entrant -
» sur chacun
d’eux après les avoir affichés en entrant « [
»
sur « Paquets installés
».
Entrer « l
» pour définir la limite d’affichage
des paquets avec « ~i
» puis entrez
m
» sur les « Tâches
»
pour attribuer un marquage « manuellement installé » aux paquets.
Quitter aptitude
.
Lancer « apt-get -s autoremove|less
» en tant
qu’administrateur pour vérifier les paquets non utilisés.
Redémarrer aptitude
en mode interactif et marquer les
paquets nécessaires comme « m
».
Redémarrer « apt-get -s autoremove|less
» en
tant qu’administrateur et vérifier à nouveau que « REMOVED » ne
contient que les paquets voulus.
Lancer « apt-get autoremove|less
» en tant
qu’administrateur pour supprimer automatiquement les paquets inutilisés.
L’action « m
» sur les
« Tâches
» est facultative pour éviter une
situation de suppression en masse de paquets dans le futur.
Note | |
---|---|
Lors du changement vers une nouvelle version, etc., vous devriez envisager d’effectuer une installation propre d’un nouveau système même si Debian peut être mis à niveau comme décrit ci-dessous. Cela vous donne une chance de supprimer les résidus amassés et vous présente la meilleure combinaison des derniers paquets. Bien entendu, vous devrez effectuer une sauvegarde totale de votre système vers un endroit sûr (consultez Section 10.2, « Sauvegarde et restauration ») avant de faire cela. Je vous recommande de faire une configuration dual boot en utilisant des partitions différentes afin d’effectuer une transition en douceur. |
Vous pouvez effectuer une mise à niveau de l’ensemble du système vers une
nouvelle version en modifiant le contenu du fichier
« /etc/apt/sources.list
» pour qu’il pointe
vers la nouvelle version et en lançant la commande « apt
update; apt dist-upgrade
».
Pour effectuer la mise à jour depuis stable
vers
testing
ou unstable
, remplacez
« bullseye
» dans le fichier
« /etc/apt/sources.list
» d’exemple donné dans
Section 2.1.4, « Bases concernant l’archive Debian » par
« bookworm
» ou
« sid
».
En réalité, vous pouvez rencontrer quelques complications en raison de
problèmes de transition de paquets, le plus souvent pour des problèmes de
dépendances de paquets. Plus la mise à jour est importante, plus vous avez
de chances de rencontrer des problèmes importants. Lors de la transition de
l’ancienne version stable
vers la nouvelle version
stable
après sa diffusion, afin de minimiser les
problèmes vous pouvez lire ses nouvelles Notes
de diffusion et suivre la procédure exacte qui y est décrite.
Lorsque vous décidez de changer de la version stable
vers
la version testing
avant sa diffusion formelle, il n’y a
pas de Notes de diffusion pour vous
aider. La différence entre stable
et
testing
peut être devenue assez importante depuis la
diffusion de la version stable
précédente et rendre
compliquée la situation de la mise à jour.
Vous devriez aller vers la mise à niveau complète avec précaution tout en récupérant les dernières informations depuis les listes de diffusion et en usant de bon sens.
Lire les « Notes de diffusion » précédentes.
Faire la sauvegarde de l’ensemble du système (particulièrement les données et les informations de configuration).
Avoir un support amorçable prêt au cas où le chargeur initial serait cassé.
Informer les utilisateurs du système bien à l’avance.
Enregistrer l’activité de mise à jour avec script
(1).
Appliquer « unmarkauto » aux paquets nécessaires, par exemple
« aptitude unmarkauto vim
», afin d’en éviter
la suppression.
Minimiser les paquets installés pour réduire les chances de conflits de paquets, par exemple supprimer les paquets de la tâche « bureau ».
Supprimer le fichier « /etc/apt/preferences
»
(désactiver l’épinglage apt « apt-pinning »).
Essayer de mettre à jour par étapes : oldstable
→
stable
→ testing
→
unstable
.
Mettre à jour le fichier
« /etc/apt/sources.list
» afin qu’il pointe
uniquement vers la nouvelle archive et lancer « aptitude
update
».
Installer d’abord, de manière facultative, le nouveau core packages, par exemple « aptitude
install perl
»
Lancer la commande « apt-get -s dist-upgrade
»
pour contrôler quel en sera l’impact.
Et enfin lancer la commande « apt-get
dist-upgrade
».
Attention | |
---|---|
Il n’est pas sage de sauter une version majeure de Debian lors de la mise à
niveau entre versions |
Attention | |
---|---|
Dans les « Notes de diffusion » précédentes, GCC, Linux Kernel, initrd-tools, Glibc, Perl, APT tool chain, etc. ont demandé une attention particulière pour une mise à niveau de l’ensemble du système. |
Pour une mise à jour quotidienne d’unstable
, consultez
Section 2.4.3, « Protection contre les problèmes de paquets ».
Voici la liste des autres opérations de gestion des paquets pour lesquelles
aptitude
est de trop haut niveau ou n’a pas la
fonctionnalité requise.
Tableau 2.13. Liste des opérations avancées de gestion des paquets
commande | action |
---|---|
COLUMNS=120 dpkg -l motif_nom_paquet |
afficher l’état d’un paquet installé pour le signalement de bogue |
dpkg -L nom_paquet |
afficher le contenu d’un paquet installé. |
dpkg -L nom_paquet | egrep
'/usr/share/man/man.*/.+' |
afficher les pages de manuel d’un paquet installé. |
dpkg -S motif_nom_fichier |
afficher les paquets installés dont le nom correspond |
apt-file search motif_nom_fichier |
afficher les paquets de l’archive dont le nom correspond |
apt-file list motif_nom_paquet |
afficher le contenu d’un paquet correspondant de l’archive |
dpkg-reconfigure nom_paquet |
reconfigurer le paquet exact |
dpkg-reconfigure -plow package_name |
reconfigurer le paquet exact avec la question la plus détaillée |
configure-debian |
reconfigurer les paquets depuis le menu en plein écran |
dpkg --audit |
système de vérification des paquets partiellement installés |
dpkg --configure -a |
configurer tous les paquets partiellement installés |
apt-cache policy nom_paquet_binaire |
afficher la version disponible, la priorité et les informations concernant l’archive du paquet binaire |
apt-cache madison nom_paquet |
afficher la version disponible et les informations de l’archive concernant un paquet |
apt-cache showsrc nom_paquet_binaire |
afficher les informations concernant le paquet source d’un paquet binaire |
apt-get build-dep nom_paquet |
installer les paquets nécessaires à la construction d’un paquet |
aptitude build-dep nom_paquet |
installer les paquets nécessaires à la construction d’un paquet |
apt-get source nom_paquet |
télécharger une source (depuis l’archive standard) |
dget URL for dsc file |
télécharger un paquet source (depuis une autre archive) |
dpkg-source -x
nom_paquet_version-version_debian.dsc |
construire une arborescence source depuis un ensemble de paquets
source(« *.tar.gz » et
« *.diff.gz ») |
debuild binary |
construire des paquets depuis une arborescence source locale |
make-kpkg kernel_image |
construire un paquet du noyau à partir de l’arborescence source du noyau |
make-kpkg --initrd kernel_image |
construire un paquet du noyau à partir de l’arborescence source du noyau avec initramfs activé |
dpkg -i
nom_paquet_version-version_debian_arch.deb |
installer un paquet local sur le système |
apt install
/chemin/vers/nom_paquet.dev |
install a local package to the system, meanwhile try to resolve dependency automatically |
debi
nom_paquet_version-version_debian_arch.dsc |
installer des paquets locaux sur le système |
dpkg --get-selections '*' >selection.txt |
enregistrer l’information d’état de la sélection des paquets au niveau de
dpkg |
dpkg --set-selections <selection.txt |
définir l’information d’état de sélection des paquets au niveau de
dpkg |
echo nom_paquet hold | dpkg
--set-selections |
définir l’information d’état de sélection des paquets au niveau de
dpkg à hold (gelé,
équivalent à aptitude hold
nom_paquet ) |
Note | |
---|---|
Pour les paquets disponibles en multi-arch(itectures), certaines commandes devront
parfois être complétées du nom de l’architecture cible. Il faut, par
exemple, utiliser « |
Attention | |
---|---|
Un outil de plus bas niveau tel que « |
Veuillez noter ce qui suit :
Toutes les commandes de configuration et d’installation doivent être lancées avec le compte de l’administrateur.
Au contraire d’aptitude
qui utilise des expressions
rationnelles (consultez Section 1.6.2, « Expressions rationnelles »), les autres
commandes de gestion des paquets utilisent des motifs semblables aux motifs
génériques (« glob ») de l’interpréteur de commandes (consultez
Section 1.5.6, « Motifs génériques (« glob ») de l’interpréteur de commandes »).
La commande apt-file
(1) fournie par le paquet
apt-file
doit être précédée de l’exécution de la commande
« apt-file update
».
configure-debian
(8) fourni par le paquet
configure-debian
exécute en fond
dpkg-reconfigure
(8).
dpkg-reconfigure
(8) exécute les scripts du paquet en
utilisant en fond debconf
(1).
Les commandes « apt-get build-dep
»,
« apt-get source
» et « apt-cache
showsrc
» ont besoin d’une entrée
« deb-src
» dans
« /etc/apt/sources.list
».
dget
(1), debuild
(1)
etdebi
(1) ont besoin du paquet
devscripts
.
Consultez la procédure de (re)paquetage en utilisant « apt-get
source
» dans Section 2.7.13, « Porter un paquet vers le système stable ».
La commande make-kpkg
exige le paquet
kernel-package
(consultez Section 9.10, « Le noyau »).
Consultez Section 12.9, « Créer un paquet Debian » pour la réalisation de paquets en général.
L’installation de debsums
permet, avec
debsums
(1), la vérification des fichiers des paquets
installés d’après les valeurs de MD5sum se trouvant dans le fichier
« /var/lib/dpkg/info/*.md5sums
» Consultez
Section 10.3.5, « La somme de contrôle MD5 » pour le fonctionnement de MD5sum.
Note | |
---|---|
Comme la base de données MD5sum peut être trafiquée par un intrus,
|
De nombreux utilisateurs préfèrent suivre la version unstable du système Debian parce qu’elle propose de nouvelles fonctionnalités et de nouveaux paquets. Cela rend le système davantage sujet aux bogues critiques de paquets.
L’installation du paquet apt-listbugs
protège votre
système contre les bogues critiques en recherchant automatiquement dans le
BTS de Debian les bogues critiques lors de la mise à jour par
l’intermédiaire du système APT.
L’installation du paquet apt-listchanges
indique les
nouveautés importantes se trouvant dans
« NEWS.Debian
» lors de la mise à jour du
système avec APT.
Bien que visiter le site Debian à https://packages.debian.org/ permette aujourd’hui de rechercher facilement les métadonnées des paquets, voyons les méthodes plus traditionnelles .
Les commandes grep-dctrl
(1),
grep-status
(1) et grep-available
(1)
peuvent être utilisées pour effectuer des recherches dans tous les fichiers
dont le format général est celui d’un fichier de contrôle de Debian.
The "dpkg -S file_name_pattern
" can
be used to search package names which contain files with the matching name
installed by dpkg
. But this overlooks files created by
the maintainer scripts.
Si vous devez faire des recherches plus élaborées sur les métadonnées de
dpkg, il vous faudra lancer la commande « grep -e
motif_expression_rationnelle *
» dans le répertoire
« /var/lib/dpkg/info/
». Cela vous permet de
rechercher des mots mentionnés dans les scripts des paquets et les textes
des requêtes d’installation.
Pour rechercher de manière récursive les dépendances de paquets, vous devrez
utiliser apt-rdepends
(8).
Voyons comment le système Debian de gestion des paquets fonctionne de manière interne. Cela vous permettra de créer votre propre solution à certains problèmes de paquets.
Les fichiers de métadonnées de chaque distribution se trouvent sur chaque
miroir Debian, dans
« dist/nom_de_code
», par
exemple, « http://deb.debian.org/debian/
». On
peut parcourir la structure de son archive à l’aide d’un navigateur web. Il
existe 6 types de métadonnées clés :
Tableau 2.14. Contenu des métadonnées de l’archive Debian
fichier | emplacement | contenu |
---|---|---|
Release |
sommet de la distribution | description de l’archive et informations d’intégrité |
Release.gpg |
sommet de la distribution | fichier signature du fichier « Release » signé
avec la clé de l’archive |
Contents-architecture |
sommet de la distribution | liste de tous les fichiers pour tous les paquets dans l’archive pertinente |
Release |
sommet de chaque combinaison de distribution/section/architecture | description de l’archive utilisée pour la règle de
apt_preferences (5) |
Packages |
sommet de chaque combinaison de distribution/section/architecture binaire | debian/control concaténés des paquets binaires |
Sources |
sommet de chaque combinaison distribution/section/source | debian/control concaténés des paquets sources |
Dans les archives récentes, ces métadonnées sont enregistrées sous forme compressée et différentielle afin de limiter le trafic réseau.
Astuce | |
---|---|
Le fichier « |
Chaque version de l’archive Debian possède un fichier
« Release
» de plus haut niveau, par exemple,
« http://deb.debian.org/debian/dists/unstable/Release
»,
comme ci-dessous :
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum: bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz ...
Note | |
---|---|
Vous pouvez trouver ici ma justification pour l’utilisation de « suite », « nom de code » dans Section 2.1.4, « Bases concernant l’archive Debian ». La « distribution » est utilisée pour désigner à la fois « suite » et « nom de code ». Tous les noms possibles de « sections » de l’archive sont indiqués dans l’archive sous « Composants ». |
L’intégrité du fichier « Release
» de plus haut
niveau est vérifiée par une infrastructure cryptographique appelée secure apt.
Le fichier de signature chiffré « Release.gpg
»
est créé à partir du fichier « Release
» réel
de plus haut niveau et de la clé secrète de l’archive Debian.
La clé publique de l’archive Debian peut être placée dans
« /etc/apt/trusted.gpg
» ;
automatiquement en installant le trousseau de clés avec la dernière version
du paquet base-files
, ou
manuellement, avec les outils gpg
ou
apt-key
en utilisant la dernière clé publique de
l’archive postée sur ftp-master.debian.org.
Le système secure APT vérifie de manière
cryptographique, à l’aide du fichier
« Release.gpg
» et de la clé publique de
l’archive Debian de « /etc/apt/trusted.gpg
»,
l’intégrité du fichier « Release
» de plus haut
niveau téléchargé .
L’intégrité de tous les fichiers « Packages
»
et « Sources
» est vérifiée en utilisant les
valeurs des sommes MD5 se trouvant dans son fichier de plus haut niveau
« Release
». L’intégrité de tous les fichiers
de paquets est vérifiée en utilisant les valeurs des sommes MD5 se trouvant
dans les fichiers « Packages
» et
« Sources
». Consultez
debsums
(1) et Section 2.4.2, « Vérifier les fichiers de paquets installés ».
Comme la vérification de la signature cryptographique est un processus
beaucoup plus consommateur de processeur que les calculs de sommes MD5,
l’utilisation d’une somme MD5 pour chacun des paquets tout en utilisant une
signature cryptographique pour le fichier
« Release
» de plus haut niveau allie une bonne sécurité avec de bonnes
performances (consultez Section 10.3, « Infrastructure de sécurité des données »).
Astuce | |
---|---|
Les fichiers « |
Il y a des fichiers « Release
» du niveau de
l’archive pour tous les emplacements d’archives indiqués par une ligne
« deb
» dans
« /etc/apt/sources.list
» comme, par exemple,
« http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release
»
ou
« http://deb.debian.org/debian/dists/sid/main/binary-amd64/Release
»
comme suit :
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
Attention | |
---|---|
Pour l’entrée « |
Pour certaines archives, comme experimental
et
bullseye-backports
, qui contiennent des paquets
qui ne devraient pas être installés automatiquement, il y a une ligne
supplémentaire, par exemple
« http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release
»
comme suit :
Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64
Remarquez que les archives normales, sans « NotAutomatic:
yes
», la valeur par défaut de « Pin-Priority » est
de 500, alors que pour les archives spéciales avec
« NotAutomatic: yes
» la valeur par défaut de
« Pin-Priority » est de 1 (consultez
apt_preferences
(5) et Section 2.7.3, « Ajuster la version candidate »).
Lorsqu’on utilise les outils APT, comme aptitude
,
apt-get
, synaptic
,
apt-file
, auto-apt
, etc., il faut
mettre à jour les copies locales des métadonnées contenant les informations
de l’archive Debian. Ces copies locales ont les noms de fichier suivants,
correspondant aux noms de la distribution
, de la
section
et de l’architecture
indiquées
dans « /etc/apt/sources.list
» (consultez Section 2.1.4, « Bases concernant l’archive Debian »).
« /var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release
»
« /var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release.gpg
»
« /var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_binary-architecture_Packages
»
« /var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_source_Sources
»
« /var/cache/apt/apt-file/deb.debian.org_debian_dists_distribution_Contents-architecture.gz
»
(pour apt-file
)
Les quatre premiers types de fichiers sont partagés par toutes les commandes
APT pertinentes et sont mis à jour depuis la ligne de commandes par
« apt-get update
» ou « aptitude
update
». Les métadonnées
« Packages
» sont mises à jour s’il y a une
ligne « deb
» dans le fichier
« /etc/apt/sources.list
». Les métadonnées
« Sources
» sont mises à jour s’il y a une
ligne « deb-src
» dans le fichier
« /etc/apt/sources.list
».
Les métadonnées « Packages
» et
« Sources
» contiennent une entrée
« Filename:
» pointant vers l’emplacement du
paquet binaire et du paquet source. Actuellement, ces paquets sont situés
dans l’arborescence du répertoire « pool/
»
afin d’améliorer le passage d’une version à l’autre.
On peut effectuer des recherches interactivement dans les copies locales des
métadonnées « Packages
» à l’aide
d’aptitude
. La commande de recherche spécialisée
grep-dctrl
(1) peut effectuer des recherches dans les
copies locales des métadonnées « Packages
» et
« Sources
».
La copie locale des métadonnées
« Contents-architecture
»
peut être mise à jour par « apt-file update
»,
son emplacement est différent des quatre autres. Consultez
apt-file
(1). (auto-apt
utilise par
défaut un emplacement différent pour la copie locale de
« Contents-architecture.gz
»).
En plus des métadonnées récupérées par téléchargement, l’outil APT des
versions ultérieures à Lenny
enregistre l’état de
l’installation généré localement dans
« /var/lib/apt/extended_states
» qui est
utilisé par tous les outils APT afin de suivre tous les paquets installés
automatiquement.
En plus des métadonnées récupérées par téléchargement, la commande
aptitude
enregistre l’état de l’installation généré
localement dans « /var/lib/aptitude/pkgstates
»
qu’il est le seul à utiliser.
Tous les paquets ayant été téléchargés au moyen du mécanisme APT sont
enregistrés dans le répertoire
« /var/cache/apt/archives
» jusqu’à ce qu’ils
en soient supprimés.
Cette politique de nettoyage des fichiers de cache pour
aptitude
peut être spécifiée sous
« Options
» →
« Préférences
» et peut être déclenchée
manuellement par le menu « Nettoyer le cache des
paquets
» ou « Enlever les fichiers
périmés
» sous « Actions
».
Les fichiers de paquets Debian ont une structure de nom particulière.
Tableau 2.15. Structure du nom des paquets Debian :
type de paquet | structure du nom |
---|---|
Paquet binaire (encore appelé deb ) |
package-name_upstream-version-debian.revision_architecture.deb |
Le paquet binaire de l’installateur de Debian (connu sous le nom
udeb ) |
package-name_upstream-version-debian.revision_architecture.udeb |
paquet source (source amont) | package-name_upstream-version-debian.revision.orig.tar.gz |
Paquet source 1.0 (modifications Debian) |
package-name_upstream-version-debian.revision.diff.gz |
Paquet source 3.0 (quilt) (modifications Debian) |
package-name_upstream-version-debian.revision.debian.tar.gz |
paquet source (description) | package-name_upstream-version-debian.revision.dsc |
Astuce | |
---|---|
Seuls les formats de paquets source de base sont décrits ici. Consultez
|
Tableau 2.16. Caractères utilisables pour chacune des composantes des noms de paquets Debian
nom de la composante | usable characters (ERE regex) | existence |
---|---|---|
nom_paquet |
[a-z0-9][-a-z0-9.+]+ |
nécessaire |
epoch: |
[0-9]+: |
optionnel |
version_amont |
[-a-zA-Z0-9.+:]+ |
nécessaire |
version_debian |
[a-zA-Z0-9.+~]+ |
optionnel |
Note | |
---|---|
Vous pouvez vérifier l’ordre des versions d’un paquet à l’aide de
|
Note | |
---|---|
L’installateur Debian (d-i)
utilise |
dpkg
(1) est l’outil de plus bas niveau pour la gestion
des paquets de Debian. C’est un outil très puissant et il faut l’utiliser
avec précaution.
Lors de l’installation d’un paquet appelé
« nom_paquet
»,
dpkg
le traite selon l’ordre suivant :
dépaquetage du fichier deb (équivalent à « ar
-x
») ;
exécution de
« nom_paquet.preinst
» en
utilisant debconf
(1) ;
installation du contenu du paquet sur le système (équivalent à
« tar -x
» ;
exécution de
« nom_paquet.postinst
» en
utilisant debconf
(1).
Le système debconf
fournit une interaction standardisée
avec l’utilisateur avec la prise en charge de I18N and L10N (Chapitre 8, I18N et L10N).
Tableau 2.17. Fichiers particuliers créés par dpkg
fichier | description du contenu |
---|---|
/var/lib/dpkg/info/nom_paquet.conffiles |
liste de fichiers de configuration. (modifiables par l’utilisateur) |
/var/lib/dpkg/info/nom_paquet.list |
liste des fichiers et répertoires installés par le paquet |
/var/lib/dpkg/info/nom_paquet.md5sums |
liste des valeurs de hachage MD5 pour les fichiers installés par le paquet |
/var/lib/dpkg/info/nom_paquet.preinst |
script du paquet à exécuter avant l’installation du paquet |
/var/lib/dpkg/info/nom_paquet.postinst |
script du paquet à exécuter après l’installation du paquet |
/var/lib/dpkg/info/nom_paquet.prerm |
script du paquet à exécuter avant la suppression du paquet |
/var/lib/dpkg/info/nom_paquet.postrm |
script du paquet à exécuter après la suppression du paquet |
/var/lib/dpkg/info/nom_paquet.config |
script du paquet pour le système debconf |
/var/lib/dpkg/alternatives/nom_paquet |
information d’alternative utilisée par la commande
update-alternatives command |
/var/lib/dpkg/available |
information de disponibilité de tous les paquets |
/var/lib/dpkg/diversions |
information sur les détournements utilisés par dpkg (1) et
établis avec dpkg-divert (8) |
/var/lib/dpkg/statoverride |
information de remplacement de statut utilisé par dpkg (1)
et établi avec dpkg-statoverride (8) |
/var/lib/dpkg/status |
informations d’état pour tous les paquets |
/var/lib/dpkg/status-old |
fichier de sauvegarde de première génération du fichier
« var/lib/dpkg/status » |
/var/backups/dpkg.status* |
fichier de sauvegarde de seconde génération du fichier
« var/lib/dpkg/status » |
Le fichier « status
» est aussi utilisé par des
outils comme dpkg
(1), « dselect
update
» et « apt-get -u
dselect-upgrade
».
La commande de recherche spécialisée grep-dctrl
(1) peut
rechercher des copies locales des métadonnées
« status
» et
« available
»
Astuce | |
---|---|
Dans l’environnement de l’installateur
debian, la commande |
Le système Debian possède un mécanisme pour installer paisiblement des
paquets qui présentent un certain recouvrement en utilisant
update-alternatives
(1). Par exemple, vous pouvez faire
que la commande vi
choisisse de lancer
vim
alors que les paquets vim
et
nvi
sont tous deux installés.
$ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi Selection Command ---------------------------------------------- 1 /usr/bin/vim *+ 2 /usr/bin/nvi Enter to keep the default[*], or type selection number: 1
Le système d’alternatives de Debian utilise des liens symboliques dans
« /etc/alternatives/
» pour enregistrer ses
sélections. Le processus de sélection utilise le fichier correspondant de
« /var/lib/dpkg/alternatives/
».
Stat overrides, fournie par la commande
dpkg-statoverride
(8) est un moyen d’indiquer à
dpkg
(1) d’utiliser un propriétaire ou un mode différent
pour un fichier lorsqu’un paquet est
installé. Si « --update
» est indiqué et que le
fichier existe, il est immédiatement configuré avec le nouveau propriétaire
et le nouveau mode.
Attention | |
---|---|
Une modification directe par l’administrateur du propriétaire ou du mode
d’un fichier dont le propriétaire est le
paquet en utilisant les commandes |
Note | |
---|---|
J’utilise ici le mot fichier, mais en
réalité, ce peut être n’importe quel objet d’un système de fichiers que gère
|
Les fichiers diversions fournis par la
commande dpkg-divert
(8) sont un moyen de forcer
dpkg
(1) à ne pas installer un fichier à son emplacement
par défaut, mais à un emplacement détourné (« diverted »). L’utilisation de
dpkg-divert
est destinée à la maintenance de paquets par
des scripts. Son utilisation occasionnelle par l’administrateur du système
est obsolète.
When running testing
or unstable
system, the administrator is expected to recover from broken package
management situation.
Attention | |
---|---|
Certaines des méthodes décrites ici sont des actions très risquées. Vous avez été prévenu ! |
If you force to install a package by "sudo dpkg -i ...
"
to a system without all dependency packages installed, the package
installation will fail as partially installed.
You should install all dependency packages using APT-system or
"sudo dpkg -i ...
".
Then, configure all partially installed packages with the following command.
# dpkg --configure -a
Caching errors of the package data cause intriguing errors, such as "GPG error: ... invalid: BADSIG ..." with APT.
You should remove all cached data by "sudo rm -rf /var/lib/apt/*
" and try again. (If apt-cacher-ng
is used, you
should also run "sudo rm -rf /var/cache/apt-cacher-ng/*
".)
If a desktop GUI program experienced instability after significant upstream version upgrade, you should suspect interference with old local configuration files created by it. If it is stable under a newly created user account, this hypothesis is confirmed. (This is a bug of packaging and usually avoided by the packager.)
Pour retrouver la stabilité, vous devrez déplacer les fichiers de configuration locaux et redémarrer le programme ayant une interface graphique. Il vous faudra peut-être lire le contenu de l’ancien fichier de configuration pour retrouver plus tard vos informations de configuration. (Ne les effacez pas trop rapidement).
Les systèmes de gestion d’archive au niveau du paquet, tels
qu’aptitude
(8) ou apt-get
(1) ne
tenteront même pas, grâce aux dépendances des paquets, d’installer des
paquets ayant des fichiers qui se superposent (consultez Section 2.1.6, « Dépendances des paquets »).
Des erreurs du responsable du paquet ou le déploiement de sources d’archives
mélangées et incohérentes (consultez Section 2.7.2, « Paquets venant de sources mélangées ») par l’administrateur du
système peuvent créer une situation où les dépendances des paquets sont
décrites de manière incorrecte. Lorsque, dans une telle situation, vous
installez un paquet qui écrase des fichiers en utilisant
aptitude
(8) ou apt-get
(1),
dpkg
(1) qui dépaquette le paquet va retourner une erreur
au programme appelant sans écraser les fichiers existants.
Attention | |
---|---|
L’utilisation de programmes tierce partie introduit un risque significatif
par l’intermédiaire des scripts du responsable qui sont lancés avec les
privilèges de l’administrateur et peuvent effectuer n’importe quoi sur votre
système. La commande |
Vous pouvez contourner un tel problème d’installation cassée en supprimant
d’abord l’ancien paquet,
ancien_paquet
, qui pose des
problèmes.
$ sudo dpkg -P old-package
Lorsqu’une commande dans le script du paquet retourne une erreur pour une raison quelconque et que le script retourne une erreur, le système de gestion des paquets arrête son action et se termine en laissant des paquets partiellement installés. Lorsqu’un paquet comporte des bogues dans les scripts de suppression, le paquet peut devenir impossible à supprimer et assez déplaisant.
Pour les problèmes avec le script de paquet de
« nom_paquet
», il vous
faudra regarder dans les scripts du paquet suivants :
« /var/lib/dpkg/info/nom_paquet.preinst
»
« /var/lib/dpkg/info/nom_paquet.postinst
»
« /var/lib/dpkg/info/nom_paquet.prerm
»
« /var/lib/dpkg/info/nom_paquet.postrm
»
Éditez le script du paquet posant problème avec le compte de l’administrateur en utilisant les techniques suivantes :
désactiver la ligne posant problème avec un
« #
» en tête de ligne ;
forcer un retour avec succès en ajoutant à la fin de la ligne qui pose
problème « || true
».
Then, follow Section 2.6, « Récupérer un système cassé ».
Comme dpkg
est un outil de gestion des paquets de très
bas niveau, il peut fonctionner dans des situations très difficiles telles
qu’un système qu’on ne peut pas démarrer et qui n’a pas de connexion
réseau. Supposons que le paquet toto
soit cassé et doive
être remplacé.
You may still find cached copies of older bug free version of
foo
package in the package cache directory:
"/var/cache/apt/archives/
". (If not, you can download it
from archive of https://snapshot.debian.org/ or copy
it from package cache of a functioning machine.)
Si vous pouvez démarrer le système, vous pouvez l’installer avec la commande suivante :
# dpkg -i /path/to/foo_old_version_arch.deb
Astuce | |
---|---|
Si la casse du système est minime, vous pouvez faire un retour en arrière (downgrade) de tout le système comme dans Section 2.7.10, « Retour d’urgence à une version précédente (downgrade) » en utilisant le système de plus haut niveau APT. |
Si votre système ne peut pas être démarré depuis le disque dur, vous devrez rechercher d’autres manières de le démarrer :
Démarrez le système en utilisant le CD de l’installateur Debian en mode secours (« rescue mode »).
Montez le système qui ne veut pas démarrer sur le disque dur sur
« /target
».
Installez une version plus ancienne du paquet toto
en
faisant ce qui suit :
# dpkg --root /target -i /path/to/foo_old_version_arch.deb
Cet exemple fonctionne même si la commande dpkg
qui se
trouve sur le disque dur est cassée.
Astuce | |
---|---|
Tous les systèmes GNU/Linux démarrés depuis un autre système sur le disque dur, depuis un CD autonome GNU/Linux, depuis une clé USB amorçable, depuis le réseau peuvent être utilisés de manière similaire pour restaurer un système cassé. |
Si la tentative d’installation d’un paquet de cette manière échoue en raison
de la violation de certaines dépendances et que vous voulez vraiment le
faire, vous pouvez, en dernier ressort, outrepasser les dépendances en
utilisant les options « --ignore-depends
»,
« --force-depends
» de dpkg
et d’autres options. Si vous le faites, vous aurez un sérieux effort à faire
pour restaurer les dépendances correctes par la suite. Consultez
dpkg
(8) pour davantage d’informations.
Note | |
---|---|
Si votre système est sérieusement cassé, vous devriez faire une sauvegarde complète du système dans un endroit sûr (consultez Section 10.2, « Sauvegarde et restauration ») et effectuer une installation propre. Cela demande moins de temps et donne, en fin de compte, de meilleurs résultats. |
Si le fichier « /var/lib/dpkg/status
» est
corrompu pour une raison quelconque, le système Debian perd les données de
paquets sélectionnés et est sérieusement endommagé. Regardez l’ancienne
version du fichier « /var/lib/dpkg/status
»
dans « /var/lib/dpkg/status-old
» ou
« /var/backups/dpkg.status.*
».
Conserver « /var/backups/
» sur une partition
séparée peut être une bonne idée car ce répertoire contient de nombreuses
données importantes du système.
Pour les casses sévères, je recommande de faire une réinstallation propre
après avoir fait une sauvegarde du système. Même si vous avez perdu tout ce
qui se trouve dans « /var/
», vous pouvez
encore récupérer certaines informations depuis les répertoires qui se
trouvent dans « /usr/share/doc/
» afin de vous
guider dans votre nouvelle installation.
Réinstaller un système (de bureau) minimum.
# mkdir -p /path/to/old/system
Montez l’ancien système sur
« /chemin/vers/ancien/système/
».
# cd /path/to/old/system/usr/share/doc # ls -1 >~/ls1.txt # cd /usr/share/doc # ls -1 >>~/ls1.txt # cd # sort ls1.txt | uniq | less
Le système vous présentera alors les noms de paquets à installer. (Il peut y
avoir des noms qui ne soient pas des noms de paquets, comme, par exemple,
« texmf
»).
Vous pouvez rechercher les paquets qui satisfont à vos besoins avec
aptitude
à partir de la description du paquet ou depuis
la liste se trouvant dans « Tasks ».
Si vous trouvez deux paquets similaires et que vous vous demandez lequel installer sans faire des efforts d’« essais et erreurs », vous pouvez user de bon sens. Je considère que les points suivants constituent de bonnes indications pour les paquets à privilégier :
Essential : yes > no
Section : main > contrib > non-free
Priorité : required > important > standard > optional > extra
Tâches : paquets affichés dans les tâches tels que « Environnement de bureau »
Packages selected by the dependency package (e.g., gcc-10
by gcc
)
Popcon : les votes et le nombre d’installations les plus élevés
Journaux des modifications (« Changelog ») : mises à jour régulières par le responsable
BTS : pas de bogue RC (pas de bogue critique, grave ou sérieux)
BTS : réactivité du responsable aux signalements de bogues
BTS : le plus grand nombre de bogues réglés récemment
BTS : le plus faible nombre de bogues restants qui ne soient pas dans la liste des vœux
Debian étant un projet basé sur le volontariat avec un modèle développement distribué, son archive contient de nombreux paquets avec des cibles différentes et de qualité variable. Vous devrez choisir vous-même ce que vous voulez en faire.
Attention | |
---|---|
Installer des paquets provenant de sources d’archives mélangées n’est pas
pris en charge par la distribution officielle de Debian sauf pour la prise
en charge officielle d’une combinaison particulière d’archives telle que
|
Voici un exemple des opérations pour inclure des paquets d’une version amont
spécifique plus récente se trouvant dans unstable
pour
une seule occasion tout en suivant testing
:
modifier le fichier « /etc/apt/sources.list
»
de manière temporaire avec la seule entrée
« unstable
» ;
lancer « aptitude update
» ;
lancer « aptitude install
nom_paquet
» ;
rétablir le fichier « /etc/apt/sources.list
»
pour testing
.
lancer « aptitude update
» ;
Vous ne créez pas le fichier
« /etc/apt/preferences
» et vous n’avez pas
besoin de vous préoccuper de l’épinglage apt (« apt-pinning »)
avec cette approche manuelle. Mais c’est très lourd.
Attention | |
---|---|
En utilisant une source d’archive mixte, vous devez vous assurer par vous-même de la compatibilité des paquets car Debian ne la garantit pas. S’il existe des incompatibilités de paquets, vous pouvez casser votre système. Vous devrez être capable d’apprécier ces exigences techniques. L’utilisation de sources mixtes d’archives aléatoires est une opération entièrement facultative et son utilisation est quelque chose que je ne vous encourage pas à faire. |
Les règles générales pour l’installation de paquets de différentes archives sont les suivantes :
Les paquets non binaires (« Architecture:
all
») sont plus sûrs à
installer :
paquets de documentation : pas d’exigence particulière
paquet de programmes d’interpréteur : un interpréteur compatible doit être disponible
Les paquets binaires (qui ne sont pas « Architecture:
all
») sont confrontés à de nombreux barrages et ne sont
pas sûrs à installer
Note | |
---|---|
De manière à rendre un paquet plus sûr à installer, certains programmes commerciaux binaires et non libres peuvent être fournis liés avec des bibliothèques complètement statiques. Vous devrez quand même vérifier leurs problèmes de compatibilité avec l’ABI, etc. |
Note | |
---|---|
Sauf pour éviter à court terme un paquet cassé, installer des paquets binaires depuis des archives officiellement non supportées est en général une mauvaise idée. C’est vrai même si vous utilisez l’épinglage apt (« apt-pinning ») (consultez Section 2.7.3, « Ajuster la version candidate »). Vous devriez envisager chroot ou des techniques similaires (consultez Section 9.11, « Système virtualisé ») afin de faire tourner des programmes en provenance d’archives différentes. |
Avertissement | |
---|---|
L’utilisation de l’épinglage apt par un débutant est une source certaine de problèmes majeurs. Vous devriez éviter l’utilisation de l’épinglage apt sauf si vous en avez absolument besoin. |
Sans le fichier « /etc/apt/preferences
», le
système APT choisit, en utilisant la chaîne de version, la dernière version
disponible comme version candidate. C’est
l’état normal et l’utilisation la plus recommandée du système APT. Toutes
les combinaisons d’archives officiellement prises en charge n’exigent pas le
fichier « /etc/apt/preferences
» car certaines
archives qui ne peuvent pas être utilisées comme source des mises à jour
automatiques sont marquées NotAutomatic
et gérées proprement.
Astuce | |
---|---|
La règle de comparaison de la chaîne de version peut être vérifiée avec, par
exemple « |
Lorsque vous installez régulièrement des paquets depuis un mélange de
sources d’archives (consultez Section 2.7.2, « Paquets venant de sources mélangées »), vous pouvez
automatiser ces opérations compliquées en créant le fichier
« /etc/apt/preferences
» avec les entrées
correctes et en ajustant la règle de sélection des paquets pour la version candidate comme décrit dans
apt_preferences
(5). C’est appelé épinglage apt (« apt-pinning »).
Attention | |
---|---|
Lorsque vous utilisez l’épinglage apt, vous devez vérifier vous-même la compatibilité des paquets car le système Debian ne la garantit pas. L’épinglage apt est une opération entièrement facultative et je ne vous encourage pas à l’utiliser. |
Attention | |
---|---|
Les fichiers Release au niveau de l’archive (consultez Section 2.5.3, « Fichiers « Release » au niveau de l’archive ») sont utilisés pour la règle de
|
Attention | |
---|---|
Lorsque vous utilisez une archive ne venant pas de Debian en tant que partie d’épinglage apt, vous devez vérifier ce pour quoi elles sont prévues et aussi vérifier leur crédibilité. Par exemple, Ubuntu et Debian ne sont pas prévues pour être mélangées. |
Note | |
---|---|
Même si vous ne créez pas le fichier
« |
Voici une explication simplifiée de la technique d’épinglage apt (« apt-pinning ») :
Le système APT choisit la mise à niveau
du paquet de plus haute priorité d’épinglage (« Pin-Priority »)
dans la liste des sources de paquets disponible dans le fichier
« /etc/apt/sources.list
» comme paquet de
« version candidate. Si la priorité
d’épinglage du paquet est supérieure à 1000, cette restriction de version
pour la mise à niveau est levée afin de
permettre le retour vers une version précédente (consultez Section 2.7.10, « Retour d’urgence à une version précédente (downgrade) »).
La valeur de priorité d’épinglage de chaque paquet est définie par l’entrée
« Pin-Priority » dans le fichier
« /etc/apt/preferences
» ou utilise sa valeur
par défaut.
Tableau 2.18. Liste de valeurs remarquables des priorités d’épinglage (Pin-Priority) pour la technique d’épinglage apt (« apt-pinning ») :
priorité d’épinglage | conséquence de l’épinglage apt sur le paquet |
---|---|
1001 | installer le paquet même s’il s’agit d’un retour en arrière |
990 | utilisé par défaut pour l’archive version cible |
500 | utilisé par défaut pour l’archive normale |
100 | utilisé par défaut pour l’archive non automatique mais mises à niveau automatiques |
100 | utilisé pour le paquet installé |
1 | utilisé par défaut pour l’archive non automatique |
-1 | ne jamais installer le paquet même s'il est recommandé |
Il y a plusieurs méthodes pour définir l’archive version cible :
fichier de configuration « /etc/apt/apt.conf
»
avec la ligne « APT::Default-Release
"stable";
»
option de la ligne de commandes, par exemple, « apt-get
install -t testing un_paquet
»
L’archive non automatique mais mises à niveau automatiques est définie par le
serveur d’archive dont le fichier Release au niveau de l’archive (consultez
Section 2.5.3, « Fichiers « Release » au niveau de l’archive ») contient à la fois
« NotAutomatic: yes
» et « ButAutomaticUpgrades:
yes
». L’archive non
automatique est définie par le serveur d’archive dont le fichier
Release au niveau de l’archive contient « NotAutomatic:
yes
».
La situation d’épinglage apt de
paquet provenant de sources d’archive multiple est
affichée par « apt-cache policy
paquet
».
Une ligne commençant par « Package pin:
»
affiche la version d’épinglage du paquet
si l’association n’est définie que pour paquet par
exemple, « Package pin: 0.190
».
Il n’existe pas de ligne avec « Package pin:
»
s’il n’y a pas d’association définie uniquement avec
paquet.
La valeur de Pin-Priority associée uniquement avec
paquet est affichée sur la partie droite de toutes les
chaînes de version, par exemple, « 0.181 700
».
« 0
» est affiché à droite de toutes les
chaînes de version s’il n’y a pas d’association définie avec uniquement
paquet, par exemple, « 0.181
0
».
Les valeurs de Pin-Priority des archives (définies par
« Package: *
» dans le fichier
« /etc/apt/preferences
») sont affichées sur la
gauche de tous les chemins vers les archives, par exemple,
« 100 http://deb.debian.org/debian/
bullseye-backports/main Packages
».
There are bullseye-updates and backports.debian.org archives which
provide upgrade packages for stable
(bullseye
).
Afin d’utiliser ces archives, placez la liste de toutes les archives
nécessaires dans le fichier « /etc/apt/sources.list
» de
la manière suivante :
deb http://deb.debian.org/debian/ bullseye main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bullseye-security main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bullseye-updates main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bullseye-backports main non-free-firmware contrib non-free
Il n’est pas nécessaire de définir explicitement la valeur de Pin-Priority
dans le fichier « /etc/apt/preferences
». Quand de
nouveaux paquets sont disponibles, la configuration par défaut fournit les
mises à niveau les plus saines (consultez Section 2.5.3, « Fichiers « Release » au niveau de l’archive »).
Tous les paquets installés les plus anciens sont mis à niveau vers les plus
récents à partir de bullseye-updates
.
Seuls les paquets les plus anciens installés à partir de
bullseye-backports
sont mis à niveau vers les
plus récents à partir de bullseye-backports
.
Chaque fois que vous désirerez installer un paquet nommé
« nom_paquet
» avec ses
dépendances depuis l’archive bullseye-backports
vous-même, vous utiliserez la commande suivante en changeant de version
cible avec l’option « -t
» :
$ sudo apt-get install -t bullseye-backports package-name
Avertissement | |
---|---|
L’utilisation de l’épinglage apt par un débutant est une source certaine de problèmes majeurs. Vous devriez éviter l’utilisation de l’épinglage apt sauf si vous en avez absolument besoin. |
Si vous ne voulez pas tirer des paquets particuliers automatiquement avec
« Recommends », vous devez créer le fichier
« /etc/apt/preferences
» et y placer la liste
explicite de tous ces paquets au début du fichier comme suit :
Package: package-1 Pin: version * Pin-Priority: -1 Package: package-2 Pin: version * Pin-Priority: -1
Avertissement | |
---|---|
L’utilisation de l’épinglage apt par un débutant est une source certaine de problèmes majeurs. Vous devriez éviter l’utilisation de l’épinglage apt sauf si vous en avez absolument besoin. |
Voici un exemple de technique d’épinglage apt
permettant d’inclure de manière régulière une version amont plus
récente de paquets spécifiques se trouvant dans unstable
tout en suivant testing
. Listez toutes les archives
nécessaires dans le fichier
« /etc/apt/sources.list
» de la manière
suivante :
deb http://deb.debian.org/debian/ testing main contrib non-free deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/debian-security testing-security main contrib
Configurez le fichier « /etc/apt/preferences
»
comme suit :
Package: * Pin: release a=unstable Pin-Priority: 100
Lorsque vous désirez installer un paquet appelé
« nom_paquet
» avec ses
dépendances depuis l’archive unstable
avec cette
configuration, vous utilisez la commande suivante qui modifie la version
cible avec l’option « -t
» (la priorité
d’épinglage de unstable
devient 990).
$ sudo apt-get install -t unstable package-name
Avec cette configuration, l’exécution habituelle de « apt-get
upgrade
» et « apt-get
dist-upgrade
» (ou « aptitude
safe-upgrade
» et « aptitude
full-upgrade
» met à niveau les paquets qui avaient été
installés depuis l’archive testing
en utilisant l’archive
testing
actuelle et les paquets qui avaient été installés
depuis l’archive unstable
en utilisant l’archive
unstable
actuelle.
Attention | |
---|---|
Faites bien attention à ne pas supprimer l’entrée
« |
Astuce | |
---|---|
J’édite habituellement le fichier
« |
Astuce | |
---|---|
Si on utilise « |
Si vous désirez suivre automatiquement un paquet particulier dans
unstable
sans une installation initiale
« -t unstable
», vous devrez créer le fichier
« /etc/apt/preferences
» et y placer la liste
explicite de tous ces paquets au début du fichier de la manière
suivante :
Package: package-1 Pin: release a=unstable Pin-Priority: 700 Package: package-2 Pin: release a=unstable Pin-Priority: 700
Cela définit la valeur de Pin-Priority pour chacun de ces paquets
spécifiques. Par exemple, pour suivre la dernière version
unstable
de cette « Référence Debian » en
français, vous devrez ajouter les entrées suivantes dans le fichier
« /etc/apt/preferences
».
Package: debian-reference-en Pin: release a=unstable Pin-Priority: 700 Package: debian-reference-common Pin: release a=unstable Pin-Priority: 700
Astuce | |
---|---|
Cette technique d’épinglage apt est aussi valable si vous suivez l’archive
|
Voici un autre exemple de technique d’épinglage
apt destinée à inclure une version amont plus récente de paquets
spécifiques se trouvant dans experimental
tout en suivant
unstable
. Vous donnez la liste de toutes les archives
nécessaires dans fichier
« /etc/apt/sources.list
» de la manière
suivante :
deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://deb.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing-security main contrib
La valeur de Pin-Priority par défaut pour l’archive
experimental
est toujours de 1 (<<100) car c’est
une archive non automatique (consultez
Section 2.5.3, « Fichiers « Release » au niveau de l’archive »). Il n’y a pas besoin de
définir explicitement de valeur de Pin-Priority dans le fichier
« /etc/apt/preferences
» simplement pour
utiliser l’archive experimental
à moins que vous ne
désiriez suivre des paquets particuliers dans cette archive de manière
automatique pour la mise à niveau suivante.
Avertissement | |
---|---|
L’utilisation de l’épinglage apt par un débutant est une source certaine de problèmes majeurs. Vous devriez éviter l’utilisation de l’épinglage apt sauf si vous en avez absolument besoin. |
Le paquet apt
est diffusé avec son propre script
d’événements planifiés (cron)
« /etc/cron.daily/apt
» afin de gérer le
téléchargement automatique de paquets. Ce script peut être amélioré afin
d’effectuer la mise à niveau automatique des paquets en installant le paquet
unattended-upgrades
. Cela peut être personnalisé à l’aide
de paramètres se trouvant dans
« /etc/apt/apt.conf.d/02backup
» et
« /etc/apt/apt.conf.d/50unattended-upgrades
»
comme décrit dans
« /usr/share/doc/unattended-upgrades/README
».
Le paquet unattended-upgrades
est principalement destiné
à des mises à jour de sécurité des systèmes stable
. Si le
risque de casser un système stable
existant par la mise à
niveau automatique est plus faible que celui d’avoir un système cassé par un
intrus utilisant une de ses failles de sécurité qui a été fermée par une
mise à jour de sécurité, vous devriez envisager d’utiliser cette mise à
niveau automatique avec les paramètres de configuration suivants :
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1";
Si vous faites tourner un système unstable
, vous ne
devriez pas utiliser les mises à niveau automatiques car cela cassera
probablement votre système un jour ou l’autre. Même dans ce cas, avec
unstable
, vous pourrez télécharger des paquets à l’avance
afin de gagner du temps pour la mise à niveau interactive avec les
paramètres de configuration suivants :
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0";
Si vous désirez limiter la bande passante utilisée par APT à, par exemple, 800Kib/sec (=100kio/sec), vous devrez configurer APT avec son paramètre de configuration comme suit :
APT::Acquire::http::Dl-Limit "800";
Avertissement | |
---|---|
L’utilisation de l’épinglage apt par un débutant est une source certaine de problèmes majeurs. Vous devriez éviter l’utilisation de l’épinglage apt sauf si vous en avez absolument besoin. |
Attention | |
---|---|
Le retour vers une version antérieure n’est pas officiellement géré par Debian dans sa conception. Ce ne devrait être fait qu’en tant que partie d’un processus de récupération d’urgence. Malgré cette situation, on sait que cela fonctionne bien pour de nombreux incidents. Avec les systèmes critiques vous devrez effectuer une sauvegarde des données importantes du système après l’opération de récupération et réinstaller le nouveau système depuis le départ. |
Vous pouvez être assez chanceux pour revenir en arrière depuis une archive
plus récente vers une archive plus ancienne afin de récupérer une mise à
jour du système en manipulant la version
candidate (consultez Section 2.7.3, « Ajuster la version candidate »). Cette méthode est un remplacement
de paresseux des nombreuses et fastidieuses commandes « dpkg
-i
paquet-cassé_ancienne-version.deb
»
(consultez Section 2.6.6, « Récupération avec la commande dpkg »).
Recherchez les lignes du fichier
« /etc/apt/sources.list
» permettant de suivre
unstable
ayant la forme suivante :
deb http://deb.debian.org/debian/ sid main contrib non-free
Remplacez-la avec la suivante pour suivre testing
:
deb http://deb.debian.org/debian/ bookworm main contrib non-free
Configurez le fichier « /etc/apt/preferences
»
comme suit :
Package: * Pin: release a=testing Pin-Priority: 1010
Lancez « apt-get update; apt-get dist-upgrade
»
pour forcer l’installation à une version antérieure des paquets du système.
Supprimez ce fichier spécial
« /etc/apt/preferences
» après ce retour en
arrière d’urgence.
Astuce | |
---|---|
C’est une bonne idée de supprimer (sans purger) autant de paquets que possible afin de limiter les problèmes de dépendances. Vous devrez peut-être supprimer et installer manuellement un certain nombre de paquets afin de remettre le système dans un état antérieur. Le noyau de Linux, le gestionnaire d’amorçage, udev, PAM, APT, et les paquets relatifs au réseau ainsi que leurs fichiers de configuration demandent une attention particulière. |
Bien que le nom du responsable figure dans
« /var/lib/dpkg/available
» et
« /usr/share/doc/nom_paquet/changelog
» procure
quelques informations sur « qui se trouve derrière l’activité de
construction des paquets », celui qui a réellement envoyé le paquet est
un peu obscur. who-uploads
(1) dans le paquet
devscripts
identifie celui qui a réellement envoyé les
paquets sources Debian.
Si vous devez compiler un programme à partir de ses sources pour remplacer
un paquet Debian, le mieux est d’en faire un paquet local réellement
« debianisé » (*.deb
) et d’utiliser une archive
privée.
Si vous choisissez de compiler un programme depuis ses sources et de
l’installer plutôt sous « /usr/local
», vous
pouvez avoir besoin d’utiliser equivs
en dernier ressort
pour satisfaire les dépendances des paquets manquants.
Package: equivs Priority: optional Section: admin Description: Circumventing Debian package dependencies This package provides a tool to create trivial Debian packages. Typically these packages contain only dependency information, but they can also include normal installed files like other packages do. . One use for this is to create a metapackage: a package whose sole purpose is to declare dependencies and conflicts on other packages so that these will be automatically installed, upgraded, or removed. . Another use is to circumvent dependency checking: by letting dpkg think a particular package name and version is installed when it isn't, you can work around bugs in other packages' dependencies. (Please do still file such bugs, though.)
Pour des mises à niveau partielles du système stable
, il
est souhaitable de reconstruire un paquet dans son environnement en
utilisant le paquet source. Cela évite des mises à niveau massives de
paquets en raison de leurs dépendances.
Ajoutez les entrées suivantes au fichier
« /etc/apt/sources.list
» d’un système
stable
:
deb-src http://deb.debian.org/debian unstable main contrib non-free
Installez les paquets nécessaires à la compilation et téléchargez les sources comme suit :
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential # apt-get build-dep foo $ apt-get source foo $ cd foo*
Mettez à jour certains paquets de la chaîne d’outils tels que
dpkg
, et debhelper
à partir des
paquets rétroportés s’ils sont requis pour le rétroportage.
Exécutez ce qui suit :
$ dch -i
Incrémentez la version du paquet, en ajoutant, par exemple
« +bp1
» dans
« debian/changelog
»
Construisez les paquets et installez-les sur le système en faisant ce qui suit :
$ debuild $ cd .. # debi foo*.changes
Comme effectuer le miroir complet d’une sous-section d’une archive Debian
gaspille de l’espace disque et de la bande passante du réseau, il est
souhaitable, lorsque vous administrez de nombreux systèmes sur le LAN, de mettre en œuvre un serveur mandataire
(« proxy ») local pour APT. APT peut être configuré pour utiliser
un serveur mandataire web (http) générique comme squid
(consultez Section 6.5, « Autres serveurs d’applications réseau ») tel que
décrit dans apt.conf
(5) et dans
« /usr/share/doc/apt/examples/configure-index.gz
».
La variable d’environnement « $http_proxy
»
peut être utilisée pour outrepasser le serveur mandataire défini dans le
fichier « /etc/apt/apt.conf
».
Il y a des outils de proxy spécifiques pour l’archive Debian. Vous devriez consulter le BTS avant de les installer.
Tableau 2.19. Liste des outils de proxy spécifiques à l’archive Debian
paquet | popcon | taille | description |
---|---|---|---|
approx
|
V:0, I:0 | 6610 | serveur proxy avec cache pour les fichiers de l’archive Debian (programme OCaml compilé) |
apt-cacher
|
V:0, I:0 | 266 | proxy avec cache pour les paquets et les fichiers source Debian (programme Perl) |
apt-cacher-ng
|
V:4, I:5 | 1816 | proxy avec cache pour la distribution de paquets de logiciel (programme C++ compilé) |
Attention | |
---|---|
Lors que Debian réorganise la structure de son archive, ces outils de proxy spécialisés ont tendance à exiger que le code soit réécrit par le responsable du paquet et peuvent ne plus fonctionner pendant un certain temps. D’un autre côté, les serveurs mandataires web (http) génériques sont plus robustes et s’accommodent plus facilement de tels changements. |
Vous pouvez en apprendre davantage sur la gestion des paquets dans les documentations suivantes :
Documentations primaires sur la gestion des paquets :
aptitude
(8), dpkg
(1),
tasksel
(8), apt
(8),
apt-get
(8), apt-config
(8),
apt-key
(8), sources.list
(5),
apt.conf
(5), and apt_preferences
(5);
« /usr/share/doc/apt-doc/guide.html/index.html
»
et
« /usr/share/doc/apt-doc/offline.html/index.html
»
du paquet apt-doc
;
« /usr/share/doc/aptitude/html/en/index.html
»
du paquet aptitude-doc-fr
.
Documentations officielles et détaillées sur l’archive Debian :
Didacticiel pour la construction d’un paquet Debian pour les utilisateurs Debian :