Mettre sa linuxette à jour

Les utilitaires pratiques sous Debian
samedi 1er juin 2002
par  Gaétan RYCKEBOER
popularité : 1%

La distribution Debian est réputée pour sa stabilité, d’une part, et le rythme infernal avec lequel les nouvelles versions sortent (hum).
Autrement dit, si vous n’avez pas un serveur, et que vous fonctionnez sous Debian... Attendre les versions stables n’est pas forcément la meilleure solution.

Voici comment ça marche.

Debian, distribution "démocratique" et non commerciale, ce n’est pas toujours simple... Un peu comme IBM, qui invente des outils géniaux - dans leur fonctionnement - mais... austères dans leur interface, et anti-ergonomiques.

Structuration

Tout d’abord, la distribution Debian est divisée en plusieurs branches, dans un état nommé :
- unstable, en développement perpétuel ;
- testing, en phase de tests de stabilité ;
- frozen, pas encore stable mais ça ne bouge plus beaucoup ;
- stable, la fameuse distribution stable, idéale pour les serveurs à haute disponibilité, et nécéssitant des besoins conséquents en sécurisation.

Les branches à proprement parler sont les versions de Debian, désignées par un nom de code :
- 2.1 slink qui n’est plus "supportée" ;
- 2.2 potato, actuellement stable ;
- 3.0 woody, actuellement testing ;
- 3.1 sid, actuellement unstable.

Pour chaque état Debian, qui actuellement correspondent aux 3 branches précédentes [1], et des mises à jour continuent à être faites en permanence dessus ; que ce soit des ajouts (sur les paquetages en testing et unstable), ou des mises à jour de sécurité (sur les paquetages en frozen et stable).

Comment ça marche ?

Un des aspect intéressant de la distribution Debian est le système qu’ils ont adopté pour mettre les packages [2] à la disposition du plus grand nombre. Comme Debian n’est pas une société commerciale, mais plutôt une association de dangereux malfaiteurs contributeurs bénévoles sur Internet, les packages sont accessibles très facilement via des sites FT ou des sites Web, et très facilement installables sur votre machine.

De plus, une gestion très évoluée et efficace des dépendances entre les packages [3] qui permet d’installer un logiciel par le biais d’une seule commande.

Enfin, les développeurs Debian ont pensé aux personnes n’ayant pas accès à Internet de manière permanente et/ou gratuite. Ils ont écrit un certain nombre d’outils pour récupérer, construire, utiliser, upgrader des images sur CD, afin de mettre à jour sa machine de chez soi, "comme si" on était sur Internet.

Les utilitaires

Le premier utilitaire, celui qu’il faut oublier rapidement, est dpkg. Il sert à installer un paquet (comme rpm pour les RedHat/Mandrake).

Un niveau au dessus, se trouve dselect. Lui aussi, il vaut mieux l’oublier.

Un niveau au dessus, se trouve apt-get. Lui, il ne faut pas l’oublier... C’est le plus utile.
La fonction de apt-get consiste à chercher un emplacement où récupérer un paquetage donné, de récupérer tous les paquetages dont il dépend, et de gérer les conflits entre paquetages [4].

Encore au dessus, se trouvent tout un panel de petits utilitaires bien pratiques, pour recréer une "source" pour apt-get ; on trouve ainsi apt-move, apt-proxy, apt-zip, et bien d’autres.

apt-get : mise à jour d’une machine

Le fonctionnement d’apt-get est relativement simple. Il possède une liste de sources (un CD, un serveur internet, un répertoire local...), récupère la liste des paquets disponibles sur ces différentes sources et, à la demande de l’administrateur, installe un/des paquetage(s) ainsi que tous les packages dont il(s) dépend(ent).
La syntaxe d’apt-get est la suivante :

apt-get <commande> paquet(s)

La liste des commandes disponibles est :
- install : pour installer un paquetage ;
- remove : pour enlever un paquetage ;
- update : pour récupérer la liste des paquetages disponibles sur les différentes sources ;
- upgrade : pour mettre tous les paquetages à jour avec les versions les plus récentes trouvées.
Ainsi, apt-get install galeon donnera la liste des packages à installer pour faire tourner galeon, la taille des fichiers à récupérer, la taille de tout cela une fois décompacté, et installera l’ensemble. Pour le cas présent, il faut récupérer mozilla, donc... environ 15Mo ;-)

Simple, non ?

Plus difficile : le fichier /etc/apt/sources.list
C’est dans ce fichier que l’on place la liste des sources disponibles. La syntaxe est un peu bizarre, et je joins un fichier sources.list comme exemple.

