Site de la section BTS IRIS du Lycée Condorcet de Schoeneck

Construction d’un paquet deb Debian

mardi 28 octobre 2008 par alain

Introduction

Afin de simplifier et d’automatiser en grande partie l’installation du poste de pesée on crée des paquets installables en ligne de commande permettant de placer automatiquement tous les fichiers nécessaires aux bons endroits et de faire le configuration.

L’installation par paquets permet également l’installation automatiques de tous les autres paquets nécessaires en les ajoutant en tant que dépendances.


Structure d’un packet Debian

Un paquet Debian est un dossier représentant l’arborescence d’un système linux excepté un seul dossier appelé « DEBIAN » dans lequel on place le fichier control (qui contient les propriétés du paquet) et des scripts d’installation et de desinstallation du paquet (preinst, postinst, prerm, postrm).

Les fichiers placés dans les dossiers correspondant à ceux du système seront placé dans ces derniers lors de l’installation.

Je vais prendre comme exemple l’installation de deux scripts permettant la création et la suppression de comptes utilisateurs sur un annuaire LDAP. Ces deux fichiers ldapadduser et ldapdeluser seront à copier dans le dossier /sbin pour n’être exécutable que par l’administrateur de la machine.

Ces scripts sont écrits en python et nécessitent donc l’installation de l’interpréteur et du module ldap de python (dépendances).

Nous copierons ces scripts dans le dossier /sbin de la machine (généralement le serveur LDAP).

Il faut donc commencer par créer un dossier qui porte le nom du paquet qui contiendra l’arborescence partielle du système de fichier à modifier ainsi qu’un dossier DEBIAN.

Le dossier DEBIAN contiendra jusqu’à 5 fichiers :

  • control : Contenant les informations sur le paquet
  • preinst : Qui est le script exécuté avant la copie des fichiers (ex : sauvegarde de fichiers qui seront écrasés)
  • postinst : Qui est le script exécuté après l’installation (copie de fichiers)
  • prerm : Qui est le script exécuté avant la désinstallation (suppression de fichier)
  • postrm : Qui est le sript exécuté après la suppression des fichiers (ex : restauration d’anciens fichiers sauvegardé au préalable)

L’installation consiste à copier les fichiers des dossiers présents dans l’arborescence du paquet aux mêmes endroits sur la machine cible. La désinstallation fera l’opération inverse, à savoir la suppression des fichiers.

Le fichier "control" du dossier DEBIAN permet de définir les caractéristiques du paquet.

Voici le contenu du fichier DEBIAN/control qui servira à la création de mon paquet :

Explications :

  • Package : reprends le nom du paquet
  • Version : le numéro de version du paquet
  • Section :
  • Priority :
  • Architecture : définit le type d’architecture ciblée
  • Depends : définit les paquets dont dépend l’installation du nouveau paquet
  • Maintainer : nom de la personne chargé de la maintenance du paquet
  • Description : description brève du paquet.

Pour construire le paquet on utilisera la commande dpkg-deb —build . Cette commande fait partie du paquet dpkg-dev.


$dpkg-deb --build ldapusers

Et on obtient finalement le paquet ldapusers.deb

Pour aller plus loin dans la construction de paquet, voici un article qui présente la création d’un paquet nécessitant l’exécution de scripts post-install et pre-remove :

http://www.queret.net/wiki/index.ph...


Création d’un dépôt de paquets

La gestion des paquets permet de maintenir à jour le système ainsi que d’installer les logiciels nécessaires au fonctionnement du programme. L’intérêt de créer votre propre dépôt de paquets est de pouvoir disposer d’un système de mises à jour personnalisées centralisé.

Un dépôt de paquets est un espace web organisé de manière très hiérarchisée. Afin de créer facilement un dépôt personnel on utilise le logiciel reprepro. L’arborescence du serveur web sera la suivante :

