Une erreur à corriger, une suggestion à faire, une contribution à apporter ?
N'hésitez-plus ! Just write it!
-
Optimiser, nettoyer son installation
- Sortir de la distribution standard
4.1 Gagner de la place
-
Georges Mariano
(Déc 2001)
4.1.1 Les gros paquets
L'utilisation de grep-status (paquet dpkg-ctrl
)
permet de construire une commande (puissante) pour classer les paquets
selon leur occupation disque :
grep-status -nsInstalled-size,Package -F Status ' installed' \
| perl -p00l12 -e 's/\n/ /' \
| sort -rn
4.1.2 Les paquets inutiles
Il est très facile d'installer des tonnes de programmes que
l'on n'utilise jamais. La question est alors de connaître les
paquets que je peux désinstaller sans risque?
Il ne faut supprimer que des paquets dont aucun paquet
ne dépend (que l'on nommera dans la suite les paquets
terminaux). Il est donc possible de les désinstaller sans casser le système, mais
évidemment, si on désinstalle ainsi un paquet terminal, mais utile
quand même, ce n'est pas très malin. Par exemple, j'aime bien
programmer en OCaml, donc le paquet ocaml
peut bien
être terminal, je ne vais pas me priver de mon compilateur favori
pour autant...Voici comment on peut vouloir procéder pour se
débarrasser de certains paquets superflus :
- étape 1 : recenser les paquets terminaux
Il existait (potato) un programme, pkg-nodep dans le
paquet pkg-order
, qui liste les paquets terminaux.
On peut par exemple écrire dans un
fichier la liste de ces paquets avec la commande :
%
pkg-nodep > liste-des-nodeps
Remarque
Une autre commande analogue existe, il s'agit
de deborphan (paquet deborphan
). Elle semble
plus riche en fonctionnalités.
Pour éliminer les paquets dont aucun autre ne dépend, effectuer
simplement :
%
deborphan | xargs apt-get -s -u remove
- étape 2 : pour chaque paquet recensé, déterminer
son utilité réelle
Plusieurs méthodes :
-
Lire le descriptif. La commande
peut être bien utile pour cela.
- Lister les fichiers constituant le
paquet. C'est la commande
. On fera par
exemple attention aux programmes exécutables qui disparaîtront dans
la bataille, en cherchant les fichiers dans bin. On peut
vouloir connaître la date de dernière utilisation des
exécutables. Dans ce cas, la commande
est bien pratique.
- étape 3 : retirer les paquets jugés inutiles
Si on n'est pas sûr, le paquet dpkg-repack
fournit la
commande homonyme utile pour réempaqueter un paquet (avec ses fichiers
de configuration actuels) pour le stocker avant de le retirer.
Si une applications a été installée «non empaquetée
Debian» , il est possible de supprimer un paquet dont celle-ci
dépend et de la rendre dès lors inutilisable...Prudence!
4.2 Détecter les paquets mal installés?
La commande "dpkg -l" donne l'état des paquets installés. La première colonne
du listing utilise un codage à deux ou trois lettres des états possibles (lire les
3 premières lignes du listing pour comprendre leur signification)
La ligne d'un paquet correctement installé commence par le code «ii»
i.e l'«i»nstallation a été demandée et le paquet est (effectivement)
dans l'état «i»nstallé.
La commande ci-dessous permet donc de sélectionner les paquets qui ne
sont pas dans l'état correct.
| grep -v ^ii
Exemple
pc mozilla-mailne 0.9.6-7 Mozilla Web Browser -
pc php4 4.1.2-2 A server-side, ...
pc zope-zshell 1.2-1 Zshell present ...
et effectivement, il y a problème, ainsi ...
dpkg --purge php4
(Lecture de la base de données ...
50815 fichiers et répertoires déjà installés.)
Suppression de php4 ...
Purge des fichiers de configuration de php4 ...
rmdir: `/etc/php4': Aucun fichier ou répertoire de ce type
dpkg: erreur de traitement de php4 (--purge):
le sous-processus post-removal script a retourné
une erreur de sortie d'état 1
4.3 Empêcher la mise à jour d'un paquet?
Il suffit de marquer le paquet « à garder » (on hold, en anglais).
Pour ce faire, on peut soit :
-
utiliser dselect
- il faut se placer sur la ligne
correspondant au paquet, puis appuyer sur 'H'.
- utiliser dpkg
- Voici une belle solution,
qui fonctionne en ligne de commande :
| echo |
"<paquet à garder> hold" | dpkg --set-selections |
4.4 S'abonner à un paquet
Si vous voulez suivre de manière assidue et étroite la <<vie>> d'un ou plusieurs
paquets Debian, le plus simple est de vous abonner au PTS, le système de
suivi de paquet.
4.4.1 Le système de suivi de paquet
|
| (FIXME)
description du PTS |
|
4.4.2 Interface web au PTS
(traduction inspiré d'un message de R. Herzog sur debian-devel-annonce)
La page http://packages.qa.debian.org/nom-de-paquet
donne une vue globale de l'état du paquet "nom-de-paquet". Vous y
trouverez par exemple :
-
informations générales (dernière version, mainteneur,
co-mainteneurs, ...)
- aperçu des versions disponibles dans chaque distributions (y
compris security updates et proposed-updates)
- les messages d'annonce d'uploads sur debian-devel-changes,
- les liens sur l'interface web de buildd et autres informations
relatives à QA (Assurance qualité)
- et enfin, le formulaire d'abonnement au paquet (système PTS usuel)
4.5 Intra et inter-distributions
4.5.1 Un paquet d'unstable/testing alors qu'on utilise stable
Il est parfois utile d'installer un paquet qui n'existe que dans une
distribution supérieure (et moins stable).
Les versions supérieures à 0.5.0 d'apt
permettent de
faire cela simplement. Donc, si vous avez une patate ou plus ancien,
il faudra auparavant obtenir une version d'apt
plus récente
par un autre moyen (backport).
Voici la marche à suivre pour cette opération :
- indiquer la deuxième distribution dans
/etc/apt/sources.list
en ajoutant :
deb http://serveur/debian unstable main contrib
deb http://serveur/debian unstable non-free
deb http://serveur/debian-non-US unstable/non-US main
deb http://serveur/debian-non-US unstable/non-US contrib
deb http://serveur/debian-non-US unstable/non-US non-free
Avec comme serveur par exemple ftp.fr.debian.org
- indiquer la distribution par défaut dans
/etc/apt/apt.conf en incluant la ligne :
APT::Default-Release "stable";
- mettre à jour la liste des paquets
%
apt-get update
- indiquer à apt
qu'on veut récupérer un paquet d'une
autre distribution. Deux syntaxes :
%
apt-get install -t unstable paquet
apt-get install paquet/unstable
apt-get va alors installer le paquet et toutes ses
dépendances. La différence entre les deux versions étant que dans le
premier cas (avec «-t unstable»), les dépendances sont cherchées dans
unstable, alors que dans l'autre cas (avec « /unstable »), les
dépendances sont cherchées dans la distribution par défaut.
En créant un fichier /etc/apt/preferences
, cette technique
peut être affinée en spécifiant des niveaux de préférences, avec par
exemple :
Package: *
Pin: release a=woody
Pin-Priority: 800
Package: *
Pin: release a=stable
Pin-Priority: 500
Package: *
Pin: release a=unstable
Pin-Priority: 80
4.5.2 Un paquet d'une autre distribution
Vous l'aurez sans doute remarqué, il est plus courant de trouver des
paquets (rpm) faits pour les distributions basées sur RedHat que pour
celles basées sur Debian (deb). La tentation est donc grande de
récupérer ces paquets!
Il faut pour cela utiliser le paquet alien
afin de
convertir le paquet «étranger» en paquet Debian.
Les informations relatives aux dépendances, aux répertoires standards
étant différentes selon les distributions, il est impossible de
garantir qu'un paquet ainsi "converti" soit correct (quelque soit le
sens de la conversion!).
Cette manipulation n'est à utiliser qu'en cas d'absolue
nécessité!
C'est à dire jamais...