em_autogrip(1) Creer et maintenir un depot Grip Emdebian

Synopsis

 S<Syntaxe :> em_autogrip -b CHEMIN [OPTIONS] [COMMANDE [PAQUETS ...]]
           em_autogrip -?|-h|--help|--version
 S<Commandes :>
 -b|--base-path S<CHEMIN :>    chemin vers le repertoire grip de plus haut niveau [requis]
 -p|--package PAQUETS ... : ajoute le(s) paquet(s) binaire(s) au depot
 -s|--source  PAQUETS ... : ajoute le(s) paquet(s) source(s) au depot
 S<-t|--testing :>             fonctionne seulement avec testing au lieu d'unstable
   S<--noskipold :>            option de reprepro pour les paquets nouvellement ajoutes
   S<--missing :>              affiche une liste des paquets source manquants
   S<--build-depends :>        affiche une liste des dependances de compilation manquantes
   S<--britney :>              affiche l'etat des migrations testing
 S<-?|-h|--help|--version :>   affiche ce message d'aide et quitte

Options :
 -n|--dry-run :             verifie quels paquets vont etre traites
 -m|--mirror MIROIR :       utilise un miroir Debian different pour la
                            configuration
                            [http://ftp.uk.debian.org/debian par defaut]
   --filter-name CHAINE :   nom alternatif pour le depot filtre
   --grip-name CHAINE :     nom alternatif pour le depot grip
   --add-new :              si un paquet source est trouve manquant,
                            ou perime dans unstable, l'ajoute a la liste.

Description

La methode par defaut est de mettre a jour tous les paquets existants jusqu'ici dans le depot filtre, dans toutes les architectures.

Apres avoir ajoute les paquets binaires, assurez-vous que em_autogrip est execute sans aucune option de sorte que tous les paquets source manquants et tous les autres TDebs Emdebian puissent etre mis a jour.

Bien qu'em_autogrip parametre les fichiers de configuration initiaux pour le depot, il ne modifiera aucun fichier existant *excepte* le filtre de pkglist qui empeche le miroir d'ajouter des paquets non desires.

L'option miroir n'a d'effet que si aucun depot n'a encore ete trouve dans le repertoire indique.

En particulier, em_autogrip manipulera seulement unstable par defaut. Les migrations vers testing et stable, et meme les creations de testing et de stable, ne sont pas gerees par em_autogrip. Par defaut, em_autogrip inclut les paquets dans unstable et n'inclut les paquets directement dans testing que dans le mode "--testing" lors de la mise a jour vers des versions de paquets telecharges dans Debian par l'intermediaire de testing-proposed-updates ou en se synchronisant avec un nouveau depot (ou deja synchronise). Le mode "--testing" necessite une configuration pre-configuree de testing dans "reprepro".

Les depots publics devraient egalement employer Secure-Apt en ajoutant une valeur pour SignWith: a chaque distribution dans le depot Grip (il n'y a aucune raison de signer le depot filtre car il ne devrait pas etre public est n'est qu'une copie filtree de depots existants et officiellement signes).

em_autogrip met a jour egalement le depot locale, partage par Emdebian Grip et Emdebian Crush.

Notez que em_autogrip mettra a jour seulement le(s) paquet(s) *binaire(s)* specifie(s), meme lorsqu'il inclut le paquet source complet. C'est lie a la facon dont reprepro execute la mise a jour filtree X tous les paquets binaires prevus d'etre enumeres dans X dpkg --get-selections X sont inclus et meme si un paquet source inclut un autre binaire, il ne sera pas telecharge dans la mise a jour de reprepro. Puisque em_autogrip ne construit reellement aucun paquet a partir des sources, a moins que reprepro ne telecharge le binaire pre-construit dans le depot filtre, ce paquet binaire ne sera pas disponible pour em_autogrip. Cela signifie que le meme paquet source dans Debian peut etre liste comme produisant une quantite *plus faible* de paquets binaires dans Emdebian Grip.

Secure Apt et reprepro

La clef secrete de la paire de clef GnuPG indiquee avec SignWith: doit etre dans le trousseau secret de tous les utilisateurs realisant des mises a jour.

Pour verifier la publication des regles de mise a jour, copier /etc/apt/trusted.gpg vers ~/.gnupg/trustedkeys.gpg pour tous les utilisateurs devant effectuer des mises a jour. Pour ajouter des clefs a la liste disponible pour "gpgv", executer :

 C<gpg --no-default-keyring --keyring ~/.gnupg/trustedkeys.gpg --import keys.gpg>

Bogues

Problemes avec la saisie automatique des paquets :

 1. Des paquets source doivent completer des paquets binaires.
 2. Des paquets binaires avec le meme nom que les paquets source conduisent
    a l'inclusion des deux
 3. Certains de ces paquets binaires entrainent l'ajout de dependances non desirees.
 4. Quelques paquets valables pour toutes les architectures sont dependants de paquets
    qui n'existent que pour certaines architectures, ce qui casse edos-debcheck.

Un exemple de 3. est lsb. Un exemple de 4. est acpi-support-base.

Le paquet source lsb est necessaire pour completer le paquet lsb-desktop mais le paquet binaire lsb est un meta-paquet pour la suite lsb entiere qui tire l'integralite de Qt.

acpi-support-base est disponible sur toutes les architectures (X Architecture: all X) mais il depend d'acpid qui n'est present que sur les architectures i386 et amd64 (X Architecture: any [i386 amd64] X) X en fait, acpi-support-base ne devrait exister que pour i386 et amd64 mais comme il est X Architecture: all X, il est ajoute aussi a arm, armel, mips, mipsel et powerpc X dans ces cas-la il doit etre enleve. Des discussions sont en cours a propos de tels paquets.

 http://lists.debian.org/debian-devel/2009/01/msg00246.html

Rapport Signal/Bruit en sortie

Un point important ici X reprepro sort beaucoup de messages et peut inclure un bon nombre de rapports d'erreurs et de discordances de sommes de controles (checksum mismatches), X skipping foo X et X downgrading bar X de et vers la meme version. Le probleme est que l'information utile est cachee dans tout ce bruit, ainsi toutes les sorties reprepro STDERR (ou STDOUT) ne peuvent pas etre tout simplement ignorees. Pour l'instant, verifiez juste les effets. Si quelque chose est casse, recherchez les erreurs qui se rapportent specifiquement a ce paquet mais ignorez les X erreurs X la ou tout va bien. Du travail additionnel dans le module Emdebian::Grip devrait isoler les operations dupliquees et le travail inutile, qui a son tour, devrait faire disparaitre la majeure partie du bruit.

Utilisation de add-new

En mode --testing, em_autogrip cherche des paquets ayant des paquets source manquants ou perimes dans unstable et affiche un exemple de commande pouvant etre executee pour les corriger. Si --add-new est utilise, cette commande sera executee X cela signifie que --add-new requiert --testing et qu'une deuxieme execution de --testing sans --add-new sera necessaire. Cette prise en charge fait partie de grip_cron.sh

Dependances de construction

En l'absence d'une maniere plus rapide pour identifier quel veritable paquet fournit (X Provides: X) une dependance virtuelle, apt-cache showpkg est utilisee contre le cache du systeme principal. Si cette machine ne tourne pas sous Debian unstable, la liste peut etre incorrecte ou ignorer des dependances qui sont fournies par des paquets qui sont seulement disponibles dans unstable (ou si elle tourne sous stable, des paquets qui sont seulement dans unstable ou testing).

Repetition

Si un paquet echoue lors de la construction depuis les sources dans Debian, "em_autogrip" essayera de le mettre a jour jusqu'a ce que la meme version existe dans le depot filtre pour toutes les architectures prises en charge.

De la meme maniere, modifier manuellement des paquets dans le depot Grip, par exemple en ajoutant des versions modifiees pour testing, provoquera l'apparition de la version Debian originale dans les mises a jour "em_autogrip" et reprepro ignorera le paquet construit tant que la version modifiee est superieure.

Vieux paquets

"em_autogrip" ne prend pas en charge les suppressions depuis l'archive X celles-ci sont manuelles avec Debian aussi. Les paquets qui existent seulement dans stable et oldstable perturberont "em_autogrip", en particulier si le vieux nom de paquet est fourni (X Provided: X) par un autre paquet qui existe deja dans Grip. Exemple : postgresql.

Ajouter beaucoup de paquets d'un coup

Parfois, peut-etre lors de la configuration d'un nouveau miroir, une liste complete de paquets existe deja sur un autre site. Copier ce pkglist dans le nouveau site effacera cette liste car le depot filtre du nouveau site est vide. Pour eviter ce probleme, creez le pkglist dont vous avez besoin, puis executez la mise a jour du filtre directement :

 reprepro -b /PATH/filter -v update

Executez maintenant "em_autogrip" sans indiquer de paquet.

 em_autogrip -b /PATH/

Remarquez que "reprepro" a besoin du chemin vers le repertoire filtre. "em_autogrip" a besoin du chemin vers le repertoire ci-dessus ou il peut trouver ./filter/, ./grip/ et ./locale/.

"em_autogrip" mettra alors a jour le fichier pkglist avec le contenu final du depot filtre.

Ubuntu, sources et suites non Debian

Emdebian Grip est toujours Debian, donc bien que les depots non-Debian puissent etre pris en charge, le depot Grip resultant aura toujours besoin d'un agencement a la Debian. En particulier, il faudra une suite X unstable X, meme si le nom de code de cette suite n'est pas X sid X. De meme, si le depot dois prendre en charge les migrations de britney, une suite X testing X doit exister.

Rappelez-vous, les suites changerons quand une version stable de Debian est publiee (c'est a dire quand testing pointe vers autre chose apres la publication compare a ce qui etait contenu avant la publication). Les nom de code de changent pas X squeeze contient toujours squeeze, meme une fois que squeeze est publie comme distribution stable.

Liste d'architectures

La liste des architectures gerees par une installation particuliere de Grip ne peut pas etre facilement changee X beaucoup de mises a jour de depot sont necessaires avant que de nouvelles architectures puissent y etre ajoutees. Des architectures existantes peuvent etre abandonnees relativement facilement. L'ordre est sans importance.

 @archlist = qw/i386 amd64 arm armel powerpc mips mipsel/;

l'edos recursif est considere comme risque.

La recursion est encore risquee ainsi edos est laisse en tant qu'etape manuelle. Le probleme semble etre qu'une fois que le depot n'est plus a jour avec Debian, une mise a jour doit se produire avant qu'edos puisse etre resolu. Une fois que le depot est a jour, edos peut etre execute, apparemment, sans probleme. Les tests continuent pour voir si le simple fait de deplacer la fonction plus bas dans le processus resout les problemes.

Copyright et Licence

 Copyright (C) 2007-2010 Neil Williams <[email protected]>

Ce logiciel est libre; vous pouvez le redistribuer selon les termes de la licence GNU General Public License telle que publiee par la Free Software Foundation; en prenant la version 3 de la licence ou (selon votre choix) n'importe quelle version subsequente.

Ce logiciel est distribue dans l'espoir qu'il soit utile, mais AUCUNE GARANTIE n'est donnee tant pour des raisons COMMERCIALES que pour REPONDRE A UN BESOIN PARTICULIER. Consulter la Licence Publique Generale GNU pour plus de details.

Vous devriez avoir recu une copie de la Licence Publique Generale de GNU avec ce programme. Sinon, voir <http://www.gnu.org/licenses/>.