Petite fiche cuisine pour l'utilisation d'APT

Que veut dire APT ?

APT est l'abréviation d'Advanced Packaging Tool (Outil de paquetage avancé) et constitue un ensemble de programmes et de scripts à la fois facilitant pour l'administrateur (dans votre cas, root), les tâches d'installation et de gestion des fichiers .deb, et pour le système en lui-même, l'identification de ses constituants.

Liste de Sources

APT is short for Advanced Packaging Tool and is a collection of programs and scripts that help both the sysadmin (in your case root) with the installation and management of deb-files but equally the system itself to know what is installed.

Eros-pre2 installations forward

Eros-pre2 installations forward deals with /etc/apt/sources.list differently, namely it is empty. In its place is a directory or folder named:
/etc/apt/sources.list.d/

Inside the folder are 2 files called:
/etc/apt/sources.list.d/debian.list and
/etc/apt/sources.list.d/sidux.list

This has the benefit of easier (automated) mirror switching, and makes it safer to replace lists.

You can also add your own /etc/apt/sources.list.d/*.list files

Eros-pre1, Gaia and Chaos installations

The sources list is found in/etc/apt/sources.list

Toutes les images ISO de sidux utilisent par défaut la liste de sources suivante:

# Free University Berlin/ Institute of Computer Science, Germany
deb http://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free
#deb-src http://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free

Des entrées additionnelles pour la récupération d'outils non-libres, sont disponibles sur sidux.list and debian.list, et mises-à-jour régulièrement. Par exemple au 28/02/2008 à 08H00 UTC elles sont :

# See sources.list(5) for more information, especially
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
# The /etc/apt/sources.list.d/ directory provides a way to add sources.list
# entries in separate files that end with sources.list file.

# Unstable
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

# Testing
#deb http://ftp.us.debian.org/debian/ testing main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

# Experimental
#deb http://ftp.us.debian.org/debian/ experimental main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ experimental main contrib non-free

# Free University Berlin/ Institute of Computer Science, Germany
deb http://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free
#deb-src http://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free

NOTE: Dans cet exemple, ftp.us indique le recours à des miroirs USA. Vous pouvez éditer votre fichier, afin d'utiliser des miroirs plus proches de vous, en changeant simplement l'abréviation de pays, par exemple en remplaçant ftp.us par ftp.fr ou ftp.ca. Il existe des miroirs debian dans de très nombreux pays. Ainsi la bande passante sera utilisée de manière intelligente et la vitesse améliorée.

Pour actualiser son information relative aux paquets disponibles dans des version à jour, APT utilise une base de données. Cette base de données stocke l'information sur chaque paquet (paquets et paquetages sont utilisés indifférament), mais également celle se rapportant à d'autres paquetages pouvant se révéler indispensables pour que tel ou tel paquet fonctionne (on appelle ceci les dépendances). Le programme apt-get consulte cette base de données lorsqu'il installe un paquet à votre demande ; il en identifie grâce à elle les dépendances, vous assurant ainsi que le paquet logiciel choisi fonctionne. La mise-à-jour de la base de données s'opère par la commande apt-get update.

# apt-get update
	(which returns)
Get:1 http://sidux.com sid Release.gpg [189B]
Get:2 http://sidux.com sid Release.gpg [189B]
Get:3 http://sidux.com sid Release.gpg [189B]
Get:4 http://ftp.de.debian.org unstable Release.gpg [189B]
Get:5 http://sidux.com sid Release [34.1kB]
Get:6 http://ftp.de.debian.org unstable Release [79.6kB]

Dans sidux, veillez à mettre-à-jour votre base de données chaque jour où vous souhaitez apporter une modification à votre système de paquetages, c'est-à-dire avant d'installer un ou plusieurs paquets de logiciels.

Installer un nouveau paquet

On suppose qu'en vertu de ce qui est dit au paragraphe précédent, votre base de données APT est à jour et que le nom du paquet est connu. Dans ce cas, la commande suivante va servir à installer par exemple, le paquet qemu, ainsi que ses dépendances : (nous verrons plus loin comment rechercher et trouver des paquets.)

# apt-get install qemu
Lecture de la liste des paquets... Done
Construction de l'arbre des dépendances... Done
Les paquets additionnels suivants devront être installés:
  bochsbios openhackware proll vgabios
Paquets recommandés:
  debootstrap vde
Les NOUVEAUX paquets suivants vont être installés:
  bochsbios openhackware proll qemu vgabios
0 mis-à-jour, 5 nouvellement installés, 0 à enlever et 20 non mis-à-jour.
Besoin de charger 4152kB d'archives.
Après le dépaquetage 11.9MB d'espace disque additionnel seront utilisés.
Voulez-vous continuer [O/n]? n

Désinstaller un paquet

Dans la même logique on comprendra l'exemple de désinstallation qui suit, mais qui toutefois ne désinstallera pas toutes les dépendances, dont le cas sera traité plus loin dans une section consacrée à deb-orphan

# apt-get remove exemple
apt-get remove gaim
Lecture de la liste des paquets... Done
Construction de l'arbre des dépendances... Done
Les paquets suivants vont être ENLEVÉS:
  gaim gaim-irchelper
0 mis-à-jour, 0 nouvellement installés, 2 à enlever et 310 non mis-à-jour.
Besoin de charger 0kB d'archives.
Après le dépaquetage 4743kB d'espace disque seront libérés.
Voulez-vous continuer [O/n]?
(Lecture de la base de données ... 174409 fichiers et dosssiers actuellement installés.)
Suppression de gaim-irchelper ...
Suppression de gaim ...

Dans l'exemple précédent les fichiers de configuration du paquetage 'gaim' (ses préférences, etc.) ne sont pas effacés du système. Vous pouvez les réutiliser en réinstallant le même paquet à nouveau, qui utilisera ces réglages.

Si vous désirez que les fichiers de configuration soient enlevés eux aussi, utilisez la commande :

# apt-get remove --purge gaim
Lecture de la liste des paquets... Done
Construction de l'arbre des dépendances... Done
Les paquets suivants vont être ENLEVÉS:
  gaim*
0 mis-à-jour, 0 nouvellement installés, 1 à enlever et 310 non mis-à-jour.
Besoin de charger 0kB d'archives.
Après le dépaquetage 4743kB d'espace disque seront libérés.
Voulez-vous continuer [O/n]?
(Lecture de la base de données ... 174409 fichiers et dosssiers actuellement installés.)
Suppression de gaim ...
Purge des fichiers de configuration de gaim...

Là, non seulement les fichiers situés dans le répertoire /etc/gaim ont été effacés, mais également tous les fichiers de configuration. Si toutefois des fichiers n'étaient pas effacés, il s'agirait d'objets n'ayant pas été créés durant la période où le paquet était installé, ou créés depuis une autre source que logiciel concerné.

Après la mise-à-jour de la base de données par apt-get update, il est possible de lister les logiciels nouveaux et ceux pour lesquels une mise-à-jour est disponible: (first install apt-show-versions)

# apt-cache show -v |grep upgrade
libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3
passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6
teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1
libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3
fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1
fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1
sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4
libpam0g/unstable upgradeable from 0.79-1 to 0.79-3
unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-M1libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3
passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6
teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1
libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3
fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1
fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1
sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4
libpam0g/unstable upgradeable from 0.79-1 to 0.79-3
unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-M1

La mise-à-jour individuelle d'un paquetage et de ses dépendances utilise la même syntaxe que l'installation, comme cet exemple (pour gcc-4.0):

apt-get install gcc-4.0
Lecture de la liste des paquets... Done
Construction de l'arbre des dépendances... Done
gcc-4.0 est déjà la version la plus récente.
0 mis-à-jour, 0 nouvellement installés, 0 à enlever et xxx non mis-à-jour.

Retourner à une version antérieure et/ou conserver un paquet

Il est parfois nécessaire de revenir à une version antérieure d'un paquetage ou de le garder en l'état, du fait qu'un bug important compromette la version la plus récente que vous auriez installé.

Pour conserver un paquet en l'état

echo paquet hold|dpkg --set-selections

Pour lever la conservation en l'etat

echo paquet install|dpkg --set-selections

Pour afficher les paquets conservés en l'état:

dpkg --get-selections | grep hold

Revenir à la version antérieure

Les étapes de cet exemple utiliseront kmahjongg :

  1. activez/décommentez les sources testing dans /etc/apt/sources.list 
    (en enlevant le #) de manière à pouvoir accéder à
    deb http://ftp.nl.debian.org/debian/ testing main contrib non-free
  2. apt-get update
  3. apt-get install -t testing kmahjongg
  4. Puis commandez le gel en l'état du logiciel nouvellment installé avec :
    echo kmahjongg hold|dpkg --set-selections
  5. Re-commentez la ligne de sources testing dans /etc/apt/sources.list 
  6. apt-get update

Quand vous voudrez à nouveau obtenir la dernière version disponible du paquet, vous ferez :

echo kmahjongg install|dpkg --set-selections
apt-get update
apt-get install kmahjongg

Mise-à-niveau de toute une installation- dist-upgrade

Si ce que vous désirez c'est mettre tout votre système à niveau, il vous faut utiliser la commande dist-upgrade. Vous devriez toujours vérifier les alarmes actuelles sur le site principal de sidux, et vérifier les alarmes pour les paquets que votre système veut mettre à jour. Si vous avez besoin de conserver certains paquets avec hold comme décrit dans la section de Retourner à une version antérieure et/ou conserver un paquet

L'utilisation de "apt-get upgrade" n'est pas recomandée sur sidux en utilisant les depots debian sid.

Frequence de dist-upgrade

Faites 'dist-upgrade' aussi souvent que vous voulez, idealement une fois par une semaine ou deux, au moin une fois par mois, pour être sûr. Faire 'dist-upgrade' une fois par 2 ou 3 mois devrait être considéré au bout d'être sûr. Avec des paquets non-standards ou des paquets compilés par vous-même, vou devez être plus prudent avec les mises à jour, parce qu'ils pouvent casser votre système à n'importe quel moment à cause des incompatibilités.

Simple téléchargement

Assez peu célèbre, mais néanmoins particulièrement pratique, existe l'option -d dans apt-get :

apt-get dist-upgrade -d

dist-upgrade avec l'option -d vous permet de télécharger les paquets de "dist-upgrade" pendant que vous être dans X, les paquet sont récupérés mais ne sont ni dépaquetés ni installés, ce qui vous permet de faire vrai "dist-upgrade" plus tard dans init 3, ce qui vous donne aussi l'opportunité de vérifier les alarmes pour la liste des paquets, parce que vous avez le choix de continuer ou de suspendre le téléchargement des paquet en cours.

apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  elinks-data
The following packages have been kept back:
  git-core git-gui git-svn gitk icedove libmpich1.0ldbl
The following packages will be upgraded:
  alsa-base bsdutils ceni configure-ndiswrapper debhelper
  discover1-data elinks file fuse-utils gnucash
  gnucash-common initscripts isdnutils-base libaprutil1
  libcapi20-3 libdvdread3 libfuse2 libmagic1 libvlc0
  linux-sound-base locales mount mozilla-plugin-vlc
  python-glade2 python-gtk2 siduxcc siduxcc-common strace
  sysv-rc sysvinit sysvinit-utils tzdata util-linux vlc
  vlc-nox
35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 23.4MB of archives.
After this operation, 594kB of additional disk space will be used.
Do you want to continue [Y/n]?

O téléchargera les paquets mis-à-jour sans rien modifier au système installé

Après l'achèvement des téléchargements répondant à la commande 'dist-upgrade -d', si vous désirez achever aussitôt ou plus pard la mise-à-jour (dist-upgrade) de votre installation, suivez les instructions qui suivent :

ENCORE UNE FOIS ! JAMAIS ET EN AUCUN CAS, IL NE FAUT PROCÉDER À UN UPGRADE OU DIST-UPGRADE EN ÉTANT CONNECTÉ DANS L'ENVIRONNEMENT GRAPHIQUE X !
ET D'AUTRE PART CONSULTEZ TOUJOURS LES AVERTISSEMENTS POUVANT ÊTRE PUBLIÉS SUR LE SITE DE sidux. Ces avertissements sont fréquents, destinés à prévenir de mises-à-jours à des périodes où les miroirs seraient incomplets, ou quand des évolutions drastiques empêchent pour quelques jours, des blocs entiers de logiciels d'être opérationnels après leur mise-à-niveau. Ceci est lié à la vocation de Debian SID (Still In Development), aussi appelée Debian Unstable, dont les paquets évoluent sur une base quotidenne.
Sortez de KDE (Menu K > Déconnexion > Terminer la session)
Passez en mode console en entrant au clavier Ctrl+Alt+F1
Loguez-vous en tant que root, puis entrez init 3
apt-get update
apt-get dist-upgrade
lancez fix-fonts
lancez get-sidux-binary-gfx pour réinstaller vos pilotes graphiques si xorg a été mis-à-jour et si vous utilisez une carte graphique qui le nécessite/
Sinon, faites
init 5 && exit 
JAMAIS ET EN AUCUN CAS, IL NE FAUT PROCÉDER À UN UPGRADE OU DIST-UPGRADE avec adept, synaptic ou aptitude. Reportez-vous à la section Mise-à-niveau d'un système installé. Il existe une exception ! smxi qui est le raccourci de sidux-maintenance
apt-get update
apt-get install sidux-scripts
smxi
Pour les utilisateurs novices le script !h2 smxi peut faciliter la tâche en automatisant partiellement les procédures de mises-à-niveau.

Si vous ne passez pas en mode init 3, et bien tant pis pour vous...on vous aura avertis !

Quelques explications sur les raisons d'employer APT-GET et RIEN D'AUTRE pour un dist-upgrade

Les gestionnaires de paquetages comme adept, aptitude, synaptic ou kpackage ne sont pas toujours capables d'intégrer certains changements radicaux et brutaux qui se produisent fréquemment dans les développements de SID (changements de dépendances, de noms de paquets, de scripts de maintenance, etc.). Ceci n'est pas dû à des erreurs des développeurs de ces outils, ce sont des outils bien pratiques et utile à la branche stable de Debian ; c'est juste qu'ils ne sont pas adaptés à la branche SID (unstable).

Utilisez ce que vous voudrez pour rechercher des paquetages, mais tenez-vous en à apt-get pour tout ce qui touche à l'installation, à la désinstallation et à la mise-à-niveau de paquetages ou d'installation.

Les gestionnaires de paquetages comme adept, aptitude, synaptic ou kpackage présentent des limitations face à la sélection complexe de paquetages ; ajoûtez celà au contexte extrêmement changeant des cibles Sid, pire encore à celui de miroirs externes dont la qualité se discute souvent (nous ne les recommandons pas ni n'en utilisons, mais supposons qu'ils correspondent à une réalité sur votre machine) et vous avez tout risque d'obtenir un désastre. L'autre point c'est bien sûr que fonctionnant pour beaucoup en mode graphique, soit init 5 et/ou X, vous risquiez d'endommager votre système de manière irrémédiable en les utilisant à un upgrade ou dist-upgrade...

D'un autre côté, on notera qu'apt-get effectue mot-pour-mot ce que vous lui demandez ; c'est-à-dire que si un problème se pose, il vous en avertit, vous pouvez l'identifier et y remédier dans de nombreux cas. Si apt-get vous propose de désinstaller la moitié de votre système (par exemple lors de la transition radicale de librairies), c'est à vous, l'administrateur, d'y prêter l'attention nécessaire.

C'est pourquoi les habitués de Debian utilisent apt-get et non d'autres outils de gestion des paquetages.

Mentionnons une petite exception dans sidux : !h2 smxi

Chercher un paquetage avec apt-cache

Une commande vraiment très utile du système APT est apt-cache; celle-ci parcourt la base de données APT et vous fournit en retour des informations sur les paquets. Ainsi par exemple, si vous souhaitez connaître le nom de paquets contenant dans leur nom ou leur description les termes "sidux" et "manual" , faites:

$ apt-cache search sidux manual
sidux-manual-de - the official de sidux manual
sidux-manual-fr - the official fr sidux manual
sidux-manual-ro - the official ro sidux manual
sidux-manual-hr - the official hr sidux manual
sidux-manual-common - the official sidux manual - common files
sidux-manual-en - the official en sidux manual
sidux-manual-ru - the official ru sidux manual
sidux-manual-dk - the official dk sidux manual
sidux-manual - the official sidux manual - all languages
sidux-manual-nl - the official nl sidux manual
sidux-manual-es - the official es sidux manual

Pour obtenir une information détaillée se rapportant à un paquetage particulier, utilisez apt-cache show, comme ceci:

$ apt-cache show sidux-manual-en
Package: sidux-manual-en
Priority: optional
Section: doc
Installed-Size: 1088
Maintainer: Kel Modderman <kel@otaku42.de>
Architecture: all
Source: sidux-manual
Version: 01.12.2007.06.03-1
Depends: sidux-manual-common
Filename: pool/main/s/sidux-manual/sidux-manual-en_01.12.2007.06.03-1_all.deb
Size: 391222
MD5sum: 60f2175c3c5709745a4b4256ccc3c49d
SHA1: e275a0b27628b6aa210a4ced48d3646b438e78b8
SHA256: 2792580c7a091521301064180a1d0d8901f0a4af407b90432b9f8d8b6b3603ca
Description: the official en sidux manual
 This manual is divided into common sections, for example, a subject pertaining
 to partitioning is found in Partitioning your Hard Drive, and topics regarding
 the Internet/WIFI are grouped in Internet and Networking. There are some
 topics that cannot be grouped or require stand-alone status.
 .
 As with any new documentation there will be errors/mistakes/typos, although we
 hope otherwise regarding errors and mistakes (typos we can live with) please
 forgive us.
 .
 As the body of work grows, more documentation will be added and we at sidux are
 sure that this will prove to be a very valuable resource for you and we thank
 you for being a part of sidux.

Bien sûr beaucoup d'information sur les paquets Debian se présente encore en anglais. Si plus de traducteurs bénévoles contribuaient à traduire ces informations en version francophone, cela aiderait bien des personnes. En effet, le système APT est désormais capable d'afficher l'information dans la langue du système, dès lors que cette traduction existe.

Toutes les versions installables d'un paquet (en fonction de la structure de votre sources.list) peuvent être énumérées en utilisant cette syntaxe :

$ apt-cache policy sidux-manual-fr
sidux-manual-en:
  Installed: (none)
  Candidate:01.12.2007.06.03-1
  Version table:
     01.12.2007.06.03-1 0
        500 http://sidux.com sid/main Packages

Vous trouverez l'intégralité de l'information sur le système APT à la page APT-HOWTO ou en installant le paquet apt-howto-fr, disponible en version texte ou html.

Recherche de paquet avec kio-apt

kio-apt est une application autonome, fournissant une méthode graphique sans danger, à travers Konqueror, pour la recherche de paquets logiciels. En effet, il s'agit exclusivement d'un outil de recherche pour APT, dépourvu de toute fonction d'installation ou de mises-à-jour.

C'est une bonne solution de rechange, qui évite de recourir à d'autres gestionnaires graphiques de paquetages comme adept, synaptic ou kpackage, qui eux pourraient vous tenter de les utiliser pour modifier votre système, ce qui n'est pas adapté à Debian Sid.

Avec kio-apt, vous pouvez rechercher les paquets disponibles dans la base de données à la fois en ligne et hors-ligne, et obtenir ainsi des informations et des sommaires, extraits de apt-cache policy et apt-cache show.

Vous sont fournis:

  • apt:/search? expression:recherche dans la base de données de paquets ce qui correspondra à l' 'expression'. Similaire à ce que retournerait 'apt-cache search'
  • apt:/show? nom_du_paquet: vous affiche l'information détaillée correspondant au 'nom_du_paquet', ainsi que les éventuelles procédures spécifiques d'installation (policies). Similaire à ce que retournerait 'apt-cache show'.
  • apt:/policy? nom_du_paquet: Affiche les procédures spécifiques d'installation coorespondant au 'nom_du_paquet'. Similaire à ce que retournerait 'apt-cache policy'.
  • apt:/list? nom_du_paquet: liste les différents fichiers que contient l'archive désignée par le 'nom_du_paquet'.
kio-apt-1
kio-apt-2

Pour installer kio-apt

sux
apt-get update && apt-get install kio-apt

Écrivez dans la barre d'adresse de konqueror:

apt:/

puis appuyez sur "Entrée". Vous seront retournées les descriptions de toutes les options accessibles, sous forme aussi bien compacte qu'exhaustive.

Rappel : vous trouverez l'intégralité de l'information sur le système APT à la page APT-HOWTO ou en installant le paquet apt-howto-fr, disponible en version texte ou html.

Dernière actualisation le 13/01/2008 1400 UTC