Il est possible d’avoir votre propre serveur de paquets si vous désirez diffuser vos paquets.
La configuration suivante se fera sur un serveur Apache2.
On va commencer par créer un début d’arborescence. Par exemple
/var/www/packages
On pourra ainsi avoir différentes versions comme des paquets Debian ou Ubuntu :
/var/www/packages/debian /var/www/packages/ubuntu
Il faut également créer un dossier conf dans chaque répertoire (debian et ubuntu dans ce cas). Dans ce dossier, doit se trouver un fichier distribution de la sorte
Origin: Votre Nom Label: Votre Nom Suite: stable Codename: stable Version: all Architectures: i386 amd64 Components: main Description: Votre commentaire. SignWith: [key-id]
L’instruction SignWith est nécessaire uniquement si vous souhaitez signer vos paquets (voir plus bas dans l’article).
Pour récupérer votre [key-id]
gpg --list-keys
Donne le résultat suivant
/home/.../.gnupg/pubring.gpg ------------------------------- pub 2048R/[key-id-1] expiration-date uid John Doesub 2048R/[key-id-2] expiration-date
Dans notre exemple, [key-id] vaut [key-id-2] (oui, on utilise une sub-key).
Une fois fini, on va créer un vhost spécifique dans Apache :
<VirtualHost *:80> DocumentRoot /var/www/packages ServerName packages.domain.com <Directory "/var/www/packages/"> Options Indexes FollowSymLinks Multiviews Order allow,deny Allow from all </Directory> <Directory "/var/www/packages/*/db/"> Order deny,allow Deny from all </Directory> <Directory "/var/www/packages/*/conf/"> Order deny,allow Deny from all </Directory> </VirtualHost>
La suite est réalisée grace à reprepro (apt-get install reprepro), via la commande suivante :
reprepro -Vb [repertoire] includedeb [distribution] [paquet]
Par exemple
reprepro -Vb /var/www/packages/debian includedeb stable /package/myagent.deb
reprepro va s’occupper de créer et placer les fichiers correctement dans les répertoires.
Il est aussi possible de gérer le paquet pour ubuntu via la commande suivante (si le paquet est compatible)
reprepro -Vb /var/www/packages/ubuntu includedeb stable /package/myagent.deb
On peut aussi exporter la clé GPG dans le serveur
gpg --armor --output /var/www/packages/server.gpg.key --export [key-id]
Vu que l’on a signé notre dépôt avec notre clé GPG, il faut l’ajouter à l’ordinateur distant avant d’ajouter notre serveur
wget -O - http://packages.domain.com/server.gpg.key | apt-key add -
On peut ensuite ajouter un fichier /etc/apt/sources.list.d/domain.com.list avec en contenu
deb http://packages.domain.com/debian stable main
Ensuite, un petit coup de apt-get update puis apt-get install myagent et le tour est joué.