Modifications entre les versions 15 et 23 (s'étendant sur 8 versions)
Version 15 à la date du 2008-02-11 15:30:06
Taille: 5961
Éditeur: ThomasNoël
Commentaire: cron en place... on est en pre-prod là oui oui oui on y croit
Version 23 à la date du 2008-11-07 10:18:22
Taille: 5918
Éditeur: ThomasNoël
Commentaire: depots tests et experiences (et qlq maj)
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Cette page présente le dépôt de paquets Debian/Ubuntu spécifiques à l'AUF. Cette page présente le dépôt de paquets pour Debian et Ubuntu spécifiques à l'AUF.
Ligne 3: Ligne 3:
## ajouter un blabla ici pour dire à quoi ça sert/servira, etc...

 ||<#ffaa00> Il s'agit d'un système en cours de mise en place, ne pas utiliser pour l'instant merci !||
 /* Bientôt ici du blabla pour dire à quoi ça sert, qui peut s'en servir, etc... */
Ligne 11: Ligne 9:
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)]].

 . A
jouter 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.
Il faut d'abord installer la clé publique GPG qui signe ce dépôt. Pour cela, 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, hardy, intrepid, ... selon votre système.
Ligne 18: Ligne 15:
 . Puis installer le paquet `auf-keyring` :
Puis installer le paquet `auf-keyring` :
Ligne 21: Ligne 19:
# 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 la source "sûre". Confirmez l'installation, la clé sera ajoutée, ''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.)]].
# 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 la source "sûre". Confirmez l'installation, la clé sera ajoutée, ''aptitude'' fera désormais confiance au dépôt AUF.
Ligne 25: Ligne 25:
Ligne 27: Ligne 28:
# format d'une source Debian :
Ligne 29: Ligne 31:
Exemples (non fonctionnels à l'heure de la rédaction) :
Exemples de sources à ajouter :
Ligne 31: Ligne 34:
# paquets pour la mise en place d'un serveur VoIP Asterisk AUF : # Paquets AUF pour Ubuntu Hardy
# A utiliser sur tout poste client AUF (mais ne contient rien à ce
# jour -- 7 nov 2008)
deb http://apt.auf.org/ hardy tests

# Paquets en cours de tests (validation) pour Ubuntu Hardy
# A utiliser quand vous désirez/devez participer à un test d'un
# futur paquet AUF...
deb http://apt.auf.org/ hardy tests

# Paquets en cours d'expérimentation pour Ubuntu Hardy
# Attention : forte potentialité de crash ;)
deb http://apt.auf.org/ hardy experiences

# Paquets pour la mise en place d'un serveur VoIP Asterisk AUF :
Ligne 33: Ligne 50:
# paquets spécifiques à Dakar pour les postes clients Ubuntu Feisty :
deb http://apt.auf.org/ feisty sn
# Paquets de tests (Ndimby, à Dakar) pour les postes clients Ubuntu Hardy :
deb http://apt.auf.org/ hardy ndimby
Ligne 36: Ligne 53:

Après un `aptitude update`, vous pouvez installer les nouveaux paquets.
Ligne 39: Ligne 58:
Il faut : Si vous savez fabriquer des paquets Debian ou Ubuntu, vous pouvez les mettre à disposition de vos collègue sur ce dépôt.

Pour cela, il faut :
Ligne 41: Ligne 62:
 * 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)
 * savoir à quelle distribution sont destinés les paquets : etch, lenny, hardy, intrepid, ...