Texte - 1.5 ko
sources.list
Un fichier /etc/apt/sources.list d’exemple

L’idée étant de recenser un certain nombre de sources, sur Internet ou non, avec le type de paquetages que l’on peut y trouver, et la distribution pour laquelle on peut trouver tout cela. Le mieux étant de lire le fichier d’exemple, et d’y faire le minimum de modifs ;-)
Sinon, l’utilitaire apt-setup permet de configurer relativement simplement ce fichier de sources.

apt-cdrom : ajout d’un CD-ROM aux sources pour apt

Un CD-Rom étant une source comme une autre, il peut servir à installer des paquets. Et heureusement. Seulement... Le format de l’entrée dans le fichier de liste est un peu... Bizarre.
Si vous récupérez et gravez une image ISO d’une nouvelle version de Debian, et/ou récupérez le CD complet (par Linux Mag France, un pote ou autre), l’utilitaire apt-cdrom permettra de le lire, de voir comment il fonctionne, et de l’ajouter à la liste des sources. C’est plus pratique.

apt-move

Ça, c’est carrément génial.
Le principe, c’est de mettre à profit les paquetages déjà téléchargés [5] et copiés dans un répertoire de "cache" sur votre disque dur [6], et de les transformer en une belle arborescence toute propre et bien fignolée, pour servir de source, à une autre machine par exemple.

En effet, les paquets téléchargés se trouvent dans /var/cache/apt/archives/, et ne sont utilisables que par dpkg. Le problème, c’est que dpkg ne gère absolument pas les dépendances, et agit de la même façon que rpm sur mandrake [7], et rend vite l’admin fou par des messages du type "impossible d’installer, il manque le paquetage xyz".
L’idée est donc de lire ce que contiennent les paquetages, de créer une arborescence pour une branche donnée, de créer la liste des paquetages et de rechercher les dépendances et enfin de copier les fichier dans la nouvelle arborescence toute propre. Ensuite, une ligne dans le sources.list, et le tour est joué.

Attention, apt-move ne fonctionne pas tout seul, il faut d’abord éditer le fichier de configuration de la bête...

Voici quelques variables tirées du fichier /etc/apt-move.conf

# Les sites dans  ``/etc/apt/sources.list'' que vous voulez "miroiter"
APTSITES="ftp.minet.net/pub/distrib/debian/ non-us.debian.org/debian-non-US www.opera.com/debian"

# Les architectures pour lesquelles vous voulez générer la source
ARCHS="i386"

# Le chemin où créer la source
LOCALDIR=/mnt/archives/apt-mirror

# La distribution pour laquelle vous souhaitez créer la source
DIST=testing

Pour créer une source à partir du cache apt, commencez par modifier le fichier apt-move.conf, puis tapez les commandes suivantes :

# apt-move get
# apt-move packages
# apt-move move

Et voilà !

Il ne vous reste plus qu’à ajouter votre source locale à /etc/apt/sources.list.

apt-proxy : un cache pour plusieurs machines

Une autre méthode de partage de connexion Internet entre plusieurs machines Debian, c’est apt-proxy. Comme son nom l’indique, il sert de cache intermédiaire entre les sources sur Internet, et votre apt-get local. Quel intérêt, puisqu’on l’a vu, il y a déjà un cache ?
Il y en a plusieurs.
Premièrement, apt-proxy utilise rsync. Il va donc récupérer de manière plus efficace les paquetages depuis les sources sur Internet. Et tout particulièrement si on demande à rsync d’activer le compression [8].
Deuxièmement, apt-proxy peux délivrer des paquetages à plusieurs machines sur le réseau local, que ce soient des sources sur Internet, comme pour votre machine locale, ou des sources locales générées par apt-move.
Enfin, apt-proxy ne récupère que les différences entre les fichiers de description des paquets (fichiers pouvant atteindre plusieurs mégas), permettant de se tenir à jour de manière plus rapide.

De cette façon, si on a un LAN avec plusieurs machines Debian, on ne téléchargera les packages qu’une seule fois (la première machine qui le demande), ou on fournira sa propre source créée avec apt-move.

En revanche, dans la mesure où ce n’est plus apt-get mais apt-proxy qui récupère le package depuis la source Internet, les "statistiques" de temps écoulé, de vitesse de transfert et de durée de téléchargement estimée ne seront plus valides... puisque apt-proxy attend d’avoir téléchargé complètement un paquetage avant de le transmettre à la machine qui le demande.

