Créer et maintenir un dépôt de paquets Debian
[20 mn de lecture - paru le 5/15/2006 2:16:42 PM - Public : Débutant]
|
   
|
Auteur
1 Mise en place côté serveur
Pour créer et administrer son dépôt Debian, j’ai choisi d’utiliser un utilitaire bien pratique, reprepro.
1.1 La théorie
Avant de commencer la pratique, analysons globalement le fonctionnement.
Un dépôt de paquets est en réalité un serveur web http organisé d’une manière bien particulière, très hiérarchisée. Voici le schema du dépôt en local:
Le dossier conf contiendra un fichier de configuration du dépôt (utilisé seulement par reprepro)
Le dossier db contiendra la base de donnée du dépôt (utilisé seulement par reprepro)
Le dossier dists sera composé de dossiers contenant des informations sur les paquets du dépôt.
Le dossier incoming est un dossier exclusivement utilisé par reprepro.
Le dossier pool contiendra les fichiers binaires du dépôt, classés par dossiers alphabétiques, indépendamment de l'architecture ou de la distribution.
En pratique, seuls les dossiers dists et pool sont nécessaires pour le client souhaitant accéder au dépôt.
1.2 Configuration
Installez tout d'abord reprepro sur votre système:
# apt-get install reprepro
Afin que votre dépôt soit effectif, il faut que vous ayez installé et correctement configuré un serveur web sur votre machine serveur.
La toute première chose à effectuer est de choisir un dossier pour votre dépôt.
Comme votre dépôt sera accessible par http, je vous conseille de créer un dossier à l'intérieur de votre dossier web. Je prendrai /var/www/depot dans mon exemple.
Nous allons ensuite créer un fichier nommé distributions qui contiendra les informations, utiles pour reprepro, sur les systèmes pour lesquels sont destinés vos paquets. Ce fichier doit être dans le dossier conf.
Procédons:
# mkdir /var/www/depot/conf
# vi /var/www/depot/conf/distributions
Contenu du fichier distributions (exemple):
Origin: Ubuntu
Label: Ubuntu
Suite: dapper
Version: 6.06
Codename: dapper
Architectures: i386
Components: main
Description: Ubuntu Dapper 6.06
L'option Codename sera utilisée afin de créer le dossier pour cette entrée.
Vous pouvez créer plusieurs entrées simplement en les séparant d'un simple saut de ligne.
Pour connaître tous les champs existants, reportez-vous au man de reprepro, section « Config Files »
Maintenant que ce fichier est correctement rempli, reprepro va pouvoir correctement traiter les paquets .deb que vous lui fournirez.
1.3 Gestion des paquets (ajout et suppression)
Ajout
Pour ajouter un paquet .deb au dépôt, nous allons utiliser l'argument includedeb
Reprepro decide du placement physique du paquet en fonction des informations de celui ci (Comme par exemple l'architecture ou le composant).
# reprepro -Vb /var/www/depot includedeb dapper monpaquet.deb
Analyse de la commande:
L'option -V permet d'afficher les détails sur l'opération effectuée.
l'option -b permet de spécifier le répertoire de base du dépôt qui devra être spécifié juste après. Ici /var/www/depot. Le chemin peut être relatif ou absolu.
includedeb indique à reprepro que nous voulons ajouter un fichier .deb
S'en suit la distribution souhaitée. Ici dapper. Cela doit correspondre à une des entrée Codename du fichier distributions.
Puis nous terminons avec le fichier en lui même. (En supposant dans cet exemple qu'il est dans le même dossier d'où nous effectuons la commande)
La commande devrait retourner quelquechose de similaire à ceci:
Created directory "/var/www/depot/pool"
Created directory "/var/www/depot/pool/main"
Created directory "/var/www/depot/pool/main/m"
Created directory "/var/www/depot/pool/main/m/monpaquet"
db: 'monpaquet' added to 'dapper|main|i386'.
Created directory "/var/www/depot/dists"
Created directory "/var/www/depot/dists/dapper"
Created directory "/var/www/depot/dists/dapper/main"
Created directory "/var/www/depot/dists/dapper/main/binary-i386"
Suppression
Pour la suppression, nous utiliserons l'argument remove:
# reprepro -Vb /var/www/depot remove dapper monpaquet
La commande se décompose ainsi:
L'appel de reprepro avec les options -V et -b comme nous l'avons vu pour l'ajout.
L'argument remove afin de spécifier notre volonté de retirer un paquet du dépôt.
S'en suit
la distribution visée (ici dapper)
Puis le nom du paquet tel qu'il est inscrit dans les informations du paquet. On n'appelle pas le fichier en lui même. Ici j'ai supposé que le paquet que je veux retirer s'appelle « monpaquet » Ceci est dû au fait que reprepro stocke dans sa base de donnée (le dossier « db » rappelez-vous) les paquets qu'il a mis en place d'après nos commandes passées.
Pour enlever un paquet seulement pour un composant ou une architecture, vous pouvez utiliser les options -C <composant> ou -A <architecture>
Exemple:
# reprepro -Vb /var/www/depot -C main -A i386 remove dapper monpaquet
|