Cette page présente le dépôt de paquets Debian/Ubuntu spécifiques à l'AUF.

Accès aux paquets disponibles

Ajout de la clé GPG utilisée pour signer le dépôt

Il faut d'abord installer la clé publique GPG qui signe ce dépôtFootNote(et ça ajoute aussi la clé de celui de Dakar, en cadeau).

# remplacer distrib par etch, lenny, feisty, gutsy, hardy, ... selon votre système. deb http://apt.auf.org/ distrib auf }}}

Configuration des sources de paquets (sources.list)

Ensuite ajouter les sources qui vous conviennent en fonction de ce que vous avez à mettre en place. Les lignes à ajouter dans le sources.list sont de la forme :

Exemples (non fonctionnels à l'heure de la rédaction) :

Pour ajouter ses petits paquets dans le dépôt

Il faut :

Pour envoyer un paquet, on utilise dput (aptitude install dput) que l'on configure ainsi (dans ~/.dput.cf) :

Pour envoyer un paquet il suffit de faire :

Si tout va bien le paquet sera ajouté dans le dépôt 5 minutes plus tard. Sinon un courriel sera envoyé à qui de droit, qui vous informera de la fin de votre contrat à l'AUF.

Comment ça marche à l'intérieur

attachment:reprepro-apt-auf-org.png

Le système est basé sur [http://mirrorer.alioth.debian.org/ reprepro] ([http://packages.debian.org/etch/reprepro version etch]). C'est ce logiciel qui gère le dépot : on lui dit quel paquet ajouter à quel composant de quelle distribution, et il gère le pool, les fichiers Release, Packages, Sources, etc. A côté, un serveur apache2 propose le dépôt en HTTP.

Le principe : il y a un utilisateur virtuel "reprepro" sur le système, qui gère le dépôts. C'est cet utilisateur qui va lancer le logiciel "reprepro" avec les bons arguments, régulièrement (via cron).

Un script lance le logiciel reprepro en lui disant d'aller chercher les paquets de tel composant pour telle distribution dans tel répertoire. La liste de ces triplets est dans ~reprepro/incomings :

Le script (version du 15 janvier 22h TU) :

#!/bin/bash

# reprepro-incoming <dist> <component> [<repertoire>] # - se place dans le repertoire indiqué, y regarde les fichiers .changes # - pour chaque fichier .change, analyse si les fichiers correspondants sont présents # (pour le cas d'un upload en cours) # - si oui, envoie les paquets dans le dépot, sur la distrib et selon le composant indiqué # La configuration est dans /etc/reprepro/options et /etc/reprepro/distributions (cf man reprepro) # Exemple : # $ reprepro-incoming etch voip /home/thomas/voip/

# Note : reprepro-incoming est destiné à tourner en cron, il ne dit rien s'il # n'a rien à faire. Exemple de configuration en cron : # */5 * * * * reprepro cd /home/reprepro && ./reprepro-incoming # Attention, reprepro ne gère sans doute pas les accès concurrents à un même dépôt !

# Note : si on lance "reprepro-incoming" sans argument, il va lire le fichier ~/incomings # qui contient un triplet "<dist> <component> [<repertoire>]" par ligne. r-i se lance # alors autant de fois que de ligne, avec ces arguments à chaque fois... Ces lancements # séquentiels évitent d'avoir à ce soucier des accès concurrents... if [ $# -eq 0 -a -r ~/incomings ]; then

fi

if [ $# -lt 2 ]; then

fi DISTRIB=${1} COMPONENT=${2}

# s'il existe un 3ème argument c'est un repertoire, on va dedans if [ -n "${3}" ]; then

fi

# pas de fichier .changes : on s'arrete ici (silencieusement car ça peut être normal) ls *.changes > /dev/null 2>&1 || exit 0

export REPREPRO_CONFIG_DIR=${REPREPRO_CONFIG_DIR:-~/conf}

# on analyse chaque fichier changes for fc in *.changes; do

done }}}

Il reste à faire


Notes de bas de page :