Modifications entre les versions 12 et 32 (s'étendant sur 20 versions)
Version 12 à la date du 2008-01-29 16:23:25
Taille: 8676
Éditeur: ThomasNoël
Commentaire: ...
Version 32 à la date du 2013-12-05 20:21:24
Taille: 4354
Commentaire: précision du chemin des sources APT AUF
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Cette page présente le dépôt de paquets Debian/Ubuntu spécifiques à l'AUF. L'AUF propose un dépôt de paquets pour Debian et Ubuntu : http://apt.auf.org/. Ces paquets sont notamment :
 * des paquets proposant des logiciels spécifiques à l'utilisation de Debian ou Ubuntu à l'AUF ;
 * des paquets simplifiant l'installation de certains systèmes ou ensemble de logiciels ;
 * des retro-portages spécifiques à l'AUF non disponibles dans les ''backports'' de Debian ou Ubuntu.
Ligne 3: Ligne 6:
## ajouter un blabla ici pour dire à quoi ça sert/servira, etc... Cette page explique comment utiliser ce dépôt.
Ligne 5: Ligne 8:
 ||<#ffaa00> Il s'agit d'un système en cours de mise en place, ne pas utiliser pour l'instant merci !|| = Préliminaire : ajout de la clé utilisée pour signer le dépôt =
Ligne 7: Ligne 10:
= Accès aux paquets disponibles = Vous devez d'abord installer la clé publique GPG qui signe ce dépôt. Pour cela, ajouter dans le `/etc/apt/sources.list.d/auf.list` le dépôt AUF concernant votre distribution :
 {{{
# remplacer <distribution> par etch, lenny, squeeze, wheezy, jessie, lucid, precise, trusty, … selon votre système.
deb http://apt.auf.org/ <distribution> auf
}}}
Ligne 9: Ligne 16:
== 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ôt[[FootNote(et ça ajoute aussi la clé de celui de Dakar, en cadeau)]].

 . Ajouter dans le `sources.list` le dépôt AUF concernant votre distribution :
 {{{# à ajouter dans /etc/apt/sources.list (ou créer un /etc/apt/sources.list.d/auf)
# remplacer distrib par etch, lenny, feisty, gutsy, hardy, ... selon votre système.
deb http://apt.auf.org/ distrib auf
}}}
 . Puis installer le paquet `auf-keyring` :
Puis installer le paquet `auf-keyring` :
Ligne 21: Ligne 19:
# aptitude install auf-keyring}}}
 . '''Note''' : puisqu'avant cette installation vous n'aviez pas encore la clé dans votre système, ''aptitude'' va vous demander de confirmer l'installation car il ne juge pas la source "sûre". Confirmez l'installation, la clé sera ajoutée et ''aptitude'' fera désormais confiance au dépôt AUF[[FootNote(On peut aussi faire "{{{wget -qO - http://apt.auf.org/auf-keyring.gpg | sudo apt-key add -}}}". C'est un peu plus rapide, mais ça ne mettra pas à jour automatiquement les clés AUF si on en ajoute dans le paquet auf-keyring.)]].

== 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 :
 {{{
deb http://apt.auf.org/ distribution composant
}}}
Exemples (non fonctionnels à l'heure de la rédaction) :
 {{{
# paquets pour la mise en place d'un serveur VoIP Asterisk AUF :
deb http://apt.auf.org/ etch voip
# paquets spécifiques à Dakar pour les postes clients Ubuntu Feisty :
deb http://apt.auf.org/ feisty sn
# aptitude install auf-keyring
Ligne 37: Ligne 22:
= Pour ajouter ses petits paquets dans le dépôt = ''Note'' : lors de la première installation de `auf-keyring` ''aptitude'' va vous demander de confirmer l'installation car il ne juge pas encore la source « sûre ». Confirmez l'installation, la clé sera ajoutée : ''aptitude'' fera désormais confiance au dépôt AUF.
Ligne 39: Ligne 24:
Il faut :
 * savoir faire des beaux paquets Debian : `dpkg-buildpackage`, `dh-make`, retroportages, ...
 * savoir à quelle distribution sont destinés les paquets : etch, lenny, feisty, gutsy, hardy, ...
 * trouver un nom pour le composant : voip, rpv2, auf-desktop, votre-iso-pays, votre-nom, ...
 * avoir un compte ''ssh'' sur la machine `apt.auf` (accès à `apt.auf.org` via le RPV, demander à Moussa)
 * avoir un répertoire (''incoming'' ou tout autre nom poétique) configuré pour recevoir les paquets (fichiers changes, deb, dsc et sources)
= Sources disponibles =
Ligne 46: Ligne 26:
Pour envoyer un paquet, on utilise '''dput''' (`aptitude install dput`) que l'on configure ainsi (dans `~/.dput.cf`) :
 {{{
# extrait de ~/.dput.cf (inspiré de /etc/dput.cf) :
[DEFAULT]
method = rsync
hash = md5
allow_unsigned_uploads = 0
run_lintian = 0
run_dinstall = 0
check_version = 0
default_host_main = voip-test
fqdn = apt.auf
Trois types de sources sont disponibles pour une version de Debian ou Ubuntu donnée.
Ligne 59: Ligne 28:
# par défaut on envoie ici :
[voip-test]
incoming = ~/incoming/voip-test
 Sources « officielles », paquets stables de l'AUF::
  . Il s'agit de paquets à utiliser sur toute machine de l'AUF (Debian pour les serveurs, Ubuntu pour les postes clients). Ci-dessous la source pour une machine en Ubuntu Lucid, pour un autre type de machine il suffit de remplacer `lucid` par le nom de la version (`lucid`, `precise`, `trusty` pour Ubuntu, `etch`, `lenny`, `squeeze`, `wheezy`, `jessie` pour Debian) :
  {{{
deb http://apt.auf.org/ lucid auf
}}}
  . Une fois la source installée, vous pouvez en lister le contenu avec `$ aptitude search '~Oauf'`
Ligne 63: Ligne 35:
# mais on peut aussi envoyer ici en précisant "voip" comme paramètre host lors de l'appel à dput :
[voip]
incoming = ~/incoming/voip
 Sources de paquets à tester, pour validation::
  . Les paquets proposés ici en cours de tests. On les utilise en général pour valider un futur paquet stable. Comme pour la source stable, il faut remplacer `lucid` par le nom de la version utilisée. Une fois la source installée, le contenu est visible avec `$ aptitude search '~Oauf-test'`
  {{{
deb http://apt.auf.org/ lucid-test auf
}}}
  . Note : pour utiliser ces paquets, il faut préciser la distribution à `aptitude` lors de l'installation. Par exemple : `$ aptitude -t lucid-test install auf-poste-client-reflets`. Sinon, la version stable sera toujours prioritaire, même si c'est une version plus ancienne.

 Sources de paquets expérimentaux::
  . Il s'agit de paquets en cours d'expérimentation... à n'utiliser que si vous savez ce que vous faites ! Le contenu est visible avec `$ aptitude search '~Oauf-experimental'`
  {{{
deb http://apt.auf.org/ lucid-experimental auf
}}}
  . Pour l'installation, même remarque qu'avec les paquets de test. Il faut préciser `-t experimental`.

= Contenu du dépôt =

Vous pouvez avoir une idée du contenu des dépôts en allant sur http://apt.auf.org/.

Un [[http://apt.auf.org/rss.xml|flux RSS]] est disponible pour suivre l'arrivée de nouveaux paquets.

= Pour ajouter vos paquets dans le dépôt =

Voir la sous-page /EnvoyerSesPaquets.

= Donner priorité aux tests =

Dans le cas où vous souhaiteriez participer activement aux tests, sur un poste de test donc, il peut être utile d'élever la priorité des paquets de la source de test pour que leur mise à jour soit automatique.

Cela se fait en créant un fichier `/etc/apt/preferences` ayant le contenu suivant : {{{
Explanation: pour donner un peu plus de priorité aux paquets de tests
Package: *
Pin: release o=auf-test
Pin-Priority: 200
Ligne 68: Ligne 71:
Pour envoyer un paquet il suffit de faire :
 {{{
$ dput [host] nom-du-paquet.changes
Dans le cas où vous ne souhaiteriez donner priorité qu'à un seul paquet, vous pouvez le faire en spécifiant le nom du paquet sur la ligne `Package:`.

Voici un exemple pour suivre les versions de test du paquet `auf-poste-client-reflets` : {{{
Explanation: pour donner un peu plus de priorité aux paquets de tests
Package: auf-poste-client-reflets
Pin: release o=auf-test
Pin-Priority: 200
Ligne 73: Ligne 81:
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).

 * `/srv/www/apt.auf.org/pool` et `.../dists` : le dépôt lui-même
 * `~reprepro/conf/` : configuration de reprepro, voir `man reprepro` pour explication :
 * `~reprepro/db/` : contient les bases de données internes de reprepro

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` :
 {{{
# (... extrait de ~reprepro/incomings ...)
# voip : la config AUF d'asterisk 1.2 pour etch
etch voip /home/thomas/incoming/voip
# voip-test : backport de asterisk 1.4 en cours
etch voip-test /home/thomas/incoming/voip-test
}}}

Le script (version du 15 janvier 22h TU) :
 {{{$ cat ~reprepro/reprepro-incoming
#!/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
        sed '/^\s*#/d;/^\s*$/d' ~/incomings | while read ARGS; do
                ~/reprepro-incoming $ARGS # le script s'appelle lui-même ici
                if [ $? -ne 0 ]; then
                        echo " ^^ erreur lors de $0 $ARGS ^^ "
                        echo ""
                fi
        done
        exit 0
fi

if [ $# -lt 2 ]; then
        echo "syntaxe: $0 distribution component [repertoire]" >&2
        exit 1
fi
DISTRIB=${1}
COMPONENT=${2}

# s'il existe un 3ème argument c'est un repertoire, on va dedans
if [ -n "${3}" ]; then
        cd "${3}" || exit 2
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
        # les md5sum sont-ils ok ?
        sed '0,/^Files:\s*$/d' ${fc} | while read MD5 SIZE SECT PRIO FILE; do
                echo $MD5" "$FILE
        done | md5sum --check --status > /dev/null 2>&1
        if [ $? -ne 0 ]; then
                echo "warn: fichier ${fc}, echec de la verification des sommes md5"
                sed '0,/^Files:\s*$/d' ${fc} | while read MD5 SIZE SECT PRIO FILE; do
                        echo $MD5" "$FILE
                done | md5sum --check
                # md5 pas bon : on passe au .change suivant
                continue
        fi
        echo "traitement de ${fc} :"
        echo "$ reprepro --component $COMPONENT include $DISTRIB $fc"
        # on envoie dans le dépôt (et si ça passe pas, on va pas plus loin !)
        reprepro -V --component $COMPONENT include $DISTRIB $fc || exit 3
        # et on efface les fichiers, ils sont dans le pool maintenant
        sed '0,/^Files:\s*$/d' ${fc} | while read MD5 SIZE SECT PRIO FILE; do
                rm -f $FILE
        done
        rm -f ${fc}
        echo ""
done
}}}

= Il reste à faire =

 * tester un peu plus !... et mettre en place le cron... et dire que "ça marche" ;)
 * envoi d'un courriel à l'auteur quand un reprepro a eu lieu sur un repertoire donné (ajout d'un champ mail dans ~reprepro/incomings), avec rapport d'erreur le cas échéant
 * regarder le [http://packages.debian.org/etch-backports/reprepro backport de reprepro] et notamment son "processincoming"

------
Notes de bas de page :
Pour les autre options disponibles, voir la page de manuel avec `man apt_preferences` (disponible en français).

L'AUF propose un dépôt de paquets pour Debian et Ubuntu : http://apt.auf.org/. Ces paquets sont notamment :

  • des paquets proposant des logiciels spécifiques à l'utilisation de Debian ou Ubuntu à l'AUF ;
  • des paquets simplifiant l'installation de certains systèmes ou ensemble de logiciels ;
  • des retro-portages spécifiques à l'AUF non disponibles dans les backports de Debian ou Ubuntu.

Cette page explique comment utiliser ce dépôt.

Préliminaire : ajout de la clé utilisée pour signer le dépôt

Vous devez d'abord installer la clé publique GPG qui signe ce dépôt. Pour cela, ajouter dans le /etc/apt/sources.list.d/auf.list le dépôt AUF concernant votre distribution :

  • # remplacer <distribution> par etch, lenny, squeeze, wheezy, jessie, lucid, precise, trusty, … selon votre système.
    deb http://apt.auf.org/ <distribution> auf

Puis installer le paquet auf-keyring :

  • # aptitude update
    # aptitude install auf-keyring

Note : lors de la première installation de auf-keyring aptitude va vous demander de confirmer l'installation car il ne juge pas encore la source « sûre ». Confirmez l'installation, la clé sera ajoutée : aptitude fera désormais confiance au dépôt AUF.

Sources disponibles

Trois types de sources sont disponibles pour une version de Debian ou Ubuntu donnée.

Sources « officielles », paquets stables de l'AUF
  • Il s'agit de paquets à utiliser sur toute machine de l'AUF (Debian pour les serveurs, Ubuntu pour les postes clients). Ci-dessous la source pour une machine en Ubuntu Lucid, pour un autre type de machine il suffit de remplacer lucid par le nom de la version (lucid, precise, trusty pour Ubuntu, etch, lenny, squeeze, wheezy, jessie pour Debian) :

    deb http://apt.auf.org/ lucid auf
  • Une fois la source installée, vous pouvez en lister le contenu avec $ aptitude search '~Oauf'

Sources de paquets à tester, pour validation
  • Les paquets proposés ici en cours de tests. On les utilise en général pour valider un futur paquet stable. Comme pour la source stable, il faut remplacer lucid par le nom de la version utilisée. Une fois la source installée, le contenu est visible avec $ aptitude search '~Oauf-test'

    deb http://apt.auf.org/ lucid-test auf
  • Note : pour utiliser ces paquets, il faut préciser la distribution à aptitude lors de l'installation. Par exemple : $ aptitude -t lucid-test install auf-poste-client-reflets. Sinon, la version stable sera toujours prioritaire, même si c'est une version plus ancienne.

Sources de paquets expérimentaux
  • Il s'agit de paquets en cours d'expérimentation... à n'utiliser que si vous savez ce que vous faites ! Le contenu est visible avec $ aptitude search '~Oauf-experimental'

    deb http://apt.auf.org/ lucid-experimental auf
  • Pour l'installation, même remarque qu'avec les paquets de test. Il faut préciser -t experimental.

Contenu du dépôt

Vous pouvez avoir une idée du contenu des dépôts en allant sur http://apt.auf.org/.

Un flux RSS est disponible pour suivre l'arrivée de nouveaux paquets.

Pour ajouter vos paquets dans le dépôt

Voir la sous-page /EnvoyerSesPaquets.

Donner priorité aux tests

Dans le cas où vous souhaiteriez participer activement aux tests, sur un poste de test donc, il peut être utile d'élever la priorité des paquets de la source de test pour que leur mise à jour soit automatique.

Cela se fait en créant un fichier /etc/apt/preferences ayant le contenu suivant :

Explanation: pour donner un peu plus de priorité aux paquets de tests
Package: *
Pin: release o=auf-test
Pin-Priority: 200

Dans le cas où vous ne souhaiteriez donner priorité qu'à un seul paquet, vous pouvez le faire en spécifiant le nom du paquet sur la ligne Package:.

Voici un exemple pour suivre les versions de test du paquet auf-poste-client-reflets :

Explanation: pour donner un peu plus de priorité aux paquets de tests
Package: auf-poste-client-reflets
Pin: release o=auf-test
Pin-Priority: 200

Pour les autre options disponibles, voir la page de manuel avec man apt_preferences (disponible en français).

DépôtAPT (dernière édition le 2013-12-05 20:21:24 par JeanChristopheAndré)