[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ suivant ]


Guide de référence pour Debian
Chapitre 6 - Gestion des paquets Debian


aptitude est désormais le frontal en mode texte pour APT à utiliser de préférence. Il se rappelle des paquets que vous avez installés volontairement et quels paquets ont été ajoutés par dépendance ; ces derniers sont automatiquement désinstallés par aptitude lorsqu'ils ne sont plus nécessaires à un paquet installé volontairement. Il possède des fonctions avancées de filtrage des paquets mais elles peuvent être difficiles à configurer.

synaptic est désormais le frontal graphique GTK pour APT à utiliser de préférence. Ses fonctions de filtrage des paquets sont plus faciles à utiliser que celles d'aptitude. Il possède aussi un support expérimental pour les Debian Package Tags (balises de paquets Debian).

Pour réduire la charge réseau des dépôts Debian et accélérer vos téléchargements, vous devriez récupérer vos paquets depuis les miroirs Debian.

Si vous devez installer le même paquet sur plusieurs machines de votre réseau local, vous pouvez configurer un proxy HTTP local en utilisant squid pour les paquets téléchargés par APT. Si nécessaire, positionnez la variable d'environnement http_proxy ou la variable http dans /etc/apt/apt.conf.

Bien que la fonction de pinning d'APT décrite dans apt_preferences(5) soit puissante, ses effets peuvent être difficiles à comprendre et à gérer. Vous devriez la considérer comme une Fonction Avancée.

L'utilisation de la méthode décrite dans chroot, Section 8.6.35 est utile pour simultanément assurer à la fois la stabilité du système et l'accès aux dernières versions des programmes.

Ce chapitre est basé sur un système d'après Woody. Certaines fonctions peuvent nécessiter un système Sarge, ou plus récent.


6.1 Introduction

Si lire toute la documentation pour les développeurs est trop pour vous, lisez d'abord ce chapitre et commencez à goûter à la puissance de Debian avec testing/unstable :-)


6.1.1 Outils de gestion des paquets principaux

     dpkg      – installation de paquets Debian
     apt-get   – frontal pour APT en ligne de commande
     aptitude  – frontal avancé pour APT en mode texte et ligne de commande
     synaptic  – frontal pour APT en mode graphique GTK
     dselect   – gestion des paquets à l'aide de menus
     tasksel   – installation de tâches

Ces outils ne sont pas tous des alternatives. Par exemple dselect utilise à la fois APT et dpkg.

