Quelques petites astuces sous debian, quasi toutes en consoles!

Par R. Suinot: rsuinux@gmx.fr

Contenu


Mise à jour par réseau internet

J'ai la chance de pouvoir me connecter sur un réseau à haut débit. Pour mes mises à jour de ma potatos, voila comment j'ai procédé.
D'abord, renseigner corectement le fichier de configuration de apt: /etc/apt/sources.list Ensuite, récupérer de la doc en français: http://dpt.tuxfamily.org est une de mes références!
Et enfin, je suis passé en version woody, et noyau 2.4.18 (actuellement):

$ sudo apt-get update
$ sudo apt-get upgrade
ou
$ sudo apt-get dist-upgrade
Puis au fur et à mesure, je fais seulement
$ sudo apt-get update
$ sudo apt-get upgrade -u
avec un complément à la main si besoin. Le '-u' permet de voir exactement les paquets à mettre à jour, et si vraiment, je veux être certain de ne pas faire de bétise, je commence par faire une simulation:
$ sudo apt-get update
$ sudo apt-get upgrade -u -s
Cela ne récupère pas les paquets, mais donne des info sur ce qu'il va se passer, si l'on execute la mise à jour.


Vérification des paquets installés

J'ai eu quelques problèmes avec certain(s) paquet(s). Il m'a donc fallut savoir qu'est-ce qui était installé ou non. Voyons d'abord comment connaitre tous les paquets que l'on peut installer:

