Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
15 mars 2010




apt

apt

Gestion des paquets Debian

   Les distributions Gnu/Linux offrent une palette de logiciels divers. Afin de gérer tout ces logiciels, un système de centralisation a été mis en place. Actuellement Debian maintient 30 000 paquets environ.

Fonctionnement des Releases

   4 versions de Debian sont disponible : Experimental, unstable, testing et stable. Chacune correspondant à un stade du développement. Un logiciel peut donc exister dans plusieurs releases, mais dans des versions différentes.

   Les paquets Experimental sont des logiciels en cours de développements, non finalisés. Le statut unstable est plus courant, utilisé pour les nouveaux logiciel ou nouvelles versions. Après de nombreux tests, si le paquet n'a pas de bogues critique, il passe dans la branche testing. Puis après de long mois de tests, si le logiciel est considéré comme très fiable, il passe dans la branche stable.

   Il est donc évident que la branche la plus sûr est la stable, mais les versions des logiciels ne sont pas à jours à cause du temps nécessaire aux tests. La branche testing semble être un bon compromis mais elle pose un problème: les dépendances. En effet, pour qu'un paquet puisse passer de unstable à testing, toutes ses dépendances doivent le suivre dans cette branche en même temps, ce qui est impossible tant que certaines subissent des mises à jours régulières.

Paquet Debian

   Sous Debian, chaque logiciel est fournis sous forme de paquet de type deb. Ces paquets contiennent tous les fichiers nécessaires à l'installation, la configuration et la suppression du logiciel. Ces paquets sont manipulés à l'aide d'un outil: dpkg.

   Afin de centraliser ces logiciels, on utilise des serveurs de dépôts, généralement accessibles depuis internet. Ils permettent de télécharger et installer des logiciels, ou de les mettre à jour. il existe donc des dépôts officiels, mais chacun est libre de créer son propre serveur "non-officiel" et de maintenir ses logiciels. De nombreux logiciels libres sont maintenus par leur développeurs, sur leurs propre serveur de dépôt.

   Ces dépôts existent sous d'autres formes, par exemple sur un cd-rom (utilisé pour l'installation de Debian). le problème étant que les paquet ne peuvent pas être mis à jours à moins de regraver des cd-roms avec les paquets à jours. Il permettent néanmoins d'installer des logiciels sur des ordinateurs qui ne sont pas reliés à internet. Vous pouvez également maintenir un dépôt miroir - complet ou partiel - des dépôts officiels.

   Debian possède un mécanisme de gestion de ces dépôts. il permet de télécharger depuis ces serveurs de dépôt la liste des programmes maintenus ainsi que leurs versions. l'installation se fera ainsi aussi simplement qu'un “aptitude install logiciel” pour que le système télécharge le paquet et l'installe automatiquement. plusieurs outils et fichiers sont utilisés pour cela : apt-get et aptitude permettent d'installer, supprimer ou mettre à jours des logiciels.

   /etc/apt/sources.list est le fichier qui liste les serveurs de dépôt auprès desquels seront téléchargés les paquets. dpkg est un utilitaire pour manipuler les paquets deb.
^
15 mars 2010




apt-get

apt-get

Gestionnaire de paquet debian

update Permet de resynchroniser un fichier répertoriant les paquets disponibles et sa source.
upgrade Permet d'installer les versions les plus récentes de tous les paquets présents sur le système.
dselect-upgrade Utilisé conjointement avec dselect. Suit les modifications faites par dselect dans le champ statut des paquets disponibles, et effectue les actions nécessaires à la réalisation de cet état.
dist-upgrade Effectue la fonction upgrade en y ajoutant une gestion intelligente des changements de dépendances dans les nouvelles versions des paquets. Essaye quand c'est possible de mettre à niveau les paquets les plus importants au dépends des moins important.
install Permet d'installer des paquets. un '-' pour supprimer, et "+" pour installer. on peut aussi spécifier une version pas "=version", et une distri: "/distri". les motifs fonctionnent avec ".", " ?" ou "*", ou encore "^" ou "$".
remove identique à install mais permet de supprimer des paquets
source récupère des paquets sources. si l'option --compile est spécifiée, le paquet est compilé en un binaire .deb avec dpkg-buildpackage. si --download-only est spécifié, le source n'est pas décompacté. on peut récupérer une version particulière avec "=version"
build-dep installe ou supprime des paquets dans le but de satisfaire les dépendances de construction d'un paquet source.
check outil de diagnostic; met à jour le cache des paquets et cherche des dépendances défectueuses.
clean nettoie le référentiel local des paquets récupérés. Supprime tout, excepté le fichier lock situé dans /var/cache/apt/archives et /var/cache/apt/archives/partial.
autoclean idem à clean, mais ne supprime que les paquets qui ne peuvent plus être téléchargés et qui sont grandement inutiles

OPTIONS

   Toutes les options peuvent être mises dans le fichier de configuration. On peut annuler le fichier de configuration avec -f-, --no-f, -f=no ou d'autres variantes.

-d, --download-only récupération seule (APT::Set::Download-Only)
-f, --fix-broken Essaye de réparer un système dont les dépendances sont défectueuses (APT::Get::Fix-Broken)
-m, --ignore-missing, --fix-missing Ignore les paquet manquants ; si des paquets ne peuvent être récupérés, ou après récupération, ne satisferons pas au contrôle d'intégrité, cette commande met ces paquets de côté et gère le résultat. (APT::Get::Fix-Missing)
--no-download pas de récupération. Le mieux est d'utiliser cette options avec --ignore-missing pour forcer apt à n'utiliser que les .deb qu'il a déjà récupéré. (APT::Get::Download)
-q, --quiet Mode silencieux ; cette commande produit une sortie destiné à l'enregistrement dans un journal en omettant les indicateurs de progression. On peut utiliser "q=#" pour choisir le niveau de silence. -qq ne DOIT pas être utilisé sans -d, --print-uris ou -s. (quiet)
-s, --simulate, --just-print, --dry-run, --recon, --no-act Simule les actions. Les crochets encadrent les paquets défectueux et crochet sans rien indique les dommages sans conséquence.(APT::Get::Simulate).
-y, --yes, --assume-yes répond automatiquement aux questions par "oui" (APT::Get:Assume-Yes)
-u, --show-upgraded affiche les paquets mis à niveau ; affiche une liste des paquets à mettre à niveau. (APT::Get::Show-Upgraded)
-V, --verbose-version Affiche les versions complètes des paquets installés ou mis à niveau.(APT::Get::Show-Versions)
-b, --compile, --build compile un paquet source (APT::Get::Compile)
--ignore-hold Ignore le "hold" placé" sur un paquet. Peut être utile avec dist-upgrade pour annuler un grand nombre de "hold" indésirable (APT::Get::Ignore-Hold)
--no-upgrade Aucune mise à niveau. Utilisé avec install, empêche les paquets listés sur la ligne de commande d'être mis à niveau (APT::Get::Upgrade)
--force-yes Forcer l'acceptation. Peut détruire le système ! (APT::Get::force-yes)
--print-uris Au lieu d'aller chercher les paquets à installer, leur uri sont affichées.(APT::Get::Print-URIs)
--purge Permet de supprimer tout ce qui peut être supprimé (APT::Get::Purge)
--reinstall Réinstalle les paquets déjà installés avec leur version la plus récente (APT::Get::ReInstall)
--list-cleanup activé par défaut : --no-list-cleanup pour la désactiver. gère automatiquement le contenu de /var/lib/apt/lists afin d'assurer que les fichiers obsolètes soient effacés. (APT::Get::List-Cleanup)
-t, --target-release, --default-release Contrôle l'entrée par défaut pour les question de distribution. Une étiquette (pin) par défaut dont la priorité vaut 990 est crée en utilisant la chaîne spécifiée. Le fichier de préférence peut annuler cette décision. ex : -t'2.1*' ou -t unstable. (APT::Default-release)
--trivial-only ne réalise que les opérations triviales (répond à non a toutes les questions) (APT::Get::Trivial-Only)
--no-remove Empêche la suppression de paquets. (APT::Get::Remove)
--only-source la commande source acceptera seulement des noms de paquets source comme argument, et non les nom de paquets binaires correspondant. (APT::Get::Only-Source)
--diff-only, --tar-only Ne récupère que le fichier diff ou tar d'une archive source.(APT::Get::Diff-Only et APT::Get::Tary-Only)
--arch-only Ne traiter que les dépendances de construction pour telle architecture (APT::Get::Arch-Only)
--allow-unauthenticated Ignore le fait que les paquets ne peuvent pas être authentifiés (APT::Get::AllowUnauthenticated)
-v, --version version du programme
-c, --config-file fichier de configuration.
-o, --option donne une option de configuration. ex : -o Foo::Bar=bar

