Forum Linux.redhat Création RPM include installation RPM

Posté par .
1
5
juil.
2012

Bonjour,

je suis actuellement en train d'essayer de réaliser la création d'un RPM vide, stocké dans un repo local, permettant l'installation d'autres fichier RPM (inclu dans le repo local) lors de son installation via yum.

J'ai essayé les options Provides, Requires, etc mais sans trop de succès. Si quelqu'un pouvait m’aiguiller.

J'ai également créé un RPM contenant tous mes RPM mais au moment de l'appel de la commande /bin/rpm -i je me retrouve avec une erreur (requires /bin/sh).

Merci bcp pour votre aide

  • # Trojan !

    Posté par (page perso) . Évalué à 0.

    réaliser la création d'un RPM vide, stocké dans un repo local, permettant l'installation d'autres fichier RPM

    Ce qui revient à installer des truc en douce, un rpm trojan quoi ! Nuuuut ! Pas bien.

    La solution correcte c'est définitivement la déclaration des dépendances entre tes paquets.
    Ne peux pas t'aider sur ce coup hélas mais je crois qu'il y a un fichier de description de ton paquet dans lequel tu déclares ça… Une bonne âme t'en diras certainement plus.

    Fuse : j'en Use et Abuse !

    • [^] # Re: Trojan !

      Posté par . Évalué à 0.

      En fait l'idéal serait de mettre dans ce "RPM vide" les dépendances à installer automatiquement. Afin de réaliser plusieurs releases/version par an contenant tous les packages nécessaires.

      merci pour ta réponse :)

  • # manque d'infos

    Posté par (page perso) . Évalué à 2.

    si tu pouvais poster le fichier spec ainsi que le message d'erreur, ce serait beaucoup plus simple pour t'aider …

    sinon, il faut utiliser le tag requires en donnant le nom du package dont il dépends
    tu peux tout mettre sur une seule ligne, ou une ligne par dépendance (au choix)

    et pour finir : un peu de doc

  • # exemple task-lamp

    Posté par (page perso) . Évalué à 3.

    Sur mageia, tu as un meta-paquet task-lamp qui t'installe apache, mariadb, php et perl

    Voir http://svnweb.mageia.org/packages/cauldron/task-lamp/current/SPECS/task-lamp.spec?view=markup

    bon, tu as des macros (%files par exemple) mais cela ne devrait pas demander trop de transposition.

    comme indiqué ci-dessus, poster ton essai et les erreurs obtenues simplifierait ;-)

  • # Merci

    Posté par . Évalué à 1.

    Hello à tous,

    merci pour vos commentaires qu im'ont permis de résoudre mon problème. Je n'avais pas compris qu'il était nécessaire de spécifier le nom de mon package avec la directive %files pour forcer l'installation des dépendances.

    Ce qui donne au final un fichier relativement simple pour l'exemple :

    Summary: First test package
    Name: power
    Version: 1.0
    Release: 1
    Distribution: RHEL
    License: GPL
    Vendor: Perso
    Packager: toto

    %description
    A package including all rpm files needed to install Apache / PHP

    %package php
    Summary: Apache PHP
    License: GPL
    Requires: httpd-tools = 2.2.15
    Requires: httpd

    %description php
    Package de test

    %files php
    %changelog

    Merci à tous

    P.S : Oui j'ai beaucoup lu mais il n'est pas tjrs évident de comprendre facilement les docs, le 3ième oeil est souvent utile.

    • [^] # Re: Merci

      Posté par . Évalué à 4. Dernière modification le 06/07/12 à 17:12.

      Distribution: RHEL

      La bonne façon de faire sur les distros Fedora-based c'est de créer des groupes de paquets. Les méta-paquets sont déconseillés (la seule exception admise étant pour les paquets générés à partir du même src.rpm)
      Pour ça, tu édites un fichier comps.xml qui doit ressembler à ça

      <comps>
      <group>
      <id>machin</id><!-- identifiant du groupe -->
      <name>machin truc bidule</name><!-- nom du groupe -->
      <default>false</default>
      <uservisible>true</uservisible><!-- visibilité dans les outils d'installation -->
      <packagelist><!-- liste des paquets du groupe -->
      <packagereq type="default">machin</packagereq><!-- paquet installé par défaut à l'installation du groupe -->
      <packagereq type="optional">machin-truc</packagereq><!-- paquet non installé par défaut -->
      </group>
      ...
      </comps>

      à la création du dépôt: createrepo -g comps.xml /chemin/vers/mon/dépôt (man createrepo)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.