Si vous avez créés vos propres paquets « .deb » pour Debian et Ubuntu, il faut un dépôt de paquets pour permettre aux machines de récupérer ces paquets et de les mettre à jour facilement.
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://depot-deb/
Le serveur Apache pointe sur le dossier suivant :
/var/www/depot-deb
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 5 (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 2012-01-20 uid user-test <user-test@domaine.fr>
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 user-test@domaine.fr >> /var/www/depot-deb/key/depot-deb.gpg.key
Ainsi, pour récupérer la clé à partir d’une machine, elle est accessible via :
http://depot-deb/key/depot-deb.gpg.key
Installation de reprepro
Le paquet REPREPRO permet de créer son propre dépôt personnel. L’installation est rapide :
apt-get install reprepro
La configuration est à placer dans un répertoire dédié :
mkdir /var/www/depot-deb/conf/
Il faut ensuite définir tous les systèmes pour lesquels nos paquets pourront être installés. Dans mon cas, il s’agit de Debian Squeeze (pour mettre pour Lenny, ajoutez simplement le même bloc dans ce même fichier distributions en remplaçant squeeze par Lenny) :
vi /var/www/depot-deb/conf/distributions Origin: Depot-Debian Label: User-test Suite: stable Codename: squeeze Architectures: i386 amd64 source Components: main non-free contrib Description: Paquets pour Debian SignWith: yes
Le paramètre SignWith est spécifié à yes car nos paquets sont signés.
Je laisse la définition du paramètre override même s’il n’est pas activé.
vi /var/www/depot-deb/conf/override.squeeze verbose ask-passphrase basedir .
Construction du dépôt
Avant de pouvoir enregistrer nos paquets, il faut construire l’arborescence du dépôt. La commande va lire le fichier /var/www/depot-deb/conf/distributions :
reprepro --ask-passphrase -Vb /var/www/depot-deb export
Voici le résultat (il faudra spécifier votre mot de passe pour la clé GPG créée précédemment) :
Created directory "/var/www/depot-deb/db" Exporting squeeze... Created directory "/var/www/depot-deb/dists" Created directory "/var/www/depot-deb/dists/squeeze" Created directory "/var/www/depot-deb/dists/squeeze/main" Created directory "/var/www/depot-deb/dists/squeeze/main/binary-i386" Created directory "/var/www/depot-deb/dists/squeeze/main/binary-amd64" Created directory "/var/www/depot-deb/dists/squeeze/main/source" Created directory "/var/www/depot-deb/dists/squeeze/non-free" Created directory "/var/www/depot-deb/dists/squeeze/non-free/binary-i386" Created directory "/var/www/depot-deb/dists/squeeze/non-free/binary-amd64" Created directory "/var/www/depot-deb/dists/squeeze/non-free/source" Created directory "/var/www/depot-deb/dists/squeeze/contrib" Created directory "/var/www/depot-deb/dists/squeeze/contrib/binary-i386" Created directory "/var/www/depot-deb/dists/squeeze/contrib/binary-amd64" Created directory "/var/www/depot-deb/dists/squeeze/contrib/source" 6CCC2757EA8AE8AD user-test <user-test@domaine.fr> needs a passphrase Please enter passphrase: Successfully created '/var/www/depot-deb/dists/squeeze/Release.gpg.new' 6CCC2757EA8AE8AD user-test <user-test@domaine.fr> needs a passphrase Please enter passphrase: Successfully created '/var/www/depot-deb/dists/squeeze/InRelease.new'
Ajout d’un paquet .deb
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 /var/www/depot-deb includedeb squeeze /root/mon-paquet_1.2-1_amd64.deb
Supprimer un paquet :
reprepro --ask-passphrase -vb /var/www/depot-deb remove squeeze mon-paquet
Lister les paquets non référencés :
reprepro --ask-passphrase -vb /var/www/depot-deb dumpunreferenced
Effacer les paquets non référencés :
reprepro --ask-passphrase -vb /var/www/depot-deb deleteunreferenced
Reréférencer les paquets :
reprepro --ask-passphrase -vb /var/www/depot-deb rereference
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.
vi /etc/apt/sources.list.d/depot-deb.list # depot-deb repository deb http://depot-deb/private/ squeeze main
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://depot-deb/key/depot-deb.gpg.key | apt-key add -
Une fois la clée ajoutée, on met à jour :
apt-get update
Puis notre paquet est déployable sur la cible :
apt-get install mon-paquetsildenafil dapoxetine online dapoxetine ssri dapoxetine without prescription amoxil price purchase amoxil buy amoxicillin without prescription uk buy amoxicillin 250 mg uk 23 aug 2011 ... new york, atarax overnight shipping, buy atarax online Order Atarax 10mg, 25mg at InternationalDrugMart, an Online foreign pharmacy which sells prescription drugs for discount prices. Order 60 tablets for $15.78 ... dapoxetine comments dapoxetine where to buy dapoxetine vs clomipramine dapoxetine reviews