Mandriva RPM Howto - Tâches Préliminaires
Créer l'arborescence nécessaire pour rpm
Pour construire des paquetages, rpm a besoin d'une arborescence spéciale dans le dossier personnel. Cet arbre peut être créé par la commande suivante :
mkdir -p ~/rpm/{BUILD,RPMS/$ARCH,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}
Note : Remplacer dans ce code $ARCH par l'architecture pour laquelle seront construits ces paquetages ; c'est en général i586, mais ce peut être aussi sparc/alpha/ppc.
Il est dangereux de construire des rpm en tant que root, puisque les fichiers binaires sont installés sur le système avant d'être empaquetés, il faut donc toujours construire ses rpm en tant qu'utilisateur normal afin de ne jamais polluer accidentellement son système.
Vérifiez bien que l'arborescence est de la forme :
~/rpm/BUILD
dossier où sont construits les sources.~/rpm/RPMS
pour les paquets binaires construits, triés par architecture.~/rpm/RPMS/i586
pour les paquetages i586.rpm.~/rpm/RPMS/noarch
pour les paquetages noarch.~/rpm/SOURCES
pour les fichiers sources (par exemple monpaquet.tar.bz2 ).~/rpm/SPECS
pour les fameux fichiers spec que nous devons écrire.~/rpm/SRPMS
pour les rpm source une fois construits.~/rmp/tmp
dossier temporaire pour RPM.
/RPMS
, les dossiers d'architectures sont indispensables ; s'ils manquent un message d'erreurs'affiche.
Ajouter des fichiers de configuration
Deux fichiers de configuration dans le home utilisateur sont indispensables pour construire des paquetages pour Mandriva Linux :
.rpmrc
buildarchtranslate: i386: i586 buildarchtranslate: i486: i586 buildarchtranslate: i586: i586 buildarchtranslate: i686: i586
.rpmmacros
%_topdir VOTRE_REPERTOIRE_HOME/rpm %_tmppath VOTRE_REPERTOIRE_HOME/rpm/tmp %_signature gpg %_gpg_name Mandrivalinux %_gpg_path ~/.gnupg %distribution Mandrivalinux %vendor Mandrivasoft
Editez-les pour y inscrire votre nom et votre répertoire.
Attention, ne pas inclure de %optflags : le système d'ensemble le fournit déjà dans /usr/lib/rpm/rpmrc
.
De même, ne pas définir %packager quand on reconstruit des paquetages d'autres personnes, pour éviter de placer vos coordonnées dans le champ Packager : en cas de diffusion du RPM, cela redirigerait les rapports de bugs vers vous.
Votre programme RPM est maintenant prêt pour construire des paquetages.
Toutes les opérations précédentes peuvent se faire d'un seul coup en utilisant le script suivant :
#!bin/sh if [ -f ~/.rpmrc -o -d ~/rpm ]; then echo 'Delete any existing setup before running this script' exit 1 fi cd mkdir rpm mkdir rpm/BUILD mkdir rpm/RPMS mkdir rpm/RPMS/i586 mkdir rpm/RPMS/noarch mkdir rpm/SOURCES mkdir rpm/SPECS mkdir rpm/SRPMS mkdir rpm/tmp cat <.rpmrc buildarchtranslate: i386: i586 buildarchtranslate: i486: i586 buildarchtranslate: i586: i586 buildarchtranslate: i686: i586 END cat <.rpmmacros %_topdir $HOME/rpm %_tmppath $HOME/rpm/tmp %_signature gpg %_gpg_name Mandrakelinux %_gpg_path ~/.gnupg %distribution Mandriva Linux %vendor Mandriva END
S'inscrire à des mailing lists
Listes Mandriva (Consultez la page Mailing list sur Mandrivalinux):
- changelog
- security
- cooker
- doc
- rpm-list de Red Hat: envoyez un mail à [email protected] avec subscribe en sujet.
- iI y a une bonne mailing list à [email protected]; consultez ses archives à http://www.freezer-burn.org/lists/rpmhelp.php3 maj: ce lien semble mort
Version 1.13 last modified by ptyxs on 06/02/2006 at 18:09