Mettre sa linuxette à jour
par
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.
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.
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...
[1] il n’y a pas en ce moment de frozen, la woody est toujours en testing
[2] un package ou paquetage, c’est un fichier qui contient tout ce qu’il faut pour installer un logiciel
[3] ie. quelque chose comme "galeon utilise mozilla, qui utilise mozilla-common, qui utilise java, etc."
[4] Les fichiers identiques, les paquetages à mettre à jour, les packages à supprimer...
[5] downloadés, "descendus", récupérés...
[6] si vous n’avez pas désactivé la conservation des packages après installation.
[7] SuSE, RedHat, Mandrake...
[8] la ligne RSYNC=rsync -zu --partial
dans le /etc/apt-proxy/apt-proxy.conf fera l’affaire
Commentaires