Fichiers

/etc/apt/sources.list Liste les emplacements où aller chercher les paquets (Dir::Etc::SourceList)
/etc/apt/apt.conf Fichier de configuration (Dir::Etc::Main)
/etc/apt/apt.conf.d/ Éléments du fichier de configuration (Dir::Etc::Parts)
/etc/apt/preferences Fichier des préférences. C'est dans ce fichier qu'on peut faire de l'étiquetage (pining) c'est à dire choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente. (Dir::Etc::Preferences)
/var/cache/apt/archives/ Zone de stockage pour les paquets récupérés (Dir::Cache::Archives)
/var/cache/apt/archives/partial/ Zone de stockage pour les paquets en transit (Dir::Cache::Archives)
/var/lib/apt/lists/partial/ Zone de stockage pour les informations d'état des paquets en transit (Dir::State::Lists)
^
15 mars 2010




apt-proxy

apt-proxy

Mise en place d'un proxy de dépôts

   Apt-proxy est un mandataire écrit en python pour apt-get. Il communique via HTTP avec les clients et via HTTP, FTP et rsync vers les serveurs. Il est utile pour limiter la consommation de bande passante Internet utilisé pour les mises à jours par exemple. le fichier de configuration par défaut est /etc/apt-proxy/apt-proxy-v2.conf (modifiable avec l'option -c ou --config-file=)

configuration

   il est divisé en plusieurs sections, chacune définissant une ressource. La section DEFAULT s'applique à toutes les sections.

[DEFAULT]

address Adresse IP sur laquelle apt-proxy sera à l'écoute des requêtes, s'il y'a plusieurs adresses, séparez-les par un espace.
port Port TCP pour l'écoute des requêtes
min_refresh_delay les fichiers Packages et les autres fichiers de contrôle ne seront pas rafraîchis tant qu'ils n'auront pas dépassé cet âge (off pour désactiver)
timeout Délai d'attente d'E/S maximale pour les transferts (défaut 30s)
cache_dir répertoire de cache (défaut : /var/cache/apt-proxy)
cleanup_freq période entre les tentatives de nettoyage : suppression des fichier › max_age, analyse des répertoires de cache, mise à jour des tables internes, etc (off pour désactiver)
max_age age maximal des fichiers avant leur effacement du cache (off pour désactiver)
max_versions nombre maximum de version d'un paquet debian à conserver (par distribution) (off pour désactiver)
passive_ftp pour utiliser le ftp passif utiliser on, pour un actif : off (défaut : on)
http_proxy [username:passwrd@host:port] pour utiliser un proxy
dynamic_backends apt-proxy ajoutera les dorsaux HTTP dynamiquement, s'ils ne sont pas définit mettre à off pour restreindre les dorsaux disponibles à ceux listés dans le fichier de configuration (défaut : on)
disable_pipelining utiliser la canalisation HTTP pour récupérer plusieurs fichiers en une fois. laisser désactivé pour le moment.
bandwidth_limit = valeur limite la bande passante à valeur octets pas seconde lors du téléchargement sur un serveur. ne s'applique qu'à http et rsync (défaut : pas de limite)

[RESSOURCES]

timeout Supplanter le temps global d’expiration
backends = protocole ://serveur/répertoire [...] Une liste d’une ou plusieurs URL des serveurs hébergeant les paquets debian.

        Protocole protocole à utiliser parmi http, ftp et rsync
        Serveur nom d’hôte du miroir à contacter
        Répertoire nom du répertoire où ajouter des demandes pour ce serveur

passive_ftp Supplanter la configuration globale de passive_ftp
bandwidth_limit Spécifie une limite de bande passante pour les téléchargements utilisant cette ressource
http_proxy [nom d’utilisateur:mot de passe@]nom d’hôte:port
min_refresh_delay Surcharge la variable globale « min_refresh_delay » pour cette dorsale.

[CLIENTS]

pour que les clients puissent se connecter au proxy, ils devrons mettre dans /etc/apt/sources.list: si vous avez la section debian comme ceci:
[debian]
backends = http://ftp.fr.debian.org/debian
alors un client utilisera:
deb http://serveur:9999/debian/ lenny main

apt-proxy-import

   permet d'importer les paquets dans le cache d'apt-proxy

        -v, --verbose mode verbeux
        -q, --quiet mode silencieux
        -r, --recursive mode récursif
        -c, --config-file= fichier de configuration d'apt-proxy

        importer depuis le cache apt
        apt-proxy-import /var/cache/apt/archives
        importer depuis le cache apt-move
        apt-proxy-import -r /var/cache/apt-move
       
exemple de fichier de configuration /etc/apt-proxy/apt-proxy-v2.conf
[DEFAULT]
address = 192.168.0.1
    
port = 9999
min_refresh_delay = 1h
complete_clientless_downloads = 1
debug = all:4 db:0
timeout = 15
cache_dir = /var/cache/apt-proxy
cleanup_freq = 1d
max_age = 120d
max_versions = 3
[debian]
timeout = 30
backends = http://ftp.fr.debian.org/debian
http://volatile.debian.org/debian-volatile
min_refresh_delay = 1d
    
[security]
;;Debian security archive
backends = http://security.debian.org
http://security.debian.org/debian-security
min_refresh_delay = 1m
    
[ubuntu]
;;Ubuntu archive
backends = http://archive.ubuntu.com/ubuntu
min_refresh_delay = 15m
    
[ubuntu-security]
;;Ubuntu security updates
backends = http://security.ubuntu.com/ubuntu
min_refresh_delay = 1m

^
15 mars 2010




apt.conf

apt.conf

apt.conf est le principal fichier de configuration de la collection d'outils APT

   Chaque outil lit la config désigné par APT_CONFIG, puis lit les fichiers situés dans Dir::Etc::Parts ainsi que le principal fichier de config indiqué par Dir::Etc::main. Puis applique les options de la ligne de commande.

   Le fichier de configuration est construit comme un arbre d'options organisées en groupes fonctionnels.

        // indique un commentaire ainsi que /bin /boot /dev /etc /home /initrd.img /initrd.img.old /KSMserver__0 /lib /lib64 /lost+found /media /mnt /opt /proc /root /run /sbin /srv /STORAGE /sys /tmp /usr /var /vmlinuz /vmlinuz.old articles/ html/ images/ man/ md/ pdf/ sql/ temp/ tex/ threads/
        ; le point-virgule est obligatoire


        On peut déclarer un nouveau champ d´action avec des accolades, comme suit:
APT {
    Get {
        Assume-Yes "true";
        Fix-Broken "true";
    };
};
    
ou
    
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure —apt";};

Le groupe APT

   Ce groupe d'options contrôle le comportement global d'APT et contient également des options communes à tous les outils.

Architecture Architecture du système
Default-Release Indique la distribution à utiliser par défaut. Exemple : stable, testing, 4.0, 5.0.
Ignore-Hold ignore les paquets gelés.
Clean-Installed la fonction autoclean supprime du cache tout paquet qui ne peut plus être récupéré.
Immediate-Configure Désactive la configuration immédiate. option dangereuse !
Force-LoopBreak autorise APT à supprimer temporairement un paquet essentiel pour mettre fin à une boucle Conflicts / Conflicts ou Conflics / Pre-Depends entre 2 paquets essentiels. Options dangereuse !!
Cache-Limit APT utilise un fichier de cache chargé en mémoire avec map pour ranger les information sur les paquets disponibles. Fixe la taille mémoire allouée pour le chargement du cache.
Build-Essential définit les paquets qui sont considérés comme faisant partie des dépendance essentielles pour la construction de paquets.
Get Sous section qui contrôle apt-get
Cache sous-section qui contrôle apt-cache
CDROM sous-section qui contrôle apt-cdrom

Le groupe ACQUIRE

   Ce groupe d'options contrôle le téléchargement des paquets et les gestionnaires d'URI

PDIffs Essaye de télécharger les fichiers différentiels appelées PDiffs au lieux de télécharger le paquet entièrement. Par défaut à true.
Queue-Mode Mode de file d'attente ; peut prendre les valeurs host ou access. Cela détermine comment APT parallélise les connexions sortantes. Host signifie qu'une connexion par cible sera initié, access signifie qu'une connexion par type d'URI sera initié.
Retries Nombre d'essais à effectuer
Source-Symlinks Utilise les liens symboliques pour les archives sources. A true (défaut) crée un lien vers les archives sources au lieu de les copier
http http::Proxy est le mandataire http à utiliser par défaut : http://[[user][:pass]@]host[:port]/. On peut spécifier un mandataire par hôte distant http::Proxy::‹host›. Le mot clé DIRECT indique alors de n'utiliser aucun mandataire pour l'hôte. Définie, la variable d'environnement http_proxy annule et remplace toutes les options de mandataire HTTP.

   3 options de configuration sont fournies pour le contrôle des caches.

        No-Cache signifie que le mandataire ne doit jamais utiliser les réponses qu'il a stockés ;
        Max-Age sert pour les fichiers d'index : demande au cache de les mettre à jour au delà d'une période spécifiée en seconde. Debian met à jour quotidiennement.
        No-Store sert pour les fichiers d'archive et demande au cache de ne jamais garder la requête.
        timeout positionne le compteur de temps mort (timeout).

   Une options permet de contrôler la profondeur du tube pour le cas où le serveur distant n'est pas conforme à la RFC ou est bogué. Acquire::http::Pipeline-Depth a une valeur compris entre 0 et 5. Indique le nombre de requêtes en attente qui peuvent être émises. utiliser 0 si non conforme a là RFC.

https identique à http.

        CaInfo spécifie le fichier contenant les informations sur les certificats.
        Verify-Peer (bool) précise si le certificat d'hôte du serveur doit être confronté aux certificats.
        Verify-Host (bool) précise s'il faut vérifier le nom d'hôte du serveur
        SslKey détermine quelles clé privée doit être utilisée pour l'authentification du client
        SslForceVersion permet de spécifier la version de SSL : 'TLSv1' ou 'SSLv3' chacune de ces options peut être spécifié pour un hôte particulier en utilisant ‹hôte›::option

ftp ftp::Proxy est le mandataire FTP à utiliser par défaut : ftp://[[user][:pass]@]host[:port]/. On peut spécifier un mandataire par hôte distant avec la syntaxe : ftp::Proxy::‹host›. Le mot clé DIRECT indique alors de n'utiliser aucun mandataire pour l'hôte. Définie, la variable d'environnement ftp_proxy annule et remplace toutes les options de mandataire HTTP.options semblables a http
cdrom la seule options pour les uri de cdrom est le point de montage : cdrom::Mount : "/cdrom/"::Mount "foo" ;
gpgv URI gpgv

Comment APT appel DPKG

options liste d'options à passer à dpkg. doivent être déclarés en utilisant la notation de liste et chaque élément de la liste est passé comme un seul argument.
Pre-Invoke, Post-Invoke liste de commande shell à exécuter avant ou après l'appel de dpkg Pre-Install-Pkgs : Liste de commandes shell à exécuter avant d'appeler dpkg. utilise /bin/sh. On peut utiliser une 2eme version de ce protocole avec DPkg::Tools::Options::cmd::Version à 2. cmd est une commande passée à Pre-Install-Pkgs
Run-Directory APT se place dans ce répertoire avant d'appeler dpkg. / par défaut
Build-Options Ces options sont passées à dpkg-buildpackage lors de la compilation des paquets

Options PERIODIC et ARCHIVE

   les groupes d'options APT::Periodic et APT::Archive configurent les comportements périodiques réalisés par /etc/cron.daily/apt, lancé quotidiennement.

APT::Periodic Permet de configurer la fréquence d'exécutions des tâches apt lancées automatiquement.
APT::Archive Les options de la section APT::Archive permettent de contrôler la taille du cache de paquets.
^
15 mars 2010




aptitude

aptitude

gestionnaire de paquet debian évolué

   Aptitude est un utilitaire qui s'appuie sur apt-get et dpkg. Il possède de nombreuses options et un mode interactif. C'est l'utilitaire le plus complet pour gérer les logiciels.

Commandes

Install installe un ou plusieurs paquets. les caractères tilde et point d'interrogation peuvent être utilisés.

        - pour installer une version spécifique ajouter "=‹version›".
        - pour choisir un paquet d'une archive précise spécifier par "/‹archive›"
        - les attributs de surcharge permettent de forcer une actions:

                ‹paquet›+ installer le paquet
                ‹paquet›+M Installer le paquet et le marquer comme installé.
                ‹paquet›- Supprimer le paquet
                ‹paquet›_ Purger le paquet avec tous ses fichiers de configuration
                ‹paquet›= Marque le paquet comme étant à conserver : annule toute action d'installation, de mise a jour automatique dans le futur
                ‹paquet›: Garde le paquet à sa version actuelle : annule toute action d'installation, de mise a jour ou de suppression
                ‹paquet›&m Marque le paquet comme ayant été installé automatiquement.

        cas particulier: install sans argument résout les commandes en suspend ou différées.
        Note: Si vous confirmez l'install, puis annulez pendant l'install en cour, il faudra les supprimer pour annuler complètement l'installation.

remove, purge, hold, unhold, keep, reinstall identiques à install avec les options, mais s'applique a tous les paquets spécifiés.
hold et keep la différence est que hold ignorera safe-upgrade ou full-upgrade pour les paquets spécifiés. keep annule toutes actions sur le paquet, pour dévérouiller, utiliser unhold
markauto, unmarkauto indique que les paquets ont été marqués comme installés automatiquement, ou à la main.
build-depends, build-dep satisfait les "build-dependency" d'un paquet. avec le paramètre --arch-only, seul les build-dependency dépendant de l'architecture seront satisfait.
forbid-version empêche la mise a jour vers une version précise d'un paquet. ex : aptitude forbid-version vim=1.2.3.broken-4
update identique à apt-get update
safe-upgrade met à jour, les paquets ne seront pas supprimés à moins qu'ils soient inutilisés. Des paquets non installés peuvent être installés a moins que l'option --no-new-installs soit spécifié.
full-upgrade met à jour, supprime ou installe les paquets si nécessaire. Moins conservative que safe-upgrade
keep-all annule toutes les actions prévues sur des paquets.
forget-new Ignore les nouveaux paquets ("f" en mode interactif)
search rechercher des paquets. le premier caractère indique l'état courant du paquet:

        p non installé
        c désinstallé mais les fichiers de configuration existent toujours
        i paquet installé
        v paquet virtuel
        le 2eme caractère indique l'action prévu:
        i à installer
        d à supprimer
        p à purger
        A a été installé automatiquement

show Afficher des informations détaillées sur un ou plusieurs paquets. l'option -v ou -vv affiche les informations sur toutes les versions du paquets

        - pour afficher les informations d'une version particulière, suffixer par =‹version›
        - pour afficher les informations sur une version d'une archive particulière, suffixer par /‹archive›

add-user-tag, remove-user-tag ajoute un tag user ou le supprime. Les tags user sont des chaînes arbitraire associés à un paquet. Ils peuvent être utilisés avec le terme de recherche ?user-tag(‹tag›) qui permet de sélectionner tous les paquet qui ont ce tag.
why, why-not explique la raison particulière associé avec un paquet qui devrait ou ne devrait pas être installé sur le système. Cherche les paquets qui dépendent ou sont en conflit avec ce paquet
clean Supprime tous les paquets .deb téléchargés et enregistrés dans le répertoire cache (/var/cache/apt/archives)
autoclean supprime tous les paquets .deb téléchargés dans le cache et qui n'est plus proposé au téléchargement
changelog télécharge et affiche le journal des modifications pour chaque paquet source ou binaire. on peut spécifier =‹version› et /‹archive›
download télécharge le .deb dans le dossier courant. on peut spécifier =‹version› et /‹archive›
extract-cache-subset copie le dossier de configuration (/etc/apt) dans le dossier spécifié. Si aucun paquet n'est spécifié, copie la base entière, sinon, seul les entrées correspondant au paquets spécifiés seront copiés.

OPTIONS

   Ces options permettent de modifier le comportement des commandes aptitude.

--add-user-tag ‹tag› ajoute un tag user
--add-user-tag-to ‹tag›,‹pattern› idem avec correspondance de motif
--allow-new-upgrades en mode safe resolver, permet au résolveur de dépendance d'installer les mises a jour pour les paquets sans regarder la valeur de Aptitude::Safe-Resolver::No-new-Upgrades.
--allow-new-installs permet à safe-upgrade d'installer les nouveaux paquet (ou Aptitude::Always-Use-Safe-Resolver a true), permet au résolveur de dépendance d'installer des nouveaux paquets. cette option ne tient pas compte de Aptitude::Safe-Resolver::No-New-Installs.
--allow-untrusted Installe les paquets depuis des sources non-sûres sans demander confirmation.
--disable-columns aptitude search ne formate pas sa sortie correspond à Aptitude::CmdLine::Disable-Columns.
-D, --show-deps pour les commandes qui vont installer ou supprimer des paquets (install, full-upgrade, etc), montre une brève explication. correspond à l'option : Aptitude::CmdLine::Show-Deps.
-d, --download-only N´installe ni ne supprime aucun paquet. Télécharge simplement les paquets nécessaires dans le cache. Directive du fichier de configuration : Aptitude::CmdLine::Download-Only.
-F ‹format›, --display-format ‹format› Définit le format qui sera utilisé pour afficher les résultats de la commande search. Par exemple, « %p %V %v » affichera le nom du paquet, numéro de la version installée, les versions disponibles. Directive du fichier de configuration : Aptitude::CmdLine::Package-Display-Format.
-f Essaye de résoudre les dépendances des paquets cassés, même si cela implique d´ignorer des actions demandées sur la ligne de commande. Directive du fichier de configuration : Aptitude::CmdLine::Fix-Broken.
--full-resolver Quand un problème de dépendance est rencontré, utilise le mode "full" du résolveur au lieu du mode "safe". Permet de force le full même si Aptitude::Always-Use-Safe-Resolver est true.
-h, --help Affiche un court message d´aide. Identique à l´action help.
--no-new-installs safe-upgrade n'installe pas de nouveau paquets. Quand --safe-resolver est utilisé ou Aptitude::Always-Use-Safe-Resolver a true, interdit au résolver l'installation de nouveaux paquets. Ne tient pas compte de Aptitude::Safe-Resolver::No-New-Installs. Correspond à Aptitude::CmdLine::Safe-Upgrade::No-New-Installs.
--no-new-upgrades --safe-resolver ou Aptitude::Always-Use-Safe-Resolver. Autorise le resolver à installer de nouveaux paquets. Ne tient pas compte de Aptitude::Safe-Resolver::No-New-Installs.
-O ‹ordre›, --sort ‹ordre› spécifie l'ordre de sortie de search. Par exemple : « installsize » pour ‹ordre›
-o ‹clef›=‹valeur› Définit une option du fichier de configuration à la volée. Utilisez par exemple -o Aptitude::Log=/tmp/mes-logs afin de consigner (logs) les événements d´aptitude dans le fichier /tmp/mes-logs.
-P, --prompt demande toujours avant de télécharger, installer ou supprimer un paquet. Directive du fichier de configuration : Aptitude::CmdLine::Always-Prompt.
--purge-unused Purge les paquets dont aucun autre paquet installé ne dépend. Cela revient à -o Aptitude::Purge-Unused=true
-q[=‹n›], --quiet[=‹n›] Enlève tous les indicateurs d´avancement et rend ainsi la sortie journalisable. Cette option peut être passée plusieurs fois pour rendre le programme de plus en plus silencieux, mais contrairement à apt-get, aptitude n´ajoute pas implicitement -y quand -q est passée plus d´une fois. Le paramètre optionnel =‹n› peut être utilisé pour configurer directement le taux de silence (par exemple, pour surcharger un paramétrage dans /etc/apt/apt.conf) ; le programme agit alors comme si -q lui avait été passée exactement ‹n› fois.
-R, --without-recommends Ne gère pas les recommandations de dépendances lors de l´installation de nouveaux paquets (prioritaire sur les réglages de /etc/apt/apt.conf et /.aptitude/config). Les paquets installés précédemment pour ces même raisons de recommandation ne seront pas supprimés. Correspond à Apt::Install-Recommends et Aptitude::Keep-Recommends.
-r, --with-recommends Traite les suggestions ou les recommandations en tant que dépendances lors de l´installation des nouveaux paquets. (Prioritaire sur les réglages de /etc/apt.conf et /.aptitude/config).Correspond à Apt::Install-Recommends
--remove-user-tag ‹tag› supprime le tag user
--remove-user-tag-from ‹tag›,‹pattern› supprime la tag user de tous les paquet correspondant à ‹pattern›
-s, --simulate Affiche la liste des actions qui seraient réalisées, mais ne les lance pas réellement. Il n´est pas nécessaire d´avoir les privilèges d´administration. Directive du fichier de configuration : Aptitude::Simulate.
--safe-resolver en cas de problème de dépendance, utilise le mode "safe" du resolver. Correspond à Aptitude::Always-Use-Safe-Resolver to true.
--schedule-only Pour les commandes qui modifient l´état des paquets, programme les actions à faire pour plus tard, mais ne les fait pas. Vous pouvez exécuter les actions programmées en lançant aptitude install sans paramètre. Cela revient à faire la sélection correspondante en mode visuel, puis à quitter aptitude normalement. Par exemple, aptitude --schedule-only install evolution va programmer l´installation future du paquet evolution.
-t ‹version›, --target-release ‹version› Définit la version à partir de laquelle les paquets devront être installés. Par exemple, « aptitude -t expérimental ... » installera les paquets de la distribution expérimentale, si rien d´autre n´est précisé. Pour les actions de la ligne de commandes « changelog », « download » et « show », cela revient à suffixer /‹version› au nom de chaque paquet cité sur la ligne de commandes. Pour les autres commandes, cela modifiera la version installée par défaut selon les règles décrites dans apt_preferences(5). Directive du fichier de configuration : APT::Default-Release.
-V, --show-versions Indique quelle version du paquet sera installée. Directive du fichier de configuration : Aptitude::CmdLine::Show-Versions.
-v, --verbose Force quelques commandes à afficher des informations supplémentaires. Directive du fichier de configuration : Aptitude::CmdLine::Verbose. --version Affiche la version et quelques informations sur l´environnement de compilation d´aptitude.
--visual-preview Lance l´interface visuelle et affiche l´écran d´accueil, plutôt que d´afficher l´habituelle invite de commande en ligne.
-W, --show-why affiche quels paquets installés manuellement requièrent des paquets installés automatiquement. Combiné avec -v ou une valeur autre que 0 pour Aptitude::CmdLine::Verbose, affiche la chaine complète des dépendances. décrit également pourquoi un paquet va être supprimé.
-w ‹largeur›, --width ‹largeur› Définit la largeur utilisée pour l´affichage du résultat de la commande search. Directive du fichier de configuration : Aptitude::CmdLine::Package-Display-Width
-y, --assume-yes Répond « oui » à toute question de type oui/non. N´affecte pas les réponses aux questions particulièrement dangereuses, A priorité sur -P. Directive du fichier de configuration : Aptitude::CmdLine::Assume-Yes.
-Z Affiche l´espace disque qui sera utilisé ou libéré par chacun des paquets à installer, mettre à jour ou supprimer. Directive du fichier de configuration : Aptitude::CmdLine::Show-Size-Changes.
-i Affiche l´écran de téléchargement au démarrage du programme
-S ‹nom-fichier› Charge les informations supplémentaires à partir de ‹nom-fichier› plutôt qu´à partir du fichier standard.
-u Lance la mise à jour de la liste des paquets dès le démarrage du programme.

Variables d'environnement

HOME Répertoire personnel de l'utilisateur
PAGER Pager à utiliser
TMP Quand TMPDIR n´est pas paramétrée,utilise ce répertoire
TMPDIR Spécifie un répertoire pour les fichiers temporaires

Fichiers

$HOME/.aptitude s'il existe, aptitude stock son fichier de configuration dans $HOME/.aptitude/config. Sinon, il recherchera le répertoire personnel de l´utilisateur courant, grâce à getpwuid(2) pour y placer son fichier de configuration.
/var/lib/aptitude/pkgstates Le fichier dans lequel sont stockés les états des paquets et flags des paquets
/etc/apt/apt.conf
/etc/apt/apt.conf.d/
/.aptitude/config Fichiers de configuration pour aptitude. /.aptitude/config est prioritaire à /etc/apt/apt.conf. voir apt.conf(5)
^
15 mars 2010




apt_preferences

apt_preferences

fichier de contrôle des préférences pour APT

On peut définir le dépôt par défaut par:
apt-get install -t testing paquet
ou
APT::Default-Release "stable" ;

   Quand une distribution par défaut a été indiquée, APT utilise l'algorithme suivant pour déterminer la priorité des versions d'un paquet:

une priorité égale à 100 est affectée à la version déjà installée (si elle existe)
une priorité égale à 500 est affectée aux versions qui ne sont pas installées et qui n'appartiennent pas à la distribution par défaut.
une priorité égale à 990 est affectée aux versions qui ne sont pas installées et qui appartiennent à la distribution par défaut.

   Quand aucune distribution par défaut n'a été indiquée, APT affecte simplement une priorité égale à 100 à toute version installée d'un paquet et une priorité égale à 500 à tout version non installée.

   Puis APT applique les règles suivantes pour déterminer la version du paquet qu'il faut installer (elles sont listées par ordre de priorité):

- Ne jamais revenir en arrière, sauf si la priorité d'une version disponible dépasse 1000.« Revenir en arrière » signifie installer une version moins récente que la version installée. Il faut noter qu'aucune des priorités par défaut n'excède 1000 ; de telles valeurs ne peuvent être définies que dans le fichier des préférences. Notez aussi qu'il est risqué de revenir en arrière.
- Installer la version qui possède la priorité la plus haute.
- Quand deux (ou plus) versions ont la même priorité, installer la version la plus récente
- Quand deux (ou plus) versions ont la même priorité et le même numéro de version, mais soit les paquets diffèrent par certaines méta-données, soit l'option —reinstall a été donnée, installer la version qui n'est pas installée.

   Le fichier des préférences permet à l'administrateur système de contrôler l'affectation des priorités. Ce fichier est constitué d'une ou plusieurs entrées séparées par des lignes blanches. Ces entrées peuvent avoir deux formes, une forme particulière et une forme générale.

- La forme particulière affecte une priorité (Pin-Priority) à un paquet précis, à une version précise ou à un intervalle spécifiant plusieurs versions. Par exemple, l'entrée suivante affecte une priorité haute à toutes les versions du paquet perl dont le numéro de version commence par 5.8.
Package: perl
Pin: version 5.8*
Pin-Priority: 1001

   - La forme générale affecte une priorité à toutes les versions d'un paquet dans une distribution donnée (c'est-à-dire, à toutes les versions d'un paquet qui sont listées dans un fichier Release), ou à toutes les versions d'un paquet provenant d'un site internet identifié par un nom complètement qualifié.

Cette forme générale des entrées du fichier des préférences s'applique seulement aux groupes de paquets. Par exemple, l'entrée suivante affecte une priorité haute à toutes les versions disponibles dans le site local.
Package:    *
Pin: origin ""
Pin-Priority: 999

L'entrée suivante affecte une priorité basse à toutes les versions d'un paquet appartenant à toute distribution dont le nom d'« Archive » est unstable.
Package:    *
Pin: release a=unstable
Pin-Priority: 50

L'entrée suivante affecte une priorité haute à toutes les versions d'un paquet appartenant à toute distribution dont le nom d'« Archive » est stable et dont le numéro de « Version » est 3.0.
Package:    *
Pin: release a=stable, v=3.0
Pin-Priority: 500

Priorités

P › 1000 Cette priorité entraîne l'installation du paquet même s'il s'agit d'un retour en arrière.
990 ‹ P ‹=1000 La version sera installée, même si elle n'appartient pas à la distribution par défaut ; mais elle ne sera pas installée si la version installée est plus récente.
500 ‹ P ‹=990 La version sera installée, sauf s'il existe une version appartenant à la distribution par défaut ou si la version installée est plus récente.
100 ‹ P ‹=500 La version sera installée, sauf s'il existe une version appartenant à une autre distribution ou si la version installée est plus récente.
0 ‹ P ‹=100 La version sera installée si aucune version du paquet n'est installée.
P ‹ 0 Cette priorité empêche l'installation de la version.

   Détermination de la version des paquets et des propriétés des distributions

   Chaque source listée dans sources.list doit fournir les fichiers Packages et Release qui décrivent les paquets disponibles à cet endroit

   Le fichier package doit se trouver dans .../dists/dist-name/component/arch. Il consiste en entrées composées de lignes, une pour chaque paquet disponible. Seules 2 lignes des entrées sont pertinentes pour la détermination des priorités:

la ligne Package donne le nom du paquet
la ligne Version donne le numéro de version du paquet

   Le fichier Release se trouve normalement dans le répertoire .../dist/dist-name Il consiste en une seule entrée composée de plusieurs lignes qui s'applique a tous les paquets situés dans les répertoires sous le répertoire parent

la ligne Archive nomme l'archive à laquelle appartiennent tous les paquets situés dans les répertoires.
Pin: release a=stable

La ligne Version indique la version de la distribution.
Pin: release v=3.0
Pin: release a=stable, v=3.0
Pin: release 3.0

La ligne Component nomme un composant qui indique le type de licence associée aux paquets situés dans les répertoires sous le fichier Release.
Pin: release c=main

La ligne Origin nomme l'origine des paquets situés dans les répertoires sous le fichier Release.
Pin: release o=Debian

La ligne Label indique un label pour les paquets qui se trouvent dans les répertoires sous le fichier Release.
Pin: release l=Debian

   Tous les fichiers Packages et Release récupérés dans des sources listées par le fichier sources.list sont conservés dans le répertoire /var/lib/apt/lists ou dans le fichier spécifié par la variable Dir::State::Lists dans le fichier apt.conf.
^
15 mars 2010




debmirror

debmirror

Serveur de dépôt mirroir

   Un serveur mirroir, est une copie exacte d'un serveur de dépôt. Il peut être utile d'en créer si vous n'avez pas accès à Internet de manière permanente, ou pour limiter la bande passante consommées par l'installation de logiciels depuis Internet. Debmirror est un script qui permet de télécharger et maintenir un mirroir Debian. Il utilise ftp, http, hftp ou rsync.

   Debmirror effectue 3 étapes:

1. Téléchargement des paquets et des sources
2. nettoyage des fichiers inconnus
3. les paquets et sources sont scannés pour construire une liste.

OPTIONS

--mirrordir emplacement ou seront placé les paquets
--debug mode débugage
--progress, -p affiche une barre de progressions pendant le téléchargement
--verbose, -v mode verbeux
--source inclure les sources dans le miroir (défaut)
--nosource ne pas inclure les sources
--md5sums, -m utiliser md5sums pour déterminer si les fichiers sont correctes
--passive télécharge en mode passif
--host=remotehost, -h spécifie l'hôte distant (défaut : ftp.debian.org)
--user=remoteusername, -u Spécifie l'utilisateur distant, utile pour les proxys
--passwd=remoteuserpassword password de l'utilisateur
--method=ftp|hftp|http|rsync, -e Méthode pour le téléchargement des paquets
--proxy=http://user:pass@url:port/ Serveur proxy a utiliser
--timeout=seconds, -t timeout à utiliser pour les opérations réseau (défaut 300 sec)
--root=directory, -r directory Spécifier le dossier sur l'hôte distant défaut "/debian"
--dist=foo[,bar,...], -d foo spécifier la distribution (sarge, etch, lenny, sid)
--section=foo[,bar,...], -s foo Spécifier la section défaut : main,contrib,non-free,main/debian-installer
--arch=foo[,bar,...], -a foo Architecture, défaut : i386.
--postcleanup nettoie le miroir local après le mirroring et uniquement s'il n'y a pas eu d'erreur
--cleanup fait un nettoyage des fichiers et dossiers inconnus
--nocleanup ne nettoie pas le miroir local
--ignore=regex ne jamais télécharger de fichier dont les noms de fichiers correspondent à regex, peut être spécifié plusieurs fois
--exclude-deb-section=regex ne jamais télécharger de fichier dont la section correspond à regex [games, doc, oldlibs, science,...] peut être spécifié plusieurs fois
--limit-priority=regex limite le téléchargement dont la priorité correspond à regex [required, extra, optional, etc...]
--include=regex ne pas exclure les fichiers correspondant à regex peut être spécifié plusieurs fois
--skippackages ne pas re-télécharger les paquets et fichiers sources, utile si vous savez qu'ils sont à jour.
--getcontents télécharge les fichiers Contents.arch.gz
--max-batch=number télécharge jusqu'à max-batch nombre de fichiers et ignore le reste
--rsync-batch=number télécharge jusqu'à max-batch nombre de fichiers avec chaque appel rsync
--ignore-missing-release ne plante pas si un fichier Release manque.
--ignore-release-gpg ne plante pas sir Release.gpg est manquant
--dry-run mode simulation
--rsync-options=options spécifier les options rsync alternatives à utiliser
--ignore-small-errors n'indique pas les erreurs de type missing ou broken
--pdiff=use|mirror|none si Release contient des entrées pour pdiff, debmirror va tenter de mettre a jour les fichiers sources et les paquets mais ne les inclu pas dans le mirroir.

   Debmirror utilise gpgv pour vérifier les Release et Release.pgp en utilisant par défaut /.gnupg/trustedkeys.gpg. Pour ajouter les bonnes clés, il faut les importer comme ceci : gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg --export | gpg --import ou télécharger les clé depuis le serveur : gpg --keyserver keyring.debian.org --recv-keys key ID cette key ID peut être trouvée dans le message d'erreur gpgv dans debmirror

Installer un dépôt local

Un serveur web doit déjà exister (ex : apache)
Création d'un utilisateur système dédié, dans le groupe du serveur web pour que ce dernier ait les accès
adduser --system --home /var/www/mirror --gid 33 --no-create-home mirror
puis on crée un répertoire pour stocker les fichiers
mkdir /var/www/mirror
chown mirror:www-data ./mirror
chmod u+rwx,g+rxs-w,o-rwx ./mirror
Installation des programmes nécessaires (inclure un serveur http ou ftp):
aptitude install debmirror debian-keyring
les opérations suivante sont à effectuer sous l'utilisateur mirror:
su mirror
récupération des clé
gpg --keyring /usr/share/keyrings/debian-role-keys.gpg --export | gpg --import gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg --export | gpg --import gpg --no-default-keyring -a --keyring /usr/share/keyrings/debian-archive-keyring.gpg --export 55BE302B | gpg --no-default-keyring --keyring /.gnupg/trustedkeys.gpg --import -
récupération des paquets (ici on ne récupère que la section debian-security)
debmirror --verbose --arch=i386,amd64 --dist=lenny/updates --source --method=rsync --host=mirror.ens-lyon.fr --root=:debian-security --section=main,contrib,non-free,main/debian-installer -ignore-release-gpg --cleanup /var/www/mirror/debian-security/
pour les clients utiliser dans /etc/apt/sources.list
deb http://server/mirror/debian-security lenny/updates main contrib non-free
deb-src http://server/mirror/debian-security lenny/updates main contrib non-free

Exemple de fichier de lancement de debmirror
# ! /bin/sh
ARGS=" --progress \
--arch=i386,amd64 \
--dist=lenny/updates \
--source \
--method=rsync \
--host=mirror.ens-lyon.fr \
--root=:debian-security \
--section=main,contrib,non-free,main/debian-installer \
--ignore-release-gpg \
--cleanup \
/var/www/mirror/debian-security/"

debmirror $ARGS

   Attention aux droits et faire un cron pour lancer périodiquement ce script.
^
15 mars 2010




dpkg

dpkg

Manipulation des paquets deb

   dpkg ne gère pas les dépôts, ni ne télécharge de paquet. Son rôle est de gérer les paquets deb. Cet outils est principalement utilisé par apt-get et aptitude pour installer ou supprimer des programmes. Il sert également, via dpkg-deb, à manipuler des paquets, extraire des fichiers, obtenir des informations sur un paquet ou créer un paquet. dpkg peut agir comme une interface à dpkg-deb. il lance simplement dpkg-deb s'il est lancé avec les options suivantes:

-b, --build
-c, --contents
-I, --info
-f, --field
-e, --control
-x, --extract
-X, --vextract
--fsys-tarfile

Renseignements sur les paquets

   dpkg conserve des renseignements utiles sur les paquets disponibles.

État des paquets

not-installed le paquet n'est pas installé
config-files seules les fichiers de configuration du paquet existent sur le système
half-installed l'installation du paquet a commencé mais ne s'est pas terminé
unpacked Le paquet est dépaqueté mais n'est pas configuré
half-configured Le paquet est dépaqueté et la configuration a commencé mais ne s'est pas terminée
triggers-pending Une action différée de ce paquet a été activé, il reste à l'exécuter
installed Le paquet est installé ETAT DE LA SELECTION DES PAQUETS
install Le paquet est sélectionné pour être installé
hold dpkg laisse de côté ce paquet à moins qu'il ne soit lancé avec --force-hold
deinstall Le paquet est sélectionné pour désinstallation (sauf ses fichiers de configuration)
purge Le paquet est sélectionné pour désinstallation complète DRAPEAU DES PAQUETS
reinst-required Paquet défectueux et demande une réinstallation. dpkg ne peut pas le supprimer sauf en spécifiant l'option --force-remove-reinstreq

Étapes des opérations

   lors de l'installation d'un paquet, dpkg procède comme suit:

1. extraction des fichiers de contrôle du paquet
2. si une ancienne version est déjà installé, exécution du script prerm de l'ancien paquet
3. lancement du script preinst, s'il est fournit
4. dépaquetage des nouveaux fichiers et sauvegarde des anciens de manière à pouvoir les restaurer en cas de problème.
5. Si une ancienne version existe, exécution du script postrm
6. configuration du paquet.

   Lors de la configuration d'un paquet, dpkg procède comme suit:

1. dépaquetage des fichiers de configuration et sauvegarde des ancienne
2. exécution du script postinst s'il est fourni

   Lors de la suppression d'un paquet, dpkg procède comme suit:

1. Lancement du script prerm
2. suppression des fichiers installés
3. lancement du script postrm

Actions

-i, --install installe le paquet. avec --recursive ou -R on doit indiquer un dossier
--unpack Dépaquète le paquet, mais ne configure rien. avec --recursive indiquer une répertoire.
--configure paquet -a|--pending Reconfiguration d'un paquet installé. avec -a ou --pending, tous les paquets installés mais non configurés sont configurés.
--triggers-only paquet .... -a|--pending N'exécute que les actions différées de ces paquets
-r, --remove, -P, --purge paquet -a|--pending supprime un paquet installé. Les fichiers de configuration sont les fichiers répertoriés dans le fichier de contrôle debian/conffiles. l'option -a ou --pending, tous les paquets non dépaquetés mais qui sont marqués comme devant être supprimés ou purgés dans le fichier /var/lib/dpkg/status sont supprimés ou purgés.
--update-avail, --merge-avail fichier-Paquets met à jour l'information de dpkg et de dselect sur les paquets disponibles. --merge-avail combine les information anciennes avec celles qui proviennent de fichier-Paquets. --update-avail remplace les informations anciennes par celles du fichier-Paquets. Ce fichier distribué par Debian est appelé Packages. dpkg garde son propre enregistrement des paquets disponibles dans /var/lib/dpkg/available. Ce fichier n'est utile que pour dselect, pas pour APT.
-A, --record-avail fichier-paquet met à jour l'information de dpkg et dselect sur les paquets disponibles avec les informations qui proviennent de fichier-paquet. --recursive ou -R pour indiquer un répertoire
--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] Obtient la liste des sélections des paquets, et l'envoie sur la sortie standard. Sans un motif, les paquets non installés (c'est à dire ceux qui ont été précédemment purgés) ne seront pas affichés.
--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
--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. Il y a deux groupes d'opérateurs ; Pour lt le eq ne ge gt, l'absence d'une version est considérée comme inférieure à toute version ; pour 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.
-D, --debug=help donne des renseignements sur les options de débogage.
--licence, --license Affiche la licence de dpkg.
--version Affiche la version de dpkg.

