Private Debian repository

Revision for “Private Debian repository” created on 4 février 2016 à 13 h 34 min

Titre
Private Debian repository
Contenu
== 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) : <pre> cd /root gpg --gen-key 4 (pour choisir RSA) 4096 O </pre> '''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 : <pre> 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) </pre> Pour connaitre le nombre d’octets aléatoires générés par votre système, ouvrez une nouvelle console SHELL : <pre> cat /proc/sys/kernel/random/entropy_avail </pre> Pour accélérer cette génération aléatoire, voici le petit script que j’utilise : <pre> #!/bin/bash while true do cp -rp /etc/ /tmp/. rm -r /tmp/etc/ done </pre> 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 : <pre> gpg --list-keys /root/.gnupg/pubring.gpg ------------------------ pub 1024R/EA8AE8AD 2013-04-23 uid Anthony Magnini <anthonym@languille11.fr> </pre> 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 : <pre> gpg --armor --export anthonym@languille11.fr >> /data/www/repo/key/languille11.gpg.key </pre> Ainsi, pour récupérer la clé à partir d’une machine, elle est accessible via : <pre> http://repo.highlands.local/key/languille11.gpg.key </pre> == Installation de REPREPRO == Le paquet REPREPRO permet de créer son propre dépôt personnel. L’installation est rapide : <pre> aptitude install reprepro </pre> La configuration est à placer dans un répertoire dédié : <pre> mkdir /data/www/repo/conf/ </pre> Il faut ensuite définir les repos que l'on veut créer et rendre accessible aux utilisateurs : */data/www/repo/conf/distributions <pre> Origin: Languille11 Label: Languille11 Suite: stable Codename: languille11 Architectures: i386 amd64 source Components: unstable testing stable Description: Languille11 repository SignWith: yes </pre> 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 : <pre> reprepro --ask-passphrase -Vb /data/www/repo export </pre> 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 : <pre> reprepro --ask-passphrase -Vb /data/www/repo -C 'testing' includedeb languille11 /root/mon-paquet_1.2-1_amd64.deb </pre> Supprimer un paquet : <pre> reprepro --ask-passphrase -vb /data/www/repo -C 'testing' remove languille11 mon-paquet </pre> Lister les paquets non référencés : <pre> reprepro --ask-passphrase -vb /data/www/repo dumpunreferenced </pre> Effacer les paquets non référencés : <pre> reprepro --ask-passphrase -vb /data/www/repo deleteunreferenced </pre> Reréférencer les paquets : <pre> reprepro --ask-passphrase -vb /data/www/repo rereference </pre> == Supprimer un repos == Enlever le repos du fichier */data/www/repo/conf/distributions Puis lancer la commande suivante : <pre> reprepro --delete clearvanished </pre> == 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. <pre> nano /etc/apt/sources.list.d/depot-deb.list # depot-deb repository deb http://www.languille11.fr/ languille11 testing </pre> Pour éviter le message d’erreur à cause de l’absence de clé, il faut l’ajouter dans le trousseau de clés : <pre> wget -O - http://www.languille11.fr/key/languille11.gpg.key | apt-key add - </pre> Une fois la clé ajoutée, on met à jour : <pre> aptitude update </pre> Puis notre paquet est déployable sur la cible : <pre> aptitude install mon-paquet </pre>
Extrait


OldNewDate CreatedAuthorActions
4 février 2016 à 13 h 34 min Anthony Magnini