7 votes

Comment créer un RPM pour Suse

Je dois installer la version 1.4 de Subversion sur une machine Suse 10.1 (64 bits). Je ne peux changer aucune de ces deux versions et il n'y a pas de RPM pour cette distro. Après avoir regardé autour de moi, je suppose que je vais devoir créer un RPM moi-même. Existe-t-il une meilleure solution que celle-ci ? Si non, quelqu'un a-t-il des conseils à me donner ?

Je n'ai pas besoin d'un tutoriel étape par étape, juste d'un aperçu de base du processus.

8voto

Jeff Hillman Points 3333

Reconstruire un src.rpm existant est probablement le plus simple. Je voudrais vraiment no suivre la voie de configure, make, make install parce que (a) ce n'est pas évolutif, (b) cela ne permet pas de supprimer ou de mettre à jour facilement le paquet et (c) ce n'est pas atomique.

Construire un RPM n'est pas si difficile. Il y avait un bon tutoriel pour les débutants sur Linux.com, avant que le site ne soit détruit. Vous pouvez essayer ceci un mais c'est beaucoup de texte, pas facile à digérer. Mais c'est mieux que rien.

Je vais vous donner quelques conseils, du fond de ma tête :

  1. créer un fichier .rpmmacros dans ~
  2. create ~/rpmbuild/{RPMS,SRPMS,SPECS,BUILD,BUILDROOT,SOURCES}
  3. déposer l'archive source dans ~/rpmbuild/SOURCES
  4. déposer le(s) fichier(s) spec dans ~/rpmbuild/SPECS
  5. exécuter rpmbuild -bp VOTRESPEC dans ~/rpmbuild/SPECS (exécute la phase de préparation)
  6. exécuter rpmbuild -bc VOTRESPEC dans ~/rpmbuild/SPECS (ci-dessus et exécute la phase de compilation)
  7. exécuter rpmbuild -bb VOTRESPEC dans ~/rpmbuild/SPECS (au-dessus et construit le paquet actuel)

Si tout s'est bien passé, votre RPM sera apparu dans ~/rpmbuild/RPMS/${arch}.

J'ai tendance à utiliser 5, 6 et 7 séparément lors de la création de nouveaux RPM, car j'aime inspecter la sortie en détail. Vous pouvez opter pour 7 immédiatement si vous avez un fichier de spécifications fourni par le fournisseur.

J'ai généralement quelque chose comme ça dans mon .rpmmacros.

%_topdir /home/YOURNAME/rpmbuild
%packager YOUR NAME <YOUR@EMA.IL>
%_tmppath /tmp

Quant à la syntaxe du specfile : ce n'est pas si difficile. Il existe un ouvrage de référence très détaillé, bien que très ancien, appelé ' RPM maximum '. Tout ce que vous voulez savoir est là-dedans.


2voto

Robert Munteanu Points 1522

Comme le dit wzzrd, essayez de reconstruire un SRPM existant.

Recherche d'OpenSUSE 10.3 RPMS donne deux résultats intéressants :

Je sais que 10.3 est loin de 10.1, mais c'est un bon coup.

2voto

GM. Points 771

Le projet OpenSuse fournit une service de construction qui peut vous aider à empaqueter facilement les RPM non seulement pour OpenSuse/SLES, mais aussi pour Fedora/RHEL/CentOS, Debian, Ubuntu et Mandriva. Tout cela en un seul coup.

1voto

mats Points 73

Si vous avez vraiment besoin d'un rpm pour faciliter la gestion ultérieure des paquets, j'essaierai d'obtenir ce rpm source. Sources svn 1.4.0 pour SuSE 10.2 installez-le, puis accédez à /usr/src//SPECS. rpm -bb subversion-1.4.0-31.spec.

Personnellement, je préfèrerais simplement obtenir la source à partir de http://subversion.tigris.org et faire la danse habituelle "configure && make && make check && sudo make install".

1voto

David Pashley Points 22851

La méthode la plus simple serait de trouver un rpm source pour une distribution similaire. Vous devriez alors être en mesure de reconstruire sur votre distribution. Je crois qu'il existe un script appelé rpmbuild qui fera la plupart du travail pour vous.

La création d'un RPM à partir de zéro représente probablement plus de travail que vous ne le souhaitez et plus d'implication que ce qui peut être décrit ici.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X