Actions dpkg-deb

-b, --build répertoire archive 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 Voir dpkg-query pour davantage d'explications sur les actions suivantes.
-l, --list motif-du-nom-du-paquet ... Affiche la liste des paquets qui correspondent au motif.
-s, --status nom-du-paquet ... Donne l'état du paquet indiqué.
-L, --listfiles nom-paquet ... Affiche la liste des fichiers installés qui appartiennent à paquet.
-S, --search motif-du-fichier-à-rechercher ... Recherche un fichier dans les paquets installés.
-p, --print-avail nom-du-paquet Affiche les informations trouvées dans /var/lib/dpkg/available à propos de paquet. Les utilisateurs des interfaces à APT devraient plutôt utiliser apt-cache show nom-du-paquet

OPTIONS

   Toutes les options peuvent être spécifiées sur la ligne de commande et dans le fichier de configuration de dpkg /etc/dpkg/dpkg.cfg ou les fichiers de configuration du dossier /etc/dpkg/dpkg.cfg.d/.

--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.
--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.

        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.
        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 Installe un fichier de configuration manquant. Cette opération est dangereuse, puisque les changements apportés au fichier ne seront pas préservés (suppression).
        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.
--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.
--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 !
-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 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.
--pre-invoke=command
--post-invoke=command Set an invoke hook command to be run via “sh -c” before or after the dpkg run
--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 Une question pour un fichier de configuration va être posée à l'utilisateur.
        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 ne pas lancer d'actions différées (les activations seront toujours enregistrées). 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 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. Ce fichier est quotidiennement backupé dans /var/backups.

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 CD. 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
^
15 mars 2010




