dpkg(1)

NOM
dpkg - un gestionnaire de paquet pour Debian

SYNOPSIS
dpkg [options] action

AVERTISSEMENT
Ce manuel est destiné aux utilisateurs qui souhaitent aller au-delà de la commande dpkg --help pour la compréhension des options de la ligne de commande et des états des paquets. Les responsables de paquet qui veulent comprendre comment dpkg installe leur paquet ne doivent pas l'utiliser. Les descriptions concernant l'installation ou la désinstallation des paquets sont très insuffisantes.

DESCRIPTION
dpkg est un outil pour l'installation, la création, la suppression et la gestion des paquets Debian. aptitude(1) est la principale interface à dpkg et la plus agréable pour l'utilisateur. dpkg lui-même est entièrement contrôlé par des paramètres sur la ligne de commande. Une commande comporte exactement une action et zéro ou plusieurs options. Le paramètre « action » dit ce que dpkg doit faire et les options modifient l'action d'une manière ou d'une autre. On peut aussi utiliser dpkg comme une interface à dpkg-deb(1). Quand dpkg rencontre les actions suivantes, qui sont des actions de dpkg-deb, il lance simplement dpkg-deb avec les paramètres qui lui ont été fournis :
    -b, --build,
    -c, --contents,
    -I, --info,
    -f, --field,
    -e, --control,
    -x, --extract,
    -X, --vextract, et
    --fsys-tarfile.
Voyez dpkg-deb(1) pour des renseignements supplémentaires sur ces actions.

RENSEIGNEMENTS SUR LES PAQUETS
dpkg conserve des renseignements utiles sur les paquets disponibles. Cette information est divisée en trois classes : les états, les états de la sélection et les drapeaux. La modification de ces valeurs est principalement dévolue à dselect.

  ÉTATS DES PAQUETS

not-installed
    Le paquet n'est pas installé sur le système.

config-files
    Seuls les fichiers de configuration du paquet existent sur le système.

half-installed
    L'installation du paquet a commencé mais, pour une raison quelconque, ne s'est pas terminée.

unpacked
    Le paquet est dépaqueté mais n'est pas configuré.

half-configured
    Le paquet est dépaqueté et la configuration a commencé mais, pour une quelconque raison, ne s'est pas terminée.

triggers-awaited
    Le paquet attend l'exécution d'une action différée qui est à la charge d'un autre paquet.

triggers-pending
    Une action différée de ce paquet a été activée, il reste à l'exécuter.

installed
    Le paquet est dépaqueté et correctement configuré.

  ÉTATS DE LA SÉLECTION DES PAQUETS

install
    Le paquet est sélectionné pour être installé.

deinstall
    Le paquet est sélectionné pour être désinstallé (c.-à-d. qu'on veut supprimer tous les fichiers à l'exception des fichiers de configuration).