Les dossiers conf, db et incoming sont utilisés exclusivement par reprepro et ne servent donc pas au client.

Le dossier conf contiendra le fichier le configuration nommé distributions et le dossier incoming permettra de faire des uploads.

Le dossier dists sera composé de dossiers contenant des informations sur les paquets du dépôt et le dossier pool contiendra les paquets du dépôt classés par dossiers alphabétiques.

Avant tout, il faut installer reprepro qui est un programme permettant la création du dépôt sur votre serveur. Pour cela il suffit de taper la commande suivante dans une console en mode administrateur :


# apt-get install reprepro

La première étape dans la création de votre dépôt est de choisir un dossier dans lequel il sera installé. Comme votre dépôt sera accessible par http, il est conseillé de créer le dossier à l’intérieur du dossier web :

/var/www/depot

La commande à taper pour créer votre dossier est la suivante :


# mkdir /var/www/depot

Puis, il va falloir créer un dossier de configuration dans lequel on créera un fichier nommé distributions qui contiendra les informations utiles à reprepro.

Vous devez procéder de la façon suivante :


# mkdir /var/www/depot/conf
# vi /var/www/depot/conf/distributions

Puis entrez le contenu suivant :

Le site de la page de manuel de reprepro fournit le détail des informations à placer dans le fichier distributions. http://mirrorer.alioth.debian.org/r...

Il se peut que vous deviez adapter cette configuration à votre machine.


Mise en place des paquets sur le dépôt

Maintenant que votre dépôt est créé, il vous faut y placer vos paquets. Vous allez apprendre dans cette partie comment créer et supprimer des paquets de votre dépôt.

L’ajout d’un paquet :

Pour ajouter un paquet .deb au dépôt, il faut utiliser l’argument includedeb . Reprepro décide lui-même du placement physique de votre paquet sur le depôt en fonction des informations que vous avez entrées dans le fichier distributions.


# reprepro -Vb /var/www/depot includedeb hardy monpaquet.deb

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.

Exemple : Je me propose de déposer le paquet ldapusers.deb crée précédemment sur ce dépôt.

La commande est la suivante :


# reprepro -Vb /var/www/depot includedeb hardy /home/alain/tmp/ldapusers.deb

Vous devriez obtenir un résultat de ce type dans votre console :

Voilà votre paquet fait maintenant partie du dépôt.

La suppression d’un paquet :

Pour la suppression d’un paquet, il faut utiliser l’argument remove .


# reprepro -Vb /var/www/depot remove hardy monpaquet

Exemple de ce qu’on obtient lors de la suppression du paquet ldapusers.


Utilisation du dépôt de paquets

Maintenant que le dépôt de paquets est prêt (serveur web lancé et architecture du dépôt en place), il va falloir configurer le ou les postes clients.

Pour cela, il faut ajouter une ligne au fichier /etc/apt/sources.list :


# echo "deb http://ip_du_serveur/depot hardy main restricted universe multiverse"  >> /etc/apt/sources.list

Le client est maintenant configuré pour communiquer avec le dépôt situé sur le serveur. Il ne reste plus qu’à taper la commande suivante :


# apt-get update

Cette dernière commande permet au client de reconstruire la liste des paquets disponibles sur les dépôts déclarés dans le fichier sources.list.

La commande apt-cache permet de vérifier que les nouveaux paquets apparaissent dans la liste et sont accessibles pour une installation.

Exemple de recherche du paquet :


# apt-cache search ldapusers

La réponse est :


ldapusers - scripts de gestion des comptes utilisateur sur l'annuaire LDAP

Pour installer le paquet monpaquet il suffit à présent d’exécuter la commande :


#apt-get install monpaquet

Accueil du site | Contact | Plan du site | Espace privé | Statistiques | visites : 187366

Suivre la vie du site fr  Suivre la vie du site Ubuntu   ?

Site réalisé avec SPIP 1.9.2a + ALTERNATIVES

Creative Commons License