dpkg-deb

dpkg-deb

Outil de manipulation des archives des paquets Debian. Ce programme n'est pas appelé directement mais depuis dpkg généralement.

   dpkg-deb crée un paquet, décompresse une archive ou donne des renseignements sur les archives Debian, alors que dpkg sert à installer ou à supprimer des paquets sur le système.

Commandes

-b, --build repertoire [archive|repertoire] Créer une archive avec l'arborescence contenue dans repertoire. archive est le nom à donner à l'archive. si le 2eme argument est un répertoire, le paquet est appelé paquet_version_arch.deb ou bien paquet_version si aucun champ Architecture n'est présent dans le fichier de contrôle.
-I, --info archive [nom-fichier-control...] Donne des renseignements sur une archive de paquet binaire.
-W, --show archive Cette option donne des informations sur l'archive d'un paquet binaire
-f, --field archive [nom-du-champ-de-control...] Extrait les renseignements du fichier control de l'archive
-c, --contents archive Liste l'arborescence des fichiers d'une archive
-x, --extract archive repertoire Extraire l'arborescence des fichiers d'un paquet dans le répertoire root
-X, --vextract archive repertoire idem mais affiche la liste des fichiers à mesure qu'ils sont extraits
--fsys-tarfile archive Extrait les données de l'arborescence d'un paquet binaire et les envoie sur la sortie standard dans le format propre à tar. Permet d'extraire un fichier précis.
-e, --control archive [repertoire] Extrait les fichiers de contrôle d'une archive dans le répertoire spécifié