APT utilise /var/lib/apt/lists/* pour suivre les paquets disponibles tandis que dpkg utilise /var/lib/dpkg/available. Si vous avez installé des paquets directement en utilisant aptitude ou un autre frontal pour APT et que vous voulez utiliser dselect pour installer des paquets, assurez-vous de mettre à jour le fichier /var/lib/dpkg/available en sélectionnant [M]ise à jour dans le menu de dselect (ou en exécutant dselect update).

apt-get récupère automatiquement les paquets dont un paquet demandé dépend. Il n'installe pas les paquets recommandés ou suggérés par le paquet demandé.

aptitude au contraire peut être configuré pour installé les paquets recommandés ou suggérés.

dselect présente à l'utilisateur une liste de paquets qu'un paquet sélectionné recommande ou suggère et permet de les sélectionner ou pas. Voir Dépendances des paquets, Section 2.2.8.


6.1.2 Outils pratiques

     dpkg-reconfigure  - reconfigure un paquet déjà installé
                         (s'il utilise debconf)
     dpkg-source       - gère les paquets sources
     dpkg-buildpackage - automatise la création d'un paquet
     apt-cache         - recherche un paquet dans le cache local

6.2 Bases de la gestion de paquets Debian


6.2.1 Configurer APT

Configurer sources.list comme décrit dans Préparation de la transition (« stable » vers « testing »), Section 5.2. [25] Référez-vous aussi à Installation du système Debian, Chapitre 3, Mise à jour d'une distribution vers testing, Chapitre 5 and Editeurs de sauvetage, Section 11.2.


6.2.2 Installation de tâches

Vous pouvez installer des ensembles de paquets habituellement nécessaires pour certaines utilisations d'un système Debian. Ces ensembles de paquets sont appelés « tâches ».

Le moyen le plus simple d'installer des tâches lors de l'installation initiale est d'utiliser tasksel. Notez que vous devez exécuter

     dselect update

avant de l'utiliser.

aptitude permet aussi d'installer des tâches et c'est l'outil recommandé pour cela. Il permet de désélectionner des paquets dans les tâches avant de procéder à l'installation.


6.2.3 aptitude

aptitude est un programme d'installation de paquets par sélection dans des menus, similaire à dselect mais développé de zéro au-dessus d'APT. Il peut être utilisé comme alternative à apt-get pour la plupart des commandes. Voir aptitude(1) et /usr/share/doc/aptitude/README.

aptitude en plein écran accepte des commandes à une touche, généralement en minuscule.

     Touche   Action
     F10      Menu
     ?        Aide (listing complet)
     u        Mise à jour des informations de l'archive de paquets
     +        Marque un paquet pour mise-à-jour ou installation
     -        Marque un paquet pour suppression (garde la configuration)
     _        Marque un paquet pour purge (supprime la configuration)
     =        Place un paquet en maintien
     U        Marque tous les paquets qui peuvent être mis à jour
     g        Téléchargement et installation des paquets sélectionnés
     q        Sortie de l'écran courant et sauvegarde des changements
     x        Sortie de l'écran courant sans sauvegarde
     Enter    Visualisation d'information sur un paquet
     C        Visualisation des changements d'un paquet
     |        Change la limite des paquets affichés
     /        Recherche la première occurence
     \        Répète la dernière recherche

Comme apt-get, aptitude installe les dépendances d'un paquet demandé. aptitude offre aussi une option pour récupérer les paquets qui sont recommandés ou suggérés par un paquet à installer. Vous pouvez changer ce comportement en choisissant F10 -> Options -> Dependency handling dans le menu.

Autres avantages d'aptitude :


6.2.4 dselect

Dans les versions stables jusqu'à Potato inclus, dselect était l'outil de gestion des paquets principal. Pour Sarge, il est recommandé d'utiliser aptitude à la place.

Quand dselect est lancé, il sélectionne automatiquement tous les paquets « Required », « Important » et « Standard ».

dselect a une interface utilisateur déroutante. La plupart des utilisateurs s'y font cependant. Il a quatre commandes (en majuscules !) :

     Touche      Action
     Q           Quitter. Confirme la sélection courante et quitte 
                 (passe outre les dépendances).
     R           Rétablir. Je ne voulais pas faire ça.
     D           (Damn it!) Je me fiche de ce que dselect pense. Fais comme ça !
     U           Positionne tout dans l'état sUggéré.

Avec D et Q, vous pouvez sélectionner des paquets en conflit à vos risques et périls. Faites attention en utilisant ces commandes.

Ajoutez une ligne « expert » dans /etc/dpkg/dselect.cfg pour réduire la quantité d'informations affichée.

Si votre machine exécute dselect lentement, vous pouvez lancer dselect sur une machine plus rapide pour trouver les paquets et utiliser apt-get install sur la machine lente pour les installer.


6.2.5 Suivre une distribution avec APT

Pour suivre la distribution testing au fur et à mesure de ses changements, votre fichier /etc/apt/preferences doit ressembler à cela :

     Package: *
     Pin: release a=testing
     Pin-Priority: 800
     
     Package: *
     Pin: release a=stable
     Pin-Priority: 600

Attention : suivre la version testing de Debian a l'effet de bord de recevoir très lentement les correctifs de sécurité. Ces paquets sont envoyés dans unstable et migrent vers testing seulement après un certain délai.

Voir apt_preferences(5) pour des exemples plus compliqués qui vous permettront, par exemple, de suivre testing tout en installant certains paquets de unstable.

Des exemples de /etc/apt/preferences qui bloquent certains paquets importants dans leur version la plus stable en suivant la version moins stable d'autres paquets non essentiels sont disponibles dans le sous-répertoire d'exemples dans les fichiers preferences.testing et preferences.unstable.

Si vous mélangez les versions de Debian, testing dans stable ou unstable dans stable, vous pourriez récupérer sans le vouloir des paquets importants, comme libc6, de testing ou unstable et il n'y a aucune garantie qu'ils ne soient pas bogués. Vous êtes prévenus.

Aussi, le fichier preferences.stable force tous les paquets à faire une mise à niveau inférieur vers stable.

La mise à niveau inférieur depuis une version plus récente d'un paquet n'est pas supportée officiellement dans Debian. Cependant, vous pouvez avoir à mettre à niveau inférieur un paquet spécifique pour réinstaller une version d'un paquet qui marche lorsque la nouvelle version ne fonctionne pas. Vous pouvez trouver ces paquets précédents localement dans /var/cache/apt/archives/ ou à distance sur http://snapshot.debian.net/. Voir aussi Sauvetage avec dpkg, Section 6.3.3.

La mise à niveau inférieur depuis une version plus récente d'une distribution n'est pas non plus supportée officiellement et risque de poser des problèmes. Cependant, cela peut valoir le coup d'essayer en dernier recours si vous êtes désespérés.


6.2.6 Commandes aptitude, apt-get et apt-cache

Pour fonctionner avec testing comme décrit dans l'exemple précédent, le système peut être géré avec les commandes suivantes :

Dans les exemples précédents, l'utilisation de l'option -u permet qu'apt-get affiche la liste des paquets qui seront mis à jour et demande à l'utilisateur de confirmer avant de continuer. Ce qui suit permet de configurer l'option -u par défaut :

     $ cat >> /etc/apt/apt.conf << .
     // Always show packages to be upgraded (-u)
     APT::Get::Show-Upgraded "true";
     .

Utilisez l'option --no-act pour simuler des actions sans les effectuer.


6.3 Commandes de survie Debian

Avec ces connaissances, on peut vivre une vie d'éternelle mise à jour :-)


6.3.1 Rechercher les bogues de Debian et demander de l'aide

Si vous avez des problèmes avec un paquet, consultez ces sites en premier avant de demander de l'aide ou de remplir un rapport de bogue. (lynx, links et w3m fonctionnent bien) :

     $ lynx http://bugs.debian.org/
     $ lynx http://bugs.debian.org/package-name  # si vous connaissez
                                           # le nom du paquet
     $ lynx http://bugs.debian.org/bugnumber     # si vous connaissez
                                           #le numéro du bogue

Utilisez le moteur de recherche Google (www.google.com) en incluant « site:debian.org » comme mot-clé.

En cas de doute, lisez la documentation. Positionnez CDPATH comme suit :

     export CDPATH=.:/usr/local:/usr/share/doc

et tapez

     $ cd packagename
     $ pager README.Debian # s'il existe
     $ mc

Plus de ressources sont listées dans Support Debian, Chapitre 15.


6.3.2 Résolution de problèmes de mise à jour avec APT

Des problèmes de dépendances peuvent arriver lors de la mise à jour avec unstable/testing, comme décrit dans Mise à jour du système Debian, Section 5.3. La plupart du temps, c'est parce qu'un paquet qui doit être mis à jour possède une dépendance qui n'est pas trouvée. Ces problèmes sont résolus en utilisant

     # aptitude dist-upgrade

Si cela ne marche pas, répétez les opérations suivantes jusqu'à ce que le problème se résolve tout seul :

     # aptitude -f upgrade         # continue « upgrade » malgré les erreurs
     ... ou
     # aptitude -f dist-upgrade    # continue « dist-upgrade » malgré les erreurs

De mauvais scripts de mise à jour peuvent causer des problèmes récurrents. Il est recommandé de résoudre ce genre de situations en consultant les scripts /var/lib/dpkg/info/packagename.{post,pre}{inst,rm} du paquet en question et de lancer :

     # dpkg --configure -a    # configure les paquets partiellement installés

Si un script se plaint d'un fichier de configuration manquant, cherchez dans /etc le fichier de configuration correspondant. Si un fichier de configuration avec une extension .dpkg-new (ou quelquechose similaire) existe, renommez-le (mv) en un fichier sans suffixe.

Des problèmes de dépendances peuvent survenir en installant des paquets de unstable/testing. Il existe des moyens de passer outre les dépendances.

     # aptitude -f install package # passe outre les dépendances non résolues

Une autre méthode pour résoudre ces problèmes est d'utiliser le paquet equivs. Voir Le paquet equivs, Section 6.5.2. Voir /usr/share/doc/equivs/README.Debian et Le paquet equivs, Section 6.5.2.


6.3.3 Sauvetage avec dpkg

Si vous n'arrivez plus à utiliser APT vous pouvez télécharger les paquets sur un miroir Debian et les installer en utilisant dpkg. Si vous n'avez pas accès au réseau, vous pouvez chercher des copies des paquets dans /var/cache/apt/archives/.

     # dpkg -i fetchmail_6.2.5-4_i386.deb

Si l'installation d'un paquet de cette façon échoue à cause d'une dépendance non résolue, et que vous avez vraiment besoin d'installer le paquet, vous pouvez ignorer les dépendances en utilisant --ignore-depends, --force-depends et d'autres options avec dpkg. Voir See dpkg(8) pour plus de détails.


6.3.4 Récupérer les données de sélection des paquets

Si /var/lib/dpkg/status est corrompu, le système Debian perd les données de sélection des paquets et en est grandement affecté. Cherchez le vieux fichier /var/lib/dpkg/status dans /var/lib/dpkg/status-old ou /var/backups/dpkg.status.*.

Garder /var/backups/ dans une partition séparée peut être une bonne idée puisque ce répertoire contient beaucoup de données système importantes.

Si le vieux fichier /var/lib/dpkg/status n'est pas disponible, vous pouvez quand même récupérer les données depuis des répertoires de /usr/share/doc/.

     # ls /usr/share/doc | \
       grep -v [A-Z] | \
       grep -v '^texmf$' | \
       grep -v '^debian$' | \
       awk '{print $1 " install"}' | \
       dpkg --set-selections
     # dselect --expert # réinstallez le système, utilisez dselect si besoin

6.3.5 Sauver un système après avoir perdu /var

Comme le répertoire /var contient des données mises à jour régulièrement, comme le mail, il est plus susceptible de corruption que, par exemple /usr/. Le placer dans une partition indépendante limite les risques. Si le pire arrive, vous pouvez avoir à reconstruire le répertoire /var pour sauver le système Debian.

Obtenez la structure du répertoire /var à partir d'un système Debian qui fonctionne, basé sur la même ou une plus ancienne version de Debian, par exemple /var, et placez la à la racine du système cassé. Ensuite

     # cd /
     # mv var var-old      # s'il reste des données utiles
     # tar xvzf var.tar.gz # utilisez la structure de Woody
     # aptitude            # ou dselect

Cela doit fournir un système qui fonctionne. Vous pouvez récupérer les sélections de paquets en utilisant la technique décrite à Récupérer les données de sélection des paquets, Section 6.3.4. ([FIXME]: Cette procédure nécessite plus de tests.)


6.3.6 Installer un paquet sur un système qui ne démarre plus

Démarrez Linux en utilisant une disquette/CD de sauvetage Debian ou une autre partition sur un système Linux multi-boot. Voir Démarrer le système, Section 8.1. Montez le système qui ne démarre plus sur /target et utilisez le mode d'installation chroot de dpkg.

     # dpkg --root /target -i packagefile.deb

Configurez ensuite et résolvez les problèmes.

Au fait, si c'est seulement un lilo cassé qui empêche le démarrage, vous pouvez démarrer avec le disque de sauvetage standard Debian. A l'invite de démarrage, en considérant que la partition racine de Linux est sur /dev/hda12 et que vous souhaitez le niveau de fonctionnement 3, entrez :

     boot: rescue root=/dev/hda12 3

Vous avez maintenant démarré un système presque complètement fonctionnel avec le noyau de la disquette. (Il peut y avoir de petits problèmes dus au manque d'options du noyau ou de modules.)


6.3.7 Que faire si dpkg est cassé

Cela pose de sérieux problèmes pour l'installation des fichiers .deb. Les commandes suivantes vous guident pour récupérer cette situation. (Sur la première ligne, vous pouvez remplacer « links » par votre navigateur favori.)

     $ links http://http.us.debian.org/debian/pool/main/d/dpkg/
       ... téléchargez le bon dpkg_version_arch.deb
     $ su
     password: *****
     $ ar x dpkg_version_arch.deb
     # mv data.tar.gz /data.tar.gz
     # cd /
     # tar xzfv data.tar.gz

Pour une machine i386, http://packages.debian.org/dpkg peut aussi être utilisé comme URL.


6.4 Commandes « nirvana » de Debian

A la lumière de ces commandes, on sera sauvé de l'éternelle lutte karmique contre l'enfer de la mise à jour afin d'atteindre le nirvana Debian. :-)


6.4.1 Informations sur un fichier

De l'information sur un fichier peut être trouvée avec :

     $ dpkg {-S|--search} pattern # cherche « pattern »
                                  # parmi les paquets installés
     $ wget http://ftp.us.debian.org/debian/dists/sarge/Contents-i386.gz
     $ zgrep -e pattern Contents-i386.gz
                  # cherche « pattern » parmi les fichiers de l'archive Debian

Sinon, utilisez les commandes spécialisées pour les paquets :

     # aptitude install dlocate
     $ dlocate filename
              # solution de rechange rapide pour dpkg -L et dpkg -S
     ...
     # aptitude install auto-apt # outil d'installation de paquets à la demande
     # auto-apt update          # crée le fichier db pour auto-apt
     $ auto-apt search pattern
              # recherche exhaustive dans l'archive de paquets, installés ou non

6.4.2 Informations sur un paquet

Cherche et affiche les informations sur un paquet. Assurez-vous qu'apt pointe vers la bonne archive en éditant /etc/apt/sources.list. Si vous voulez voir les différences entre un paquet de testing/unstable et un paquet installé, utilisez apt-cache policy—plutôt sympa.

     # apt-get   check          # met à jour le cache et vérifie les dépendances
     $ apt-cache search  texte  # cherche un paquet à partir de "texte"
     $ apt-cache policy  paquet # information sur la priorité d'un paquet
     $ apt-cache show -a paquet # affiche la description d'un paquet
                                  dans toutes les distributions
     $ apt-cache showpkg paquet # informations de debogage sur un paquet
     # dpkg  --audit|-C         # cherche les paquets partiellement installés
     $ dpkg {-s|--status} paquet ... # état et description d'un paquet installé
     $ dpkg -l paquet ...       # état du paquet installé (1 ligne)
     $ dpkg -L paquet ...       # liste les noms des fichiers installés
                                  par le paquet

apt-cache showsrc n'est pas documenté à la sortie de Woody, mais fonctionne :)

Vous pouvez aussi trouver des informations sur les paquets (j'utilise mc pour naviguer) dans :

     /var/lib/apt/lists/*
     /var/lib/dpkg/available

La comparaison des fichiers suivants fournit des informations sur ce qu'il s'est exactement passé lors des dernières installations.

     /var/lib/dpkg/status
     /var/backups/dpkg.status*

6.4.3 Installation automatique avec APT

Pour une installation non interactive, ajoutez la ligne suivante dans /etc/apt/apt.conf :

     Dpkg::Options {"--force-confold";}

C'est l'équivalent de lancer aptitude -y install packagename ou apt-get -q -y install packagename. Parce que cela répond automatiquement « oui » à toutes les questions, cela peut causer des problèmes, aussi faites attention en utilisant cette astuce. Voir apt.conf(5) et dpkg(1).

Vous pouvez configurer les paquets par la suite en suivant Reconfigurer les paquets installés, Section 6.4.4.


6.4.4 Reconfigurer les paquets installés

Utilisez les commandes suivantes pour reconfigurer un paquet installé.

     # dpkg-reconfigure --priority=medium package [...]
     # dpkg-reconfigure --all   # reconfigure tous les paquets
     # dpkg-reconfigure locales # génère de nouvelles locales
     # dpkg-reconfigure --p=low xserver-xfree86 # reconfigure le serveur X

Faites cela pour debconf si vous avez besoin de changer le mode de dialogue de debconf de façon permanente.

Certains logiciels sont livrés avec des scripts de configuration. [27]

     apt-setup     - crée /etc/apt/sources.list
     install-mbr   - installe un gestionnaire de Master Boot Record
     tzconfig      - configure le fuseau horaire local
     gpmconfig     - configure le gestionnaire de souris gpm
     eximconfig    - configure Exim (MTA)
     texconfig     - configure teTeX
     apacheconfig  - configure Apache (httpd)
     cvsconfig     - configure CVS
     sndconfig     - configure le système sonore
     ...
     update-alternatives - configure la commande par défaut ;
                           par exemple, vim pour vi
     update-rc.d         - gestion des scripts de démarrage System-V
     update-menus        - système de menus Debian
     ...

6.4.5 Enlever et purger des paquets

Enlever un paquet en gardant la configuration :

     # aptitude remove package ...
     # dpkg  --remove package ...

Enlever un paquet et sa configuration :

     # aptitude purge package ...
     # dpkg    --purge        package ...

6.4.6 Garder de vieux paquets

Par exemple, pour garder libc6 et libc6-dev lors de l'utilisation de dselect et aptitude install paquet, on peut utiliser les commandes suivantes :

     # echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections

aptitude install paquet ne sera pas gêné par cela. Pour garder un paquet en forçant une mise à niveau inférieur automatique avec aptitude upgrade paquet ou aptitude dist-upgrade, ajoutez ce qui suit dans /etc/apt/preferences :

     Package: libc6
     Pin: release a=stable
     Pin-Priority: 2000

Ici, l'entrée « Package: » ne peut pas utiliser d'entrées comme « libc6* ». Si vous voulez garder tous les paquets binaires liés au paquet source glibc synchronisés, il faut les lister explicitement.

La commande suivante liste les paquets à garder :

     dpkg --get-selections "*"|grep -e "hold$"

6.4.7 Système mixte stable/testing/unstable

apt-show-versions peut lister les versions des paquets disponibles dans chaque distribution.

     $ apt-show-versions | fgrep /testing | wc
     ... nombre de paquets de testing
     $ apt-show-versions -u
     ... liste de paquets qu'il est possible de mettre à jour
     $ aptitude install `apt-show-versions -u -b | fgrep /unstable`
     ... met à jour tous les paquets de unstable à leur dernière version

6.4.8 Supprimer les paquets du cache

Les installations de paquets avec APT laissent des fichiers de paquets dans le cache /var/cache/apt/archives ; ce cache doit être nettoyé.

     # aptitude autoclean # efface les fichiers de paquets inutiles
     # aptitude clean     # efface tous les fichiers de paquets du cache

6.4.9 Enregistrer/copier la configuration du système

Pour faire une copie locale de l'état de la sélection des paquets :

     # debconf-get-selections > debconfsel.txt
     # dpkg --get-selections "*" >myselections   # ou utiliser \*

"*" inclut aussi les noms des paquets à purger dans myselections.

Vous pouvez transférer ce fichier vers un autre ordinateur, et l'installer avec :

     # dselect update
     # debconf-set-selections < debconfsel.txt
     # dpkg --set-selections <myselections
     # apt-get -u dselect-upgrade    # ou dselect install

6.4.10 Porter un paquet vers le système stable

Pour des mises à jour partielles du système stable, recréer un paquet pour l'environnement utilisé à partir des sources est recommandé. Cela évite de nombreuses mises à jour de paquets à cause des dépendances. D'abord, ajouter l'entrée suivante dans /etc/apt/sources.list :

     deb-src http://http.us.debian.org/debian testing \
      main contrib non-free
     deb-src http://http.us.debian.org/debian unstable \
      main contrib non-free

Chaque entrée de deb-src est ici scindée en deux lignes à cause de contraintes d'impression, mais les entrées réelles dans sources.list doivent tenir en une seule ligne.

Ensuite, récupérez les sources et construisez un paquet :

     $ apt-get update  # met à jour la liste des paquets source
     $ apt-get source package
     $ dpkg-source -x package.dsc
     $ cd package-version
       ... cherche parmi les paquets requis (Build-Depends dans le fichier .dsc)
           et les installe. Il faut le paquet « fakeroot » aussi.
     
     $ dpkg-buildpackage -rfakeroot 
     
       ...ou (si pas de signature)
     $ dpkg-buildpackage -rfakeroot -us -uc # utilisez « debsign »
                                              ensuite si nécessaire
     
       ...ensuite pour installer
     $ su -c "dpkg -i packagefile.deb"

Normalement, il n'y a besoin d'installer que peu de paquets avec un suffixe « -dev » pour satisfaire les dépendances. debsign est dans le paquet devscripts. auto-apt peut aider à résoudre les dépendances. L'utilisation de fakeroot évite une utilisation non nécessaire du compte root.

Dans Woody, ces problèmes de dépendances peuvent être simplifiés. Par exemple, pour compiler le paquet source de pine :

     # apt-get build-dep pine
     # apt-get source -b pine

6.4.11 Archive locale de paquets

Afin de créer une archive locale de paquets qui soit compatible avec les systèmes APT et dselect, un fichier Packages doit être créé et les fichiers de paquets ont besoin d'être archivés dans un arbre de répertoires particulier.

Un dépôt local similaire à une archive officielle Debian peut être créé avec :

     # aptitude install dpkg-dev
     # cd /usr/local
     # install -d pool # les paquets physiques sont placés ici
     # install -d dists/unstable/main/binary-i386
     # ls -1 pool | sed 's/_.*$/ priority section/' | uniq > override
     # editor override # ajustez priority et section
     # dpkg-scanpackages pool override /usr/local/ \
        > dists/unstable/main/binary-i386/Packages
     # cat > dists/unstable/main/Release << EOF
     Archive: unstable
     Version: 3.0
     Component: main
     Origin: Local
     Label: Local
     Architecture: i386
     EOF
     # echo "deb file:/usr/local unstable main" \
        >> /etc/apt/sources.list

Autrement, un dépôt local peut être créé de façon rapide et sale :

     # aptitude install dpkg-dev
     # mkdir /usr/local/debian
     # mv /some/where/package.deb /usr/local/debian
     # dpkg-scanpackages /usr/local/debian /dev/null | \
       gzip - > /usr/local/debian/Packages.gz
     #  echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list

Ces archives peuvent être accédées à distance en fournissant ces répertoires aux méthodes HTTP ou FTP des entrées du fichier /etc/apt/sources.list.


6.4.12 Convertir ou installer un paquet non Debian

alien permet de convertir des paquets binaires fournis aux formats rpm de Red Hat, slp de Stampede, tgz de Slackware, et pkg de Solaris en paquet deb de Debian. Si vous voulez utiliser un paquet d'une autre distribution Linux, vous pouvez utiliser alien pour le convertir vers votre format de paquet préféré et l'installer. alien supporte aussi les paquets LSB.


6.4.13 Installation automatique

auto-apt est une commande d'installation de paquets à la demande.

     $ sudo auto-apt update
      ... met à jour la base de données
     $ auto-apt -x -y run
     Entering auto-apt mode: /bin/bash
     Exit the command to leave auto-apt mode.
     $ less /usr/share/doc/med-bio/copyright # accède un fichier non existant
      ... installe le paquet qui fournit ce fichier
      ... installe aussi les dépendances

6.4.14 Vérifier les fichiers de paquets installés

debsums permet la vérification des fichiers de paquets installés grâce à des sommes de contrôle MD5. Certains paquets n'ont pas de somme de contrôle MD5. Une solution temporaire pour les administrateurs système :

     # cat >>/etc/apt/apt.conf.d/90debsums
     DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";};
     ^D

par Joerg Wendland joergland@debian.org (non testé).


6.4.15 Améliorer le fichier sources.list

En bref, mes efforts pour optimiser sources.list n'ont pas réellement apporté de gain de performance pour moi qui vit aux Etats-Unis. J'ai choisi manuellement un site proche avec apt-setup.

apt-spy crée un fichier sources.list automatiquement en testant chaque site sur son temps de latence et sa bande passante. netselect-apt crée un fichier sources.list plus complet, mais utilise une méthode moins bonne pour choisir le meilleur miroir (comparaison des temps de ping).

     # aptitude install apt-spy
     # cd /etc/apt ; mv sources.list sources.list.org
     # apt-spy -d testing -l sources.apt

6.5 Autres particularités de Debian


6.5.1 La commande dpkg-divert

dpkg-divert force dpkg à ne pas installer un fichier à sa place par défaut, mais à une place détournée. Les détournements peuvent être utilisés dans les scripts de paquets Debian pour déplacer un fichier qui crée un conflit. Les administrateurs système peuvent utiliser ceci pour recouvrir les fichiers de configuration d'un paquet, ou lorsque des fichiers (non marqués comme des fichiers de configuration) ont besoin d'être préservés par dpkg, lors de l'installation d'une version plus récente d'un paquet qui contient ces fichiers (voir Préservation de la configuration locale, Section 2.2.4).

     # dpkg-divert [--add]  filename # ajoute un détournement
     # dpkg-divert --remove filename # supprime un détournement

Ne pas utiliser dpkg-divert si cela n'est pas absolument nécessaire.


6.5.2 Le paquet equivs

Si vous compilez un programme depuis les sources, il est mieux d'en faire un paquet Debian (*.deb). equivs est le dernier recourt.

     Package: equivs
     Priority: extra
     Section: admin
     Description: Passer outre les dépendances de paquets.
      C'est un paquet qui peut être utilisé pour créer des paquets Debian qui ne
      contiennent que des informations sur les dépendances.

6.5.3 Commandes de rechange

Pour utiliser vim à la place de vi, utilisez update-alternatives :

     # update-alternatives --display vi
     ...
     # update-alternatives --config vi
       Selection    Command
     -----------------------------------------------
           1        /usr/bin/elvis-tiny
           2        /usr/bin/vim
     *+    3        /usr/bin/nvi
     
     Enter to keep the default[*], or type selection number: 2

Les commandes de rechange du système sont maintenues dans /etc/alternatives en tant que liens symboliques.

Pour avoir votre environnement de fenêtres X favori, appliquez update-alternatives à /usr/bin/x-session-manager et /usr/bin/x-window-manager. Pour plus de détails, voir Sessions X personnalisées, Section 9.4.5.1.

/bin/sh est un lien direct de /bin/bash ou /bin/ash. Il est plus sûr d'utiliser /bin/bash pour garder la compatibilité avec de vieux scripts bash mais /bin/ash permet d'être plus discipliné et d'être compatible POSIX. La mise à jour vers un noyau Linux 2.4 a tendance à positionner ce lien vers /bin/ash.


6.5.4 Utilisation des niveaux de fonctionnement

Lorsqu'ils sont installés, la plupart des paquets Debian configurent leurs services pour être lancés dans les niveaux de fonctionnement 2 à 5. Ainsi, il n'y a pas de différence entre les niveaux 2, 3, 4 et 5 sur un système Debian qui n'a pas été personnalisé ; Debian laisse à l'administrateur local le soin de configurer les niveaux de fonctionnement comme décrit dans Personnaliser les niveaux de fonctionnement, Section 2.4.3. Cela diffère de la façon dont les niveaux de fonctionnement sont gérés dans d'autres distributions GNU/Linux populaires. Un changement que vous pouvez vouloire faire est de désactiver xdm ou gdm dans le niveau de fonctionnement 2 pour que X ne soit pas démarré à la fin de la séquence de démarrage ; vous pouvez alors le démarrer en passant au niveau 3.

Pour plus d'information sur les niveaux de fonctionnement, voir Niveaux de fonctionnement, Section 2.4.2.


6.5.5 Services désactivés

Les développeurs Debian prennent très au sérieux la sécurité du système. Beaucoup de services sont installés avec le minimum de fonctions activées.

Exécutez ps aux ou consultez le contenu de /etc/init.d/* et /etc/inetd.conf, si vous avez des doutes (à propos d'Exim, DHCP, ...). De plus, consultez /etc/hosts.deny de la même façon qu'à la section Contrôle des connexions avec PAM, Section 9.2.1. La commande pidof est aussi utile (voir pidof(8)).

X11 ne permet pas les connexions TCP/IP (distantes) par défaut dans les versions récentes de Debian. Voir Utiliser X sur TCP/IP, Section 9.4.6. La redirection X est aussi désactivée dans SSH. Voir Connexion à un serveur X distante – ssh, Section 9.4.8.


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ suivant ]


Guide de référence pour Debian

CVS, jeu 18 jan 2007 11:52:23 UTC

Osamu Aoki osamu#at#debian.org
Traduction en Français : Guillaume Erbs gerbs#at#free.fr
Auteurs, Section A.1