== Prérequis ==
Le format d’un paquet est le suivant « foo_VVV-RRR_AAA.deb » :
VVV => la version
RRR => la révision
AAA => l’architecture
Le serveur qui gère les dépôts possède un Apache configuré et qui est accessible via l’URL (HTTP ou HTTPS) :
http://www.languille11.fr/
Le serveur Apache pointe sur le dossier suivant :
»’/data/www/repo »’
== Génération de la clé GPG ==
Pour authentifier vos paquets, vous pouvez générer une clé GPG pour les signer. Ensuite, la clé sera utilisée pour certifier votre dépôt personnel.
Pour générer la clé (il faudra définir un nom et une adresse email) :
cd /root gpg --gen-key 4 (pour choisir RSA) 4096 O
»’Ce processus peut prendre du temps. Laissez la console en l’état et ouvrez une nouvelle console. »’
Lors de la création d’un clé GPG, il faut générer des activités systèmes pour que des chaines aléatoires soient utilisées en copiant des fichiers, lister des répertoires, etc.
Vous rencontrerez surement le message ci-dessous :
Il n'y a pas assez d'octets aléatoires disponibles. Faites autre chose pour que l'OS puisse amasser plus d'entropie ! (il faut 277 octets de plus)
Pour connaitre le nombre d’octets aléatoires générés par votre système, ouvrez une nouvelle console SHELL :
cat /proc/sys/kernel/random/entropy_avail
Pour accélérer cette génération aléatoire, voici le petit script que j’utilise :
#!/bin/bash while true do cp -rp /etc/ /tmp/. rm -r /tmp/etc/ done
L’opération devrait se terminer au bout de plusieurs minutes. N’oubliez pas de tuer le processus du script ci-dessus car il ne se terminera jamais à cause du « while true ».
Une fois la clé générée, on peut l’afficher :
gpg --list-keys /root/.gnupg/pubring.gpg ------------------------ pub 1024R/EA8AE8AD 2013-04-23 uid Anthony Magnini
Il faut maintenant exporter la clé pour être rendue publique, en effet, les machines qui accéderont à ce dépôt personnel demanderont la clé car les paquets sont signés :
gpg --armor --export anthonym@languille11.fr >> /data/www/repo/key/languille11.gpg.key
Ainsi, pour récupérer la clé à partir d’une machine, elle est accessible via :
http://repo.highlands.local/key/languille11.gpg.key
== Installation de REPREPRO ==
Le paquet REPREPRO permet de créer son propre dépôt personnel. L’installation est rapide :
aptitude install reprepro
La configuration est à placer dans un répertoire dédié :
mkdir /data/www/repo/conf/
Il faut ensuite définir les repos que l’on veut créer et rendre accessible aux utilisateurs :
*/data/www/repo/conf/distributions
Origin: Languille11 Label: Languille11 Suite: stable Codename: languille11 Architectures: i386 amd64 source Components: unstable testing stable Description: Languille11 repository SignWith: yes
Le paramètre SignWith est spécifié à yes sur sur le repos Youactive car nos paquets sont signés.
== Construction du dépôt ==
Soit on peut construire l’arborescence entière du répos maintenant, soit elle se créera petit à petit en fonction des paquets qui seront poussés dans telle ou telle branche
Pour construire le répos entièrement :
reprepro --ask-passphrase -Vb /data/www/repo export
La passphrase de la clé GPG sera demandé.
== Ajout d’un paquet au répos ==
Le dépôt est prêt à accueillir les paquets .deb pour les rendre accessible aux autres machines.
Pour notre exemple :
le nom logique du paquet se nomme mon-paquet
le nom physique est mon-paquet_1.2-1_amd64.deb
Ajouter un paquet :
reprepro --ask-passphrase -Vb /data/www/repo -C 'testing' includedeb languille11 /root/mon-paquet_1.2-1_amd64.deb
Supprimer un paquet :
reprepro --ask-passphrase -vb /data/www/repo -C 'testing' remove languille11 mon-paquet
Lister les paquets non référencés :
reprepro --ask-passphrase -vb /data/www/repo dumpunreferenced
Effacer les paquets non référencés :
reprepro --ask-passphrase -vb /data/www/repo deleteunreferenced
Reréférencer les paquets :
reprepro --ask-passphrase -vb /data/www/repo rereference
== Supprimer un repos ==
Enlever le repos du fichier
*/data/www/repo/conf/distributions
Puis lancer la commande suivante :
reprepro --delete clearvanished
== Côté client ==
Comme votre serveur peut fournir les paquets .deb avec reprepro, il faut maintenant configurer vos serveurs (ou PC clients) pour les récupérer.
nano /etc/apt/sources.list.d/depot-deb.list # depot-deb repository deb http://www.languille11.fr/ languille11 testing
Pour éviter le message d’erreur à cause de l’absence de clé, il faut l’ajouter dans le trousseau de clés :
wget -O - http://www.languille11.fr/key/languille11.gpg.key | apt-key add -
Une fois la clé ajoutée, on met à jour :
aptitude update
Puis notre paquet est déployable sur la cible :
aptitude install mon-paquet