Pour utiliser apt-proxy, il va falloir mettre les sources de votre apt vers le fichier de apt-proxy, et changer indiquer à apt-get de ne plus utiliser que apt-proxy pour récupérer les paquetages.

Voici pour exemple mon fichier apt-proxy.conf, à partir des sources de mon /etc/apt/sources.list.

Texte - 3.8 ko
apt-proxy.conf
Le fichier de configurationpour apt-proxy

Le /etc/apt/sources.list ne contiendra plus que "localhost:9999" à la place du nom du serveur proposant les sources sur le net.
Ainsi, la ligne

deb ftp://non-us.debian.org/debian-non-US stable/non-US main contrib non-free

sera transformée en

deb http://localhost:9999 stable/non-US main contrib non-free

Attention la configuration de apt-proxy n’est pas forcément très simple. Une bonne lecture de la page de MAN et du fichier de configuration risque de s’avérer indispensable.

Debian, j’en veux

Voilà... J’espère que ce petit tour d’horizon vous aura permis d’y voir plus clair.

Comme d’habitude, n’hésitez pas à faire des commentaires sur le forum, des réclamations, des demandes d’améliorations ;-)
En attendant, voici de quoi récupérer les 8 images CD de la woody (actuellement en testing) pour vous installer une nouvelle distrib, ou mettre à jour une debian existante...


[1il n’y a pas en ce moment de frozen, la woody est toujours en testing

[2un package ou paquetage, c’est un fichier qui contient tout ce qu’il faut pour installer un logiciel

[3ie. quelque chose comme "galeon utilise mozilla, qui utilise mozilla-common, qui utilise java, etc."

[4Les fichiers identiques, les paquetages à mettre à jour, les packages à supprimer...

[5downloadés, "descendus", récupérés...

[6si vous n’avez pas désactivé la conservation des packages après installation.

[7SuSE, RedHat, Mandrake...

[8la ligne RSYNC=rsync -zu --partial dans le /etc/apt-proxy/apt-proxy.conf fera l’affaire


Commentaires

lundi 15 juillet 2002 à 11h48 - par  asr

Et une autre astuce de dpkg, pour avoir la liste des fichiers (et leur emplacement) d’un package :
dpkg -L package-name

Logo de Gabriel
lundi 10 juin 2002 à 15h09 - par  Gabriel

Vous pourriez vouloir installer un package en ne connaissant qu’un mot cle (exemple galeon)
apt-cache search permet de trouver les package qui contiennent ce mot cle

exemple :
/home/gabriel# apt-cache search galeon
galeon - Mozilla based web browser with GNOME look and feel
galeon-nautilus - Mozilla based web browser with GNOME look and feel with Nautilus support
wprint - Print any charset from web browsers and HtmlDoc

Si vous voulez connaitre la liste des packages installes sur votre machine
utilisez dpkg -l

exemple

/home/gabriel# dpkg -l | grep galeon

ii galeon 1.2.0-6 Mozilla based web browser with GNOME look an

Voila c’etait mes 2 eurocents
Gabriel

Logo de asr
lundi 10 juin 2002 à 12h36 - par  asr

Si vous utilisez réguliÚrement Debian, vous pourrez avoir besoin de paquets disponibles dans une version plus récente que votre version stable ou testing actuelle.

Il est possible de récupérer ces paquets, sans toutefois mettre à jour toute sa distribution.

Pour ce faire, dans votre fichier /etc/apt/apt.conf, ajoutez :

APT::Default-Release "testing";

Et lors de l’installation d’un paquet, utilisez l’option "-t", comme dans l’exemple :

# apt-get -t unstable install <nom du paquet>

Bien évidemment, il faut avoir une "source" debian "unstable" ou "testing", pour avoir la liste des paquets.

Cette astuce précise simplement à apt-get de ne pas tenir compte des paquets qui seraient plus récents que les paquets de la branche définie par défaut dans le apt.conf.

ATTENTION il est dangereux de faire ce genre de manipulation, et cela doit être réservé à quelques cas trÚs précis, comme un php 4.2 (au lieu du 4.1 en potato), ou ce genre de choses. Si vous avez besoin de plus de 5 ou 6 paquets... passez en unstable avec tous lkes problÚmes que cela implique, ou passez vous en.

Agenda

<<

2019

>>

<<

Août

>>

Aujourd’hui

LuMaMeJeVeSaDi
   1234
567891011
12131415161718
19202122232425
262728293031 

Annonces

Annuaire LibreNord

Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org