Ligne 48: Ligne 66:
# extrait de ~/.dput.cf (inspiré de /etc/dput.cf) : # Exemple de configuration de dput. Ce dput est prévu pour envoyer des paquets
# pour Ubuntu "Hardy" (8.04) dans les sections "experiences" et "tests".
Ligne 50: Ligne 69:
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
hash = md5
allow_unsigned_uploads = 1
run_dinstall = 0
scp_compress = 1
default_host_main = section-a-preciser
fqdn = apt.auf
method = ftp
login = anonymous
Ligne 59: Ligne 78:
# par défaut on envoie ici :
[voip-test]
incoming = ~/incoming/voip-test
# paquets hardy tests
[tests]
incoming = tests/hardy
Ligne 63: Ligne 82:
# mais on peut aussi envoyer ici en précisant "voip" comme paramètre [section] lors de l'appel à dput :
[voip]
incoming = ~/incoming/voip
# paquets hardy experiences
[experiences]
incoming = experiences/hardy
Ligne 70: Ligne 89:
$ dput [section] nom-du-paquet.changes $ dput section nom-du-paquet.changes
Ligne 73: Ligne 92:
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. Si tout va bien le paquet sera ajouté dans le dépôt 5 minutes plus tard (par cron).
Ligne 75: Ligne 94:
= Comment ça marche à l'intérieur = = Pour les curieux : comment ça marche à l'intérieur =
Ligne 77: Ligne 96:
attachment:reprepro-apt-auf-org.png {{attachment:reprepro-apt-auf-org.png}}
Ligne 79: Ligne 98:
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 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.
Ligne 95: Ligne 114:
etch voip /home/thomas/incoming/voip thomas.noel@auf.org etch voip   /home/thomas/incoming/voip thomas.noel@auf.org
Ligne 97: Ligne 116:
etch voip-test /home/thomas/incoming/voip-test thomas.noel@auf.org etch test-thomas /home/thomas/incoming/test      thomas.noel@auf.org
Ligne 100: Ligne 119:
Le script `reprepro-incoming` gère l'envoie de rapport par mail (dernier paramètre de chaque ligne d'appel). Il est lancé par cron toutes les 5 minutes, sous l'utilisateur `reprepro`. Le script `reprepro-incoming` gère l'envoie de rapport par mail (dernier paramètre de chaque ligne d'appel). Il est lancé par '''cron toutes les 5 minutes'''.
Ligne 102: Ligne 121:
Pour info, le script dans sa version du 11 février 15h TU : attachment:reprepro-incoming Pour info, le script dans sa version du 11 février 15h TU : [[attachment:reprepro-incoming]]
Ligne 106: Ligne 125:
 * --(tester un peu plus !... et mettre en place le cron... et dire que "ça marche" ;) )-- : mmmhhh bon on dit '''OK''' ? le cron toutes les 5 minutes est en place, en tout cas...
 * --(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)-- : '''OK'''
 * regarder le [http://packages.debian.org/etch-backports/reprepro backport de reprepro] et notamment son "processincoming"
 * regarder le [[http://packages.debian.org/etch-backports/reprepro|backport de reprepro]] et notamment son "processincoming"
 * mettre tout le code sur git.auf.org

= Multi-architecture =

Pour proposer un paquet binaires dans plusieurs architectures (typiquement i386 et amd64) :
  * il faut compiler d'abord une architecture classiquement et inclure les sources dans l'upload (donc `dpkg-buildpackage` avec l'option `-sa`)
  * envoyer par `dput` le `...changes`
  * puis compiler la ou les autres architectures avec l'option `-b` qui ne construit ''que'' le paquet binaire...
  * envoyer par `dput` le ou les `...changes` obtenus

Cette page présente le dépôt de paquets pour Debian et 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ôt. Pour cela, 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, hardy, intrepid, ... selon votre système.
    deb http://apt.auf.org/ distrib 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 la source "sûre". Confirmez l'installation, la clé sera ajoutée, aptitude fera désormais confiance au dépôt 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 :

  • # format d'une source Debian :
    deb http://apt.auf.org/ distribution composant

Exemples de sources à ajouter :

  • # Paquets AUF pour Ubuntu Hardy
    # A utiliser sur tout poste client AUF (mais ne contient rien à ce
    # jour -- 7 nov 2008)
    deb http://apt.auf.org/ hardy tests
    
    # Paquets en cours de tests (validation) pour Ubuntu Hardy
    # A utiliser quand vous désirez/devez participer à un test d'un
    # futur paquet AUF...
    deb http://apt.auf.org/ hardy tests
    
    # Paquets en cours d'expérimentation pour Ubuntu Hardy
    # Attention : forte potentialité de crash ;)
    deb http://apt.auf.org/ hardy experiences
    
    # Paquets pour la mise en place d'un serveur VoIP Asterisk AUF :
    deb http://apt.auf.org/ etch voip
    # Paquets de tests (Ndimby, à Dakar) pour les postes clients Ubuntu Hardy :
    deb http://apt.auf.org/ hardy ndimby

Après un aptitude update, vous pouvez installer les nouveaux paquets.

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

Si vous savez fabriquer des paquets Debian ou Ubuntu, vous pouvez les mettre à disposition de vos collègue sur ce dépôt.

Pour cela, il faut :

  • savoir faire des beaux paquets Debian : dpkg-buildpackage, dh-make, retroportages, ...

  • savoir à quelle distribution sont destinés les paquets : etch, lenny, hardy, intrepid, ...

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

  • # Exemple de configuration de dput. Ce dput est prévu pour envoyer des paquets
    # pour Ubuntu "Hardy" (8.04) dans les sections "experiences" et "tests".
    [DEFAULT]
    hash                    = md5
    allow_unsigned_uploads  = 1
    run_dinstall            = 0
    scp_compress            = 1
    default_host_main       = section-a-preciser
    fqdn                    = apt.auf
    method                  = ftp
    login                   = anonymous
    
    # paquets hardy tests 
    [tests]
    incoming                = tests/hardy
    
    # paquets hardy experiences 
    [experiences]
    incoming                = experiences/hardy

Pour envoyer un paquet il suffit de faire :

  • $ dput section nom-du-paquet.changes

Si tout va bien le paquet sera ajouté dans le dépôt 5 minutes plus tard (par cron).

Pour les curieux : comment ça marche à l'intérieur

reprepro-apt-auf-org.png

Le système est basé sur 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. Il est le seul à avoir accès en écriture sur le dépôt.

  • /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 shell appelé reprepro-incoming 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 paramètres est dans ~reprepro/incomings :

  • # Fichier ~reprepro/incomings
    #
    # Format d'une ligne :
    # distrib composant repertoire email-pour-rapport
    #
    # voip : la config AUF d'asterisk 1.2 pour etch
    etch voip        /home/thomas/incoming/voip      thomas.noel@auf.org
    # voip-test : backport de asterisk 1.4 en cours
    etch test-thomas /home/thomas/incoming/test      thomas.noel@auf.org

Le script reprepro-incoming gère l'envoie de rapport par mail (dernier paramètre de chaque ligne d'appel). Il est lancé par cron toutes les 5 minutes.

Pour info, le script dans sa version du 11 février 15h TU : reprepro-incoming

Il reste à faire

  • regarder le backport de reprepro et notamment son "processincoming"

  • mettre tout le code sur git.auf.org

Multi-architecture

Pour proposer un paquet binaires dans plusieurs architectures (typiquement i386 et amd64) :

  • il faut compiler d'abord une architecture classiquement et inclure les sources dans l'upload (donc dpkg-buildpackage avec l'option -sa)

  • envoyer par dput le ...changes

  • puis compiler la ou les autres architectures avec l'option -b qui ne construit que le paquet binaire...

  • envoyer par dput le ou les ...changes obtenus


Notes de bas de page :

DépôtAPT/EnvoyerSesPaquets (dernière édition le 2011-03-11 03:14:48 par JeanChristopheAndré)