Création de paquets RPM

Création de paquets RPM

Je me suis lancé dans le rpm, bon quelle simplicité par rapport aux DEB ! On commence par faire un répertoire rpm ou rpmbuild comme on veut, avec des sous dossiers, pour cela on va faire la commande suivante : `$ mkdir -p ~/rpmbuild/{BUILD,RPMS/{i586,noarch,x86_64},SOURCES,SRPMS,SPECS}`{.spip_code dir="ltr"} Puis on installe les paquets nécessaires :
`urpmi rpm-build rpm-sign`{.spip_code dir="ltr"}

Bon pour faire un simple rétro-portage il suffit de télécharger le rpm.source du paquet désiré :

`$ wget http://mirror.internode.on.net/pub/mageia/distrib/cauldron/SRPMS/core/release/pbzip2-1.1.8-3.mga3.src.rpm`{.spip_code dir="ltr"}

Ensuite, la deuxième étape consiste à télécharger les build-requires, c’est à dire les paquets nécessaires au bon fonctionnement de la future application à packager :

`# urpmi --buildrequires pbzip2-1.1.8-3.mga3.src.rpm`{.spip_code dir="ltr"}

Dernière étape, on build notre paquet :

`$ rpmbuild --rebuild pbzip2-1.1.8-3.mga3.src.rpm`{.spip_code dir="ltr"}

on aura un joli rpm !!!

Si maintenant on veut mettre a jour un paquet présent dans le dépôt mais pas dans sa dernière version c’est presque pareil : Dans un premier temps, on télécharges le rpm source :

`$ wget http://mirror.internode.on.net/pub/mageia/distrib/2/SRPMS/core/release/playonlinux-4.0.15-2.mga2.src.rpm`{.spip_code dir="ltr"}

Ensuite, la deuxième étape consiste à télécharger les build-requires, c’est à dire les paquets nécessaires au bon fonctionnement de la future application à packager :

`# urpmi --buildrequires playonlinux-4.0.15-2.mga2.src.rpm`{.spip_code dir="ltr"}

On extrait ensuite notre paquet source :

`$ rpm -ivh playonlinux-4.0.15-2.mga2.src.rpm`{.spip_code dir="ltr"}

Après cette opération, les fichiers sources se situent dans \$HOME/rpmbuild/SOURCES et le fichier SPEC dans \$HOME/rpmbuild/SPECS/, les fameux dossiers qu’on a fait plus haut big\_smile{width=“15” height=“15”} Nous téléchargeons le nouveau .tar.gz dans le dossier SOURCES :

`$ cd $HOME/rpmbuild/SOURCES && wget http://www.playonlinux.com/script_files/PlayOnLinux/4.1.9/PlayOnLinux_4.1.9.tar.gz`{.spip_code dir="ltr"}

Ensuite, on édite le fichier SPEC :

`$ nano $HOME/rpmbuild/SPECS/playonlinux.spec`{.spip_code dir="ltr"}

On change le numéro de version avec celle du paquet nouvellement téléchargée :

`Version: 4.1.9`{.spip_code dir="ltr"}

Aussi, si l’on souhaite modifier le changelog en dessous en respectant la mise en forme :

`* Mon Jul 22 2014 pseudo <pseudo> 4.1.9-1.mga4
+ Revision:
- New 4.1.9 version`{.spip_code dir="ltr"}

On enregistre les modifications. On lance la création du RPM et SRPM dans la console :

$ rpmbuild -ba $HOME/rpmbuild/SPECS/playonlinux.spec
ou si on veut signer son paquet : $ rpmbuild -ba -sign $HOME/rpmbuild/SPECS/playonlinux.spec

Le RPM sera crée selon l’architecture du système :

*/rpmbuild/RPMS/x86\_64/*

ou

*/rpmbuild/RPMS/i586/*

Et la source :

*/rpmbuild/SRPMS/*

Il ne sera pas possible de créer le RPM pour l’autre architecture, sauf depuis une machine virtuelle ou un autre ordinateur. Vous ne reste qu’à installer et partager ! Tout a été fait grace a ce tuto : http://www.mageialinux-online.org/wiki/ … vec-mageia Sauf que j’ai fait ça avec les paquet mldonkey pour le rétroportage(en faite simplement changer certaines options de compilation.) Et
pour la seconde, c’est a dire mettre à jour le paquet déjà présent dans
les dépôts mais dans une version obsolète, c’est avec playonlinux 4.2.6 -> 4.2.7 C’est fait sous Mageia rc5, mais c’est valable sur n’importe quelle distributions RPM, en adaptant bien sur, les outils, comme l’utilisation de yum ou zypper a la place de urpmi,… Tres simple ;) et maintenant j’essaye de faire pareil sous debian avec les paquets debian ;)