Manipulations de base

3.3.1 Mettre à jour un paquet (et un seul).

Très simple, il suffit de demander à apt d'installer ce paquet. Si apt détecte une nouvelle version pour ce paquet, l'utilisateur en sera averti.

1. Remettre la base à jour :

      apt-get  update

2. Installer le paquet :

      apt-get  install nom-du-paquet

3.3.2 Bloquer la mise à jour d'un paquet

Dans le cas d'un paquet personnalisé ou particulièrement important, il est possible de vouloir empécher une mise à jour (plus ou moins volontaire...).

Il sufffit alors «de le passer en hold» :

 echo "nom-du-paquet hold" || dpkg --set-selections

3.3.3 Installation d'un .deb

La commande usuelle pour installer «directement» un paquet (fichier .deb) est évidemment :

 dpkg  --install nom_pack_arch.deb

Toutefois, il est nécessaire de préciser que la vérification des dépendances effectuée par dpkg est moins complète que celle de apt. En conséquence, et notamment dans le cas d'un paquet recompilé « à la main », il est possible d'effectuer une installation par dpkg et de déstabiliser le système des dépendances, conduisant ainsi à des problèmes ultérieurs d'installation de paquets, de complexité variable.

Il est donc recommandé, autant que possible, de passer par une installation par apt.

3.3.4 Règles de survie

Quelques règles à respecter le plus scrupuleusement possible afin d'éviter de mauvaises surprises :

  1. Les installations/retraits de paquets par apt doivent systématiquement être simulées au préalable :

 apt-get  action paramètres -s
  1. Toute installation de paquet devra être réalisée par apt, au risque, dans le cas contraire, de rendre incohérentes les dépendances de l'installation.
  2. Dans tous les cas (surtout face à un problème), prendre le temps de lire attentivement les messages des commandes apt et dpkg.

3.3.5 Fichiers et paquets

La liste des fichiers d'un paquet installé

    dpkg  -L nom-du-paquet

Le paquet installé fournissant un fichier

    dpkg  -S nom-du-fichier

3.3.6 Dpkg

La liste des paquets répertoriés

    dpkg  -l

Installer un fichier .deb

    dpkg  -i fichier.deb

Purger un paquet

    dpkg  --purge nom-paquet

3.3.7 Apt

Nous supposons ici que le fichier des sources est correct.

Mise à jour des index apt

    apt-get  update

Mise à jour de tous les paquets

    apt-get  upgrade

Installer des paquets

    apt-get  install paquet1 ...paquet2

Retrait de paquets

Le paquet est retiré mais les fichiers de configuration sont conservés

    apt-get  remove paquet1 ...paquet2

Purge de paquets

Le paquet est retiré de même que les fichiers de configuration au niveau système.

    apt-get  remove --purge paquet1 ...paquet2

Les configurations au niveau utilisateur pour une application sont bien souvent stockées dans un répertoire utilisateur .application . Il convient donc de renommer ce répertoire (e.g. application.old ) (plutôt que de l'éliminer radicalement).

Vérification de l'état actuel

À effectuer systématiquement en fin de manipulation importante ou pendant la résolution d'un problème :

    apt-get  -f install

Nettoyage du cache apt

    apt-get  clean

Utilisation d'un proxy pour apt (Julien Combes )

Dans le fichier /etc/apt/apt.conf , ajouter :

 # pour un proxy http
 Acquire::http://[["user"][:pass]@]host[:port]/
 # ou pour un proxy ftp.
 Acquire::ftp://[["user"][:pass]@]host[:port]/ 

Problèmes usuels

Conflit sur un fichier

Message caractéristique de apt-get

 ...
 Dépaquetage de XXXXXX (à partir de
 .../<XXXXXX*-'''_i386.deb) ...  dpkg : erreur de traitement de  /var/cache/apt/archives/XXXXXX'''-*.deb  (--unpack) :  tentative de remplacement de «fichier», qui appartient aussi  au paquet YYYYYY  dpkg-deb: sous-processus paste tué par le signal (Relais brisé (pipe))   ''Description du problème''  Le paquet en cours d'installation XXXXXX contient le fichier fichier alors que celui-ci est également contenu dans le paquet déjà installé YYYYYY . Le fichier ne pouvant appartenir à deux paquets distincts, un conflit est signalé.  ''Solution(s)''  Deux solutions sont proposée, la première est plus naturelle mais non-systématique, la seconde est radicale mais à éviter autant que possible...  ''' En général, ce conflit est signalé lorsque une réorganisation de paquets (et donc des fichiers) est mise en place. Il convient donc de chercher à installer l'ensemble des paquets nécessaires, ce qui devrait conduire au remplacement du paquet en place YYYYYY et donc à l'élimination naturelle du conflit.  ''' Terminer l'installation de XXXXXX par utilisation de l'option --overwrite de dpkg   === Saturation apt  Message caractéristique de apt-get    Reading Package Lists... Error!  E: Dynamic ["MMap"] ran out of room  E: Error occured while processing <XXXXXX> (NewVersion1)
 E: Problem with MergeList 
 /var/lib/apt/lists/..._Packages
 E: The package lists or status file could not be parsed or  opened.

Description du problème

Une table de taille fixe est allouée en mémoire pour stocker les informations relatives aux paquets fournis par les sources Debian. Ce message indique la saturation de cette table et donc l'incapacité de poursuivre l'analyse des sources Debian.

Solution(s)