OPTIONS

--showformat=format Sert à spécifier le format de sortie de l'option --show (voir dpkg-query)
-zniveau_compression Indique le niveau de compression
-Ztype_compression Indique le type de compression (gzip, bzip2, lzma et none)
--new s'assure que dpkg-deb construit une archive avec le nouveau format.
--old oblige dpkg-deb à construire une archive avec l'ancien format
--nocheck Empêche les vérifications normales de dpkg-deb --build

   Pour créer le fichier control voir man deb-control
^
15 mars 2010




dpkg-query

dpkg-query

Outil pour interroger la base de données de dpkg et afficher des informations sur les paquets connus par la base de données de dpkg

OPTIONS

-l, --list motif Affiche les paquets correspondants à motif. Sans motif, affiche tous les paquets de /var/lib/dpkg/status, sauf ceux qui ne sont pas installés (équivalent à dpkg -l)
-W, --show motif Identique à --list mais dans un format formaté.
-s, --status paquet Donne l'état du paquet (indique les fichiers de configuration)
-L, --listfiles paquet Affiche la liste des fichiers de paquet
-c, --control-path paquet [control-file] liste les chemins des fichiers de contrôle
-S, --search motif Recherche un nom de fichier dans les paquets installés (équivalent dpkg -S)
-p, --print-avail paquet Affiche les détails relatifs à paquet tels que présents dans /var/lib/dpkg/available
--admindir=dir Change l'endroit où se trouve la base de données de dpkg (défaut /var/lib/dpkg)
-f, --showformat=format sert à spécifier le format de sortie de --show

        \n nouvelle ligne
        \r retour chariot
        \t tabulation

   L'information relative à un paquet peut être indiquée en insérant des appels de variables spécifiant des champs du paquet avec la syntaxe suivante: "${field[ ;width]}". Les champs sont alignés à droite, à moins que la largeur ne soit négative, auquel cas ils sont alignés à gauche. Les champs suivants sont reconnus, mais pas nécessairement disponibles dans le fichier d'état (seuls les champs internes ou les champs conservés avec le paquet binaire le sont):

        Architecture
        Bugs
        Conffiles (interne)
        Config-Version (interne)
        Conflicts
        Breaks
        Depends
        Description
        Enhances
        Essential
        Filename (interne, lié à dselect)
        Homepage
        Installed-Size
        MD5sum (interne, lié à dselect)
        MSDOS-Filename (interne, lié à dselect)
        Maintainer
        Origin
        Package
        Pre-Depends
        Priority
        Provides
        Recommends
        Replaces
        Revision (obsolète)
        Section
        Size (interne, lié à dselect)
        Source
        Status (interne)
        Suggests
        Tag (pas dans le .deb mais dans les fichiers Packages d'APT)
        Triggers-Awaited (interne)
        Triggers-Pending (interne)
        Version

   Le format par défaut est le suivant : "${binary:Package}\t${Version}\n"
^
15 mars 2010




Serveur de dépôt de paquets deb

Serveur de dépôt de paquets deb

Création d'un serveur de dépôt

   Pour créer un serveur de dépôt, il est nécessaire d'avoir un serveur web. Créer une arborescence pour le dépôt:

Exemple

/var/www/debian/dists/lenny/main/binary-i386
/var/www/debian/dists/lenny/main/source

Si vous possédez les fichiers suivant pour un programme:
paquet.orig.tar.gz
pauet.diff.gz
paquet.dsc
paquet.changes
paquet.deb

placer les fichiers paquet.dsc et paquet.deb dans binary-i386
placer les fichiers paquet.dsc, paquet.diff.gz et paquet.orig.tar.gz dans source

Il faut ensuite générer 2 fichiers, Packages.gz et Sources.gz:
cd /var/www/debian/dists/lenny/main
dpkg-scanpackages binary-i386 /dev/null dists/lenny/main/ | gzip -f9 › binary-i386/Packages.gz
dpkg-scansources source /dev/null dists/lenny/main/ | gzip -f9 › source/Sources.gz

   ensuite il faut créer 2 fichiers de description pour le dépôt. Ils sont identiques, et pour chaque paquet:

dans binary-i386/Realease
Archive: stable
Version: 5.0.4
Component: main
Origin: paquet
Label: paquet
Architecture: i386

et dans lenny/Release, le fichier est identique. ici un exemple plus complet:
Archive: stable
Version: 5.0.4
Codename: lenny
Component: main source contrib non-free
Origin: paquet
Label: paquet
Architecture: i386 amd64
Description: Debian 5.0.4 Released 2010

Pour que les client puissent utiliser ce dépôt, ajouter dans /etc/apt/sources.list:
deb http://www.mon-site.com/debian lenny main
deb-src http://www.site.mon-site.com/debian lenny main

^
15 mars 2010




/etc/apt/sources.list

/etc/apt/sources.list

Liste des sources de paquets debian

   La liste des sources de paquets indique où trouver les archives du système de distribution de paquets utilisés. ce fichier est /etc/apt/sources.list.

   Le format de chaque ligne est: type uri args. Le premier élément, type, détermine le format des args. uri est un identifiant universel de ressources (URI), qui est un sur-ensemble du plus spécifique et bien connu repère universel de ressources, ou URL. La fin de la ligne peut être un commentaire commençant par un caractère #.

sources.list.d

   /etc/apt/sources.list.d permet de lister des sources de paquets dans des fichiers distincts qui se terminent par .list. Leur format est le même que celui du fichier sources.list.

deb et deb-src

   Le type deb décrit une archive Debian classique à deux niveaux, distribution/composant. distribution peut prendre l´une des valeurs suivantes: stable, unstable, ou testing, et composant: main, contrib, non-free, ou non-us.

   Le type deb-src décrit le code source pour une distribution Debian dans le même format que le type deb. Une ligne deb-src est nécessaire pour récupérer les index des sources.

   Le format d´une entrée dans sources.list utilisant les types deb et deb-src est de la forme: deb uri distribution [composant1] [composant2] [...]

   distribution peut aussi contenir une variable $(ARCH), qui sera remplacée par l´architecture Debian (i386, m68k, powerpc, ...) sur laquelle s´exécute le système. Il est important d´indiquer les sources par ordre de préférence, la source principale apparaissant en premier.

Spécification des URI

file Le procédé file permet qu´un répertoire arbitraire au sein du système de fichier soit considéré comme une archive. On s´en sert avec les montages NFS, les miroirs et les archives locaux.
cdrom Le procédé cdrom permet l´utilisation d´un lecteur de cédérom avec la possibilité de changer de media. Utilisez le programme apt-cdrom(8) pour créer des entrées dans la liste des sources.
http Si une variable d´environnement http_proxy (au format http://server:port/) existe, le serveur mandataire indiqué par http_proxy est utilisé. Quand un serveur mandataire HTTP/1.1 demande une authentification, on peut utiliser la chaîne http://user:pass@server:port/.
ftp Le fonctionnement en mode ftp est largement configurable ; On remarquera qu´on peut indiquer un mandataire ftp avec la variable d´environnement ftp_proxy. On peut aussi spécifier un mandataire http (les serveurs mandataires http comprennent souvent les URL ftp) en utilisant cette méthode et SEULEMENT cette méthode. Les mandataires ftp utilisant http et qui sont spécifiés dans le fichier de configuration seront ignorés.
copy Le procédé copy est identique au procédé file excepté que les paquets sont copiés dans le cache du répertoire au lieu d´être utilisés directement depuis leur emplacement. C´est utile aux gens qui utilisent un disque zip pour recopier des fichiers avec APT.
rsh, ssh Le procédé rsh/ssh utilise rsh/ssh pour se connecter à une machine distante en tant que tel utilisateur donné et pour accéder aux fichiers. Aucune authentification par mot de passe n´est possible : il faut au préalable régler ce problème avec des clés RSA ou bien rhosts. Pour l´accès aux fichiers de la machine distante et le transfert, on utilise les commandes standard find et dd.
^
15 mars 2010




unattended-upgrade

unattended-upgrade

Outil de mise à jour de sécurité automatique

   Cet utilitaire installe automatiquement les mises à jour de sécurité. Il est lancé quotidiennement par un cron.

   Il peut télécharger et installer les mises à jour de sécurité automatique, en n'installant que les paquets depuis les sources APT configurés. La sortie est loggé dans /var/log/unattended-upgrades.log Ce script est un utilitaire pour l'option APT::Periodic::Unattended-Upgrade et est conçu pour être lancé par cron via /etc/cron.daily/apt. Il ne possède qu'une seule option: --dry-run qui simule l'installation, mais ne fait rien d'autre.

  La configuration est faite via apt, par défaut dans /etc/apt/apt.conf.d/50unattended-upgrades