$ dpkg -l | less
Cela donne la liste de tous les paquets présents dans la base de données debian. Seul ceux dont les deux premiers caractères sont «ii». Exemple:
ii  xserver-xfree86               4.1.0-14pre15v3               the XFree86 X server
Comme vous le voyez, il y a aussi une note explicative.
A présent, disont que je cherche tous les paquets contenant le mot kernel:
$ dpkg -l | grep ^ii | grep kernel | less
signification:
lister tous les paquets de la base de donnée, puis ne garder QUE les lignes que commancent par «ii», puis ne garder que les lignes ne contenant que le mot «kernel» pour enfin afficher avec less (au cas ou cela dépasserait la taille de la fenêtre de la console, j'utilise toujours less). Résultat?
$ dpkg -l | grep ^ii | grep kernel | less
ii  kernel-image-2 voyager.0.6    Linux kernel binary image for version 2.4.17
ii  kernel-package 7.99           Debian Linux kernel package build scripts.
ii  kernel-source- 2.4.17-1       Linux kernel source for version 2.4.17
ii  pciutils       2.1.9-2        Linux PCI Utilities (for 2.[1234].x kernels)
ii  pcmcia-modules 3.1.31-7+voyag PCMCIA Modules for Linux (kernel 2.4.17).
ii  toshiba-2.2.19 1.9.9-1+voyage Toshiba kernel driver
Génial, non?
Mais on peut encore améliorer:
Pour avoir tout le contenu des informations listées ci dessus (remarquez qu'il manque des données pour 'pcmcia-modules...'), vous ajoutez une variable au shell:
$ export COLUMNS=125
Et là, vous aurez tout! A noter, toutefois, que vous n'êtes pas obligé d'utiliser grep pour une simple recherche, car dpkg reconnait les caractères génériques (* et ?):
$ dpkg -l 'kernel*'


Enlever un paquet debian

Voila comment enlever et purger complètement un paquet debian:

# apt-get --purge 
Cela vous enlève le paquet mais aussi tous les fichiers de configuration!


Vider le cache des archives

Lorsque vous faites une mise à jour de votre debian, apt place les paquets récupérés dans un cache, afin de ne pas les re-télécharger en cas de problème(s). Ce cache se trouve dans /var/cache/apt/archives/.
Le petit problème, c'est que tout ça tient pas mal de place, à force.... Il faut donc purger tout ça de temps en temps. Voila comment vous y prendre: (exemple sur ma machine)

$df
Système de fichiers          1K-blocs       Utilisé la capacité disponible% Monté sur
/dev/hda5              9851308   2949180   6401708                   32%           /
$ sudo apt-get clean
$df
Système de fichiers          1K-blocs       Utilisé la capacité disponible% Monté sur
/dev/hda5              9851308   2829340   6521548                   31%          /


Rechercher les paquets enlevé mais dont il reste des fichiers (config, ...)

D'abord, rechercher les paquets enlevé et non purgés:

$ dpkg -l | grep ^rc
rc  alsa-source                         0.4.1i-5                            ALSA driver source
rc  alsaconf                            0.4.2-3                             ALSA configurator
rc  anacron                             2.1-5.1                             a cron-like program that doesn't go by time
rc  at                                  3.1.8-10                            Delayed job execution and batch processing
rc  august                              0.63-beta1-3                        Tcl/Tk HTML editor.
....
ne prendre que les noms des paquets (pour la démo, je ne prend que les paquets dont le nom commence par 'a'):
$ dpkg -l | grep ^rc | awk '{print $2}' | grep ^x
xchat-gnome
xcontrib
xdemineur
xdm
xfonts-cjk
xfreecd
xine
xlibmesa3
Il ne reste plus qu'a passer ça à dpkg, en su bien sur!
# dpkg -l | grep ^rc | awk '{print $2}' | grep ^x  | xargs dpkg --purge
(Lecture de la base de données... 75986 fichiers et répertoires déjà installés.)
Suppression de xchat-gnome ...
Purge des fichiers de configuration de xchat-gnome ...
Suppression de xcontrib ...
Purge des fichiers de configuration de xcontrib ...
Suppression de xdemineur ...
Purge des fichiers de configuration de xdemineur ...
Suppression de xdm ...
Purge des fichiers de configuration de xdm ...
Suppression de xfonts-cjk ...
Purge des fichiers de configuration de xfonts-cjk ...
Running mkfontdir in misc font directory...done.
Running update-fonts-alias in misc font directory...done.
Suppression de xfreecd ...
Purge des fichiers de configuration de xfreecd ...
Suppression de xine ...
Purge des fichiers de configuration de xine ...
Suppression de xlibmesa3 ...
Purge des fichiers de configuration de xlibmesa3 ...


Purge de paquets...

Voici ma méthode (je n'ai aucun mérite, je lis la faq de debian-user-french) pour trouver les paquets qui ne servent pas (plus?). Attention, peut-être avez vous déjà cherché un peu et trouvé des références à pkg-nodep. Sur woody (et supérieur je pense), ceci n'existe plus, mais est remplacé par le paquet deborphan.
Ceci étant dit, voila comment je pratique:
Recherche des paquet n'ayant aucune dépendance (la liste des paquets est tronquée):

# beborphan
freetype2
glutg3
ldso
libstdc++2.9-glibc2.1
libgtk1
libbz2
giblib1
libgimp1
Une fois en possession des noms des paquets, il ne faut pas les enlever directement! Avant tout, il faut jeter un oeil pour savoir s'il ne sont pas utile quand même (teste avec le paquet libgimp1):
# apt-cache show libgimp1
Package: libgimp1
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 162
Maintainer: Ben Gertzfield 
Source: gimp
Version: 1.0.4-3
Depends: libc6, libc6 (>= 2.1), libc6 (>= 2.1.2)
Description: Libraries necessary to run the GIMP
 This package includes the libgimp and libgimpui libraries, necessary
 to run The GIMP.
 .
 It has been split off from the main gimp package in order to
 facilitate easy development for packages that use libgimp and libgimpui,
 like SANE, the Scanner Access package for GIMP.
N'ayant pas besoin du paquet je vire!
STOP!
Une précaution est nécessaire: reconstituer le paquet, puis s'il n'y a pas de problème au bout d'un certain temps, alors là, oui, on pourra tout effacer. Donc, reconstitution du paquet:
# dpkg-repack libgimp1
dpkg-deb: building package `libgimp1' in `./libgimp1_1.0.4-3_i386.deb'.
A noter: le paquet reconstitué est placé dans le répertoire ou vous vous trouvez actuellement.
Maintenant, j'ai un paquet près à être remis en cas de problème, je peux donc enlever celui présent sur mon système:
# apt-get remove --purge libgimp1
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  libgimp1* 
0 packages upgraded, 0 newly installed, 1 to remove and 1  not upgraded.
Need to get 0B of archives. After unpacking 166kB will be freed.
Do you want to continue? [Y/n] y
(Lecture de la base de données... 73676 fichiers et répertoires déjà installés.)
Suppression de libgimp1 ...
Et voilà.




S'il vous arrivait de vous servir de cette doc, envoyez moi un petit mot, merci!