purge
    Le paquet est sélectionné pour être purgé (c.-à-d. qu'on veut supprimer tous les fichiers même les fichiers de configuration).

  DRAPEAUX DES PAQUETS

hold
    dpkg laisse de côté un paquet marqué hold, à moins qu'il ne soit lancé avec l'option de forçage --force-hold.

reinst-required
    Un paquet marqué reinst-required est défectueux et demande une réinstallation. dpkg ne peut supprimer de tels paquets, à moins qu'il ne soit lancé avec l'option de forçage --force-remove-reinstreq.

ACTIONS

-i, --install fichier-paquet...
    Installe le paquet. Si l'on donne l'option --recursive ou -R, fichier-paquet doit alors indiquer un répertoire. L'installation comporte les étapes suivantes :
    1. Extraction des fichiers de contrôle du nouveau paquet.
    2. Quand une ancienne version du même paquet est déjà installée, exécution du script prerm de l'ancien paquet.
    3. Lancement du script preinst, s'il est fourni par le paquet.
    4. Dépaquetage des nouveaux fichiers et, en même temps, sauvegarde des anciens de manière à pouvoir les restaurer si quelque chose tourne mal.
    5. Quand une ancienne version du même paquet est déjà installée, exécution du script postrm de l'ancien paquet. Il faut remarquer que ce script est exécuté après le script preinst du nouveau paquet, parce que les nouveaux fichiers sont écrits dans le même temps que les anciens sont supprimés.
    6. Configuration du paquet. Voyez l'action --configure pour savoir comment cela se passe.

--unpack fichier-paquet...
    Dépaquète le paquet, mais ne configure rien. Si l'on donne l'option --recursive ou -R, fichier-paquet doit alors indiquer un répertoire.

--configure paquet...|-a|--pending
    Reconfiguration d'un paquet dépaqueté. Si l'on donne l'option -a ou --pending au lieu de paquet, tous les paquets dépaquetés mais non configurés sont configurés. La configuration comporte les étapes suivantes :
    1. Unpack the conffiles, and at the same time back up the old conffiles, so that they can be restored if something goes wrong.
    2. Exécution du script postinst, s'il est fourni par le paquet.

--triggers-only paquet ...|-a | --pending
    N'exécute que les actions différées. Toutes les actions différées en attente seront traitées. Si des noms des paquets sont fournis, les actions différées de ces paquets seront traitées, une fois chacune lorsque nécessaire. L'utilisation de cette option peut laisser des paquets dans les états incorrects de triggers-awaited et de triggers-pending. Cela peut être corrigé plus tard en exécutant : dpkg --configure --pending.

-r, --remove, -P, --purge paquet...|-a|--pending
    Remove an installed package. -r or --remove remove everything except conffiles. This may avoid having to reconfigure the package if it is reinstalled later. (Conffiles are configuration files that are listed in the DEBIAN/conffiles control file). -P or --purge removes everything, including conffiles. If -a or --pending is given instead of a package name, then all packages unpacked, but marked to be removed or purged in file /var/lib/dpkg/status, are removed or purged, respectively. Note: some configuration files might be unknown to dpkg because they are created and handled separately through the configuration scripts. In that case, dpkg won't remove them by itself, but the package's postrm script (which is called by dpkg), has to take care of their removal during purge. La suppression d'un paquet comporte les étapes suivantes :
    1. Lancement du script prerm
    2. Suppression des fichiers installés
    3. lancement du script postrm

--update-avail, --merge-avail fichier-Paquets
    Met à jour l'information de dpkg et de dselect sur les paquets disponibles. L'action --merge-avail combine les informations anciennes avec celles qui proviennent du fichier fichier-Packages. L'action --update-avail remplace les informations anciennes par celles qui proviennent du fichier fichier-Packages. Le fichier fichier-Packages distribué avec Debian est appelé simplement Packages. dpkg garde son propre enregistrement des paquets disponibles dans /var/lib/dpkg/available. A simpler one-shot command to retrieve and update the available file is dselect update. Note that this file is mostly useless if you don't use dselect but an APT-based frontend: APT has its own system to keep track of available packages.

-A, --record-avail fichier-paquet...
    Met à jour l'information de dpkg et de dselect sur les paquets disponibles avec les informations qui proviennent de fichier-paquet. Si l'option --recursive ou -R est donnée, fichier-paquet doit indiquer un répertoire.

--forget-old-unavail
    Oublie ce qui concerne les paquets non installés ou non disponibles.

--clear-avail
    Efface les renseignements existants sur les paquets disponibles.

-C, --audit
    Recherche les paquets qui n'ont été que partiellement installés sur le système. dpkg suggère une manière de les faire fonctionner.

--get-selections [motif-nom-paquet...]
    Get list of package selections, and write it to stdout. Without a pattern, non-installed packages (i.e. those which have been previously purged) will not be shown.

--set-selections
    modifie la liste des sélections des paquets en lisant un fichier sur l'entrée standard. Le format de ce fichier doit être de la forme «<paquet> <état> », où état vaut « install », « hold », « deinstall » ou « purge ». Les lignes vides ou les lignes de commentaires débutant par « # » sont autorisées.

--clear-selections
    Met l'état de chaque paquet non essentiel à « deinstall ». Il faut utiliser cette option juste avant --set-selections, pour désinstaller les paquets qui ne sont pas affichés par --set-selections.

--yet-to-unpack
    Recherche les paquets qui ont été sélectionnés pour l'installation, mais qui pour une raison quelconque, ne sont pas encore installés.

--print-architecture
    Affiche l'architecture des paquets installés (par exemple, « i386 »).

--compare-versions ver1 op ver2
    Compare des numéros de version, où op est un opérateur binaire. dpkg retourne un zéro si la condition spécifiée est vérifiée, et retourne un nombre différent de zéro dans le cas contraire. Il y a deux groupes d'opérateurs ; ils diffèrent par leur façon de traiter l'absence de ver1 ou de ver2. Pour les opérateurs suivants, lt le eq ne ge gt, l'absence d'une version est considérée comme inférieure à toute version ; pour les opérateurs lt-nl le-nl ge-nl gt-nl, l'absence d'une version est considérée comme supérieure à toute version. Les opérateurs < << <= = >= >> > ne sont fournis que pour la compatibilité avec la syntaxe du fichier de contrôle.

--command-fd <n>
    Cette action accepte une série de commandes sur le descripteur du fichier d'entrée <n>. Note : des options supplémentaires définies sur la ligne de commande à travers ce descripteur de fichier ne sont pas redéfinies pour les commandes suivantes qui sont exécutées pendant la même séquence.

--help
    Affiche un court message d'aide.

--force-help
    Donne des renseignements sur les options --force-quelque-chose.

-Dh, --debug=help
    donne des renseignements sur les options de débogage.

--licence, --license
    Affiche la licence de dpkg.

--version
    Affiche la version de dpkg.

dpkg-deb actions
    Voyez dpkg-deb(1) pour des renseignements supplémentaires sur les actions suivantes.
    -b, --build répertoire [archive|répertoire]
        Construit un paquet deb.
    -c, --contents archive
        Liste le contenu d'un paquet deb.
    -e, --control nom-de-fichier [répertoire]
        Extrait les informations de contrôle d'un paquet.
    -x, --extract répertoire de l'archive
        Extrait et affiche les fichiers contenus dans un paquet.
    -f, --field nom-de-fichier [champ de contrôle] ...
        Affiche le(s) champ(s) de contrôle d'un paquet.
    --fsys-tarfile archive
        Affiche le contenu du fichier « tar » d'un paquet Debian.
    -I, --info nom-de-fichier [fichier de contrôle]
        Affiche des renseignements sur un paquet.

dpkg-query actions
    Voyez dpkg-query(1) pour davantage d'explications sur les actions suivantes.
    -l, --list package-name-pattern...
        List packages matching given pattern.
    -s, --status package-name...
        Report status of specified package.
    -L, --listfiles package-name...
        List files installed to your system from package-name.
    -S, --search filename-search-pattern...
        Search for a filename from installed packages.
    -p, --print-avail package-name...
        Display details about package-name, as found in
        /var/lib/dpkg/available. Users of APT-based frontends
        should use apt-cache show package-name instead.

OPTIONS
On peut spécifier une option à la fois sur la ligne de commande et dans le fichier de configuration de dpkg, /etc/dpkg/dpkg.cfg. Chaque ligne de ce fichier est soit une option (identique à une option en ligne de commande mais sans tiret), soit un commentaire, commençant par #.

--abort-after=nombre
    Modifie le nombre d'erreurs au delà duquel dpkg s'arrête. Il est par défaut égal à 50.

-B, --auto-deconfigure
    Quand un paquet est supprimé, il peut arriver qu'un paquet installé dépendait du paquet supprimé. En spécifiant cette option, on obtient la déconfiguration automatique du paquet qui dépendait du paquet supprimé.

-Doctal, --debug=octal
    Demande de débogage. octal est formé en faisant un « ou » logique entre des valeurs souhaitées appartenant à la liste ci-dessous (notez que ces valeurs pourront changer dans les prochaines versions). -Dh ou --debug=help affiche ces valeurs de débogage.
     nombre description
        1 Informations de progression
            en général utiles
        2 Appel et état des scripts du développeur
       10 Sortie pour chaque fichier traité
      100 De nombreuses sorties pour chaque fichier
            traité
       20 Sortie pour chaque fichier de configuration
      200 De nombreuses sorties pour chaque fichier
            de configuration
       40 Dépendances et conflits
      400 De nombreuses sorties pour les dépendances
            et les conflits 10000 Sortie sur l'activation et le traitement des actions différées 20000 De nombreuses sorties sur les actions différées 40000 Quantité stupide de sorties sur les actions différées
     1000 Beaucoup de radotage à propos du répertoire
            dpkg/info
     2000 Quantité stupide de radotage

--force-quelque-chose, --no-force-quelque-chose, --refuse-quelque-chose
    Forcer ou refuser (no-force et refuse signifient la même chose) de faire quelque chose. quelque-chose est une liste d'actions séparées par des virgules, décrites ci-après. --force-help affiche un message qui les décrit. Les actions marquées d'un (*) sont forcées par défaut. Avertissement : Ces options sont principalement destinées aux experts. Un usage auquel manque la pleine compréhension de leurs effets peut casser le système entier. all : Met en oeuvre (ou pas) toutes les options de forçage. downgrade(*) : Installe un paquet, même si une version plus récente du paquet est déjà installée. Avertissement : Pour l'instant, dpkg ne recherche pas les dépendances lors d'un retour à une version inférieure d'un paquet\ ; il ne vous préviendra pas si la version choisie casse les dépendances d'un autre paquet. Cela peut avoir de sérieuses conséquences ; et si l'on revient à des versions antérieures des programmes essentiels du système, cela peut rendre votre système inutilisable. N'utiliser qu'avec précaution. configure-any : Configure aussi les paquets dépaquetés mais non configurés dont dépend le paquet en question. hold : Traite même les paquets marqués « à garder » (« hold »). remove-reinstreq : Supprime un paquet, même défectueux et marqué comme demandant une réinstallation. Il se peut, dès lors, que des éléments du paquet restent dans le système et soient oubliés par dpkg. remove-essential : supprime un paquet même s'il est considéré comme indispensable. Les paquets « Essential » comportent les commandes Unix les plus fondamentales et les enlever peut casser le système entier. Il faut utiliser cette option avec prudence. depends : Change tous les problèmes de dépendance en avertissements. depends-version : Ignore les versions dans les questions de dépendance. breaks: Force l'installation, même si cela risque de casser un autre paquet. conflicts : Installe un paquet, même s'il est en conflit avec un autre paquet. C'est dangereux car habituellement cela produit le remplacement de certains fichiers. confmiss: Always install a missing conffile. This is dangerous, since it means not preserving a change (removing) made to the file. confnew : Quand un « conffile » a été modifié, toujours installer la nouvelle version et ne rien demander, sauf si l'option --force-confdef est aussi présente, auquel cas l'action par défaut est choisie. confold : Quand un « conffile » a été modifié, garder l'ancienne version et ne rien demander, sauf si l'option --force-confdef est aussi présente, auquel cas l'action par défaut est choisie. confdef : Utilise toujours l'action par défaut quand un « conffile » a été modifié. Quand il n'y a pas d'action par défaut, la commande s'arrête et interroge l'utilisateur, à moins que l'option --force-confnew ou l'option --force-confold n'ait été donnée, auquel cas elle se sert de ces options pour déterminer ce qu'il faut faire. overwrite : Remplace un fichier par un fichier d'un autre paquet. overwrite-dir : Remplace un répertoire par un répertoire d'un autre paquet. overwrite-diverted : Remplace un fichier détourné avec une version non détournée. architecture : Traite même les paquets d'une autre architecture bad-path : Programmes importants non visibles par la variable PATH, ce qui va poser des problèmes. not-root : Tente de (dés)installer même sans être root. bad-verify : Installe un paquet même si la vérification de son authenticité a échoué.

--ignore-depends=paquet,...
    Ne tient pas compte de la vérification des dépendances pour les paquets spécifiés (en fait, la vérification est faite mais on ne donne rien d'autre que des avertissements).

--new, --old
    Sélectionne soit l'ancien format des paquet binaires, soit le nouveau. C'est une option de dpkg-deb(1).

--nocheck
    Ne pas lire ni vérifier le contenu du fichier de contrôle pendant la construction d'un paquet. C'est une option de dpkg-deb(1).

--no-act, --dry-run, --simulate
    Faire tout ce qui doit être fait, mais n'écrire aucune modification. On utilise cette option pour voir ce qui se passe sans modifier quoi que ce soit. Assurez-vous de donner l'option --no-act avant le paramètre action, sinon des résultats fâcheux sont probables. Par exemple, la commande dpkg --purge foo --no-act purge d'abord le paquet foo et essaie ensuite de purger le paquet --no-act, même si vous comptiez qu'elle ne ferait rien du tout.

-R, --recursive
    Traite récursivement tous les simples fichiers qui correspondent au motif *.deb et qui se trouvent dans les répertoires et sous-répertoires spécifiés. On peut utiliser cette option avec les actions -i, -A, --install, --unpack et --avail.

-G  Ne pas installer un paquet si une version plus récente de ce paquet est déjà installée. C'est un alias pour --refuse-downgrade.

--admindir=dir
    Modifie le répertoire d'administration par défaut, qui contient de nombreux fichiers donnant des informations au sujet de l'état des paquets installés ou non, etc. (Le répertoire par défaut étant /var/lib/dpkg)

--instdir=repertoire
    Change le répertoire d'installation par défaut qui indique où les paquets vont être installés. instdir est aussi le nom du répertoire indiqué à chroot(2) avant que ne soient lancés les scripts d'installation, ce qui signifie que ces scripts voient instdir comme répertoire racine. (Le répertoire par défaut est /).

--root=répertoire
    Modifier root change instdir par répertoire et admindir par dir/var/lib/dpkg.

-O, --selected-only
    Traiter seulement les paquets qui sont sélectionnés pour l'installation. La sélection est réellement faite par dselect ou par dpkg quand ils manipulent les paquets. Par exemple, quand un paquet est supprimé, il est marqué comme ayant été sélectionné pour une désinstallation.

-E, --skip-same-version
    Ne pas installer le paquet si la même version du paquet est déjà installée.

--status-fd n
    Envoie un état du paquet compréhensible par la machine et met à jour cette information dans le fichier de description n. Cette option peut être spécifiée plusieurs fois. L'information est généralement constituée d'un enregistrement par ligne, dans l'une des formes suivantes :

    status: paquet: status
        L'état du paquet a changé ; le status est tel que dans le fichier d'état ( «status file »).

    status: paquet : erreur : message-d'erreur-complet
        Une erreur s'est produite. Malheureusement, lors de l'écriture il se trouve que message-d'erreur-complet peut contenir des retour à la ligne, alors que dans les locales où les traducteurs n'ont pas fait d'erreurs, chaque nouvelle ligne est suivie par au moins une espace.

    status: fichier : conffile-prompt : 'real-old' 'real-new' useredited distedited
        User is being asked a conffile question.

    traitement: stage: paquet
        Envoyé juste avant le début du traitement d'un stage. Les stages sont upgrade, install (les deux sont envoyés avant le dépaquetage), configure, trigproc, remove, purge.

--log=fichier
    Enregistre la modification de l'état, la mise à jour ou l'action sur fichier au lieu de l'habituel /var/log/dpkg.log. Si cette option est donnée plusieurs fois, le dernier fichier est utilisé. Les messages d'enregistrement sont de la forme AAAA-MM-JJ HH:MM:SS status <état> <paquet> <version-installée> pour les modifications d'état et les mises à jour. Pour une action, où <action> est « install», « upgrade », « remove » ou « purge », le message est de la forme AAAA-MM-JJ HH:MM:SS <action> <paquet> <version-installée> <version-disponible>. Pour une modification de conffile, le message est de la forme AAAA-MM-JJ HH:MM:SS conffile <fichier> <décision> ou <décision> est soit install soit keep.

--no-debsig
    Ne pas tenter de vérifier la signature des paquets.

--no-triggers
    Durant ce traitement ne pas lancer d'actions différées (les activations seront toujours enregistrées). S'il est utilisé avec --configure paquet ou --triggers-only paquet alors le postinst du paquet sera toujours exécuté même si seule l'exécution d'une action différée est nécessaire. L'utilisation de cette option peut laisser des paquets dans les mauvais états triggers-awaited et triggers-pending. Cela peut être corrigé plus tard en exécutant dpkg --configure --pending.

--triggers
    Annule un précédent --no-triggers.

FICHIERS

/etc/dpkg/dpkg.cfg
    Fichier de configuration contenant les options par défaut.

/var/log/dpkg.log
    Fichier journal standard. Voyez /etc/dpkg/dpkg.cfg(5) et l'option --log.

Les autres fichiers répertoriés ici sont dans leur répertoire par défaut, voyez l'option --admindir pour savoir changer l'emplacement de ces fichiers.

/var/lib/dpkg/available
    Liste des paquets disponibles.

/var/lib/dpkg/status
    États des paquets disponibles. Ce fichier contient des informations qui permettent de savoir si un paquet est marqué comme devant être supprimé ou pas, devant être installé ou pas, etc. Voyez la section RENSEIGNEMENTS SUR LES PAQUETS pour des informations supplémentaires.

Les fichiers suivants font partie d'un paquet binaire. Voyez deb(5) pour des informations supplémentaires :

control

conffiles

preinst

postinst

prerm

postrm

VARIABLES D'ENVIRONNEMENT

DPKG_NO_TSTP
    Donnez lui une valeur si vous préférez que dpkg lance un nouvel interpréteur de commandes plutôt que de s'interrompre, pour faire un appel à l'interpréteur de commandes.

SHELL
    Le programme exécuté par dpkg quand il lance un nouvel interpréteur de commandes.

COLUMNS
    Fixe le nombre de colonnes utilisés par dpkg lorsqu'il affiche un texte formaté. Seule l'action -l se sert actuellement de cette variable.

EXEMPLES
Pour afficher les paquets liés au programme vi(1) :
    dpkg -l '*vi*'
Pour voir les entrées de /var/lib/dpkg/available concernant deux paquets:
    dpkg --print-avail elvis vim | less
Pour rechercher vous-même dans la liste des paquets :
    less /var/lib/dpkg/available
Pour supprimer le paquet installé elvis :
    dpkg -r elvis
Pour installer un paquet, vous devez d'abord le trouver dans une archive ou sur un cédérom. Le fichier « available » montre que le paquet vim se trouve dans la section « editors » :
     cd /cdrom/pool/main/v/vim
     dpkg -i vim_4.5-3.deb
Pour faire une copie locale des états de sélection des paquets :
    dpkg --get-selections >myselections
Vous pourriez transférer ce fichier sur un autre ordinateur et l'installer de cette manière :
    dpkg --clear-selections
    dpkg --set-selections <myselections
On remarquera que cela n'installe ou ne supprime rien du tout ; cela ne fait qu'enregistrer l'état souhaité des paquets. Vous aurez besoin d'autres applications pour récupérer et installer réellement les paquets requis. Par exemple, exécutez apt-get dselect-upgrade. Habituellement, vous trouverez que dselect(1) fournit une façon plus aisée de modifier les états de sélection des paquets.

FONCTIONNALITÉS SUPPLÉMENTAIRES
D'autres possibilités sont offertes en installant les paquets suivants : apt, aptitude et debsums.

VOIR AUSSI
aptitude(1), apt(1), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5) et dpkg-reconfigure(8).

BOGUES
L'option --no-act ne donne pas assez d'informations utiles.

AUTEURS
Consultez /usr/share/doc/dpkg/THANKS pour la liste de ceux qui ont contribué à dpkg.

TRADUCTION
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.