2 votes

RPM + installation rpm (ne crée pas de répertoire selon SPEC)

J'ai besoin de conseils concernant ce qui suit

Je crée un fichier spec simple et construis un rpm

Je transfère le nouveau rpm vers une autre machine Linux afin d'installer le nouveau rpm

selon le fichier spec, le nouveau rpm -> test.sh-6.2-2.i386.rpm devrait créer le répertoire /tmp/MY_RPM_TESTS, mais ce rpm ne crée pas MY_RPM_TESTS et les sous-répertoires, veuillez me conseiller pourquoi, que dois-je corriger dans le fichier spec?

Installation du RPM:

   [root@linux1 rpm -Uvh  /root/rpmbuild/RPMS/i386/test.sh-6.2-2.i386.rpm
   Préparation...                ########################################### [100%]
   Ceci est un script de pré-installation
   Linux linux 2.6.18-164.2.1.el5PAE #1 SMP Mon Sep 21 04:45:05 EDT 2009 i686 i686 i386 GNU/Linux
   1:test.sh                ########################################### [100%]
   Linux linux 2.6.18-164.2.1.el5PAE #1 SMP Mon Sep 21 04:45:05 EDT 2009 i686 i686 i386 GNU/Linux
   Maintenant nous attendons pour dormir
   100

   [root@linux1 ls /tmp

   preinstall_dir

mon fichier SPEC:

  root@linux /usr/src/redhat/SPECS]# more my_spec.spec
  Résumé: Un outil d'exemple. Pour montrer une construction de rpm simple de l'outil.
  Nom: test.sh
  Version: 6.2
  Release: 2
  Source0: /root/test.sh 
  Source1: /root/urim.sh
  Groupe: Development/Debuggers
  BuildRoot:/tmp/MY_RPM_TESTS
  License: OtherLicense
  %description

  %pre -p /bin/ksh
  print "Ceci est un script de pré-installation"
  uname -a
  rm -rf /tmp/preinstall_dir
  mkdir /tmp/preinstall_dir

  %install
  rm -rf %{buildroot}

  mkdir -p %{buildroot}
  mkdir -p %{buildroot}/home
  mkdir -p %{buildroot}/home/home1

  cp %SOURCE0 %{buildroot}/home
  cp %SOURCE0 %{buildroot}/home/home1

  cp %SOURCE1  %{buildroot}/home

  %files
  /home/test.sh
  /home/home1/test.sh
  /home/urim.sh

  %post -p /bin/ksh

  uname -a
  print "Maintenant nous attendons pour dormir" ; sleep  1
  NUM=100
  print $NUM

Construire le rpm:

  [root@linux /usr/src/redhat/SPECS]# rpm -ba   /usr/src/redhat/SPECS/my_spec.spec
  Exécution de(%install): /bin/sh -e /root/rpmbuild/tmp/rpm-tmp.83360
  + umask 022
  + cd /root/rpmbuild/BUILD
  + rm -rf /tmp/MY_RPM_TESTS
  + mkdir -p /tmp/MY_RPM_TESTS
  + mkdir -p /tmp/MY_RPM_TESTS/home
  + mkdir -p /tmp/MY_RPM_TESTS/home/home1
  + cp /root/rpmbuild/SOURCES/test.sh /tmp/MY_RPM_TESTS/home
  + cp /root/rpmbuild/SOURCES/test.sh /tmp/MY_RPM_TESTS/home/home1
  + cp /root/rpmbuild/SOURCES/urim.sh /tmp/MY_RPM_TESTS/home
  + /usr/lib/rpm/brp-compress
  + /usr/lib/rpm/brp-strip
  + /usr/lib/rpm/brp-strip-static-archive
  + /usr/lib/rpm/brp-strip-comment-note
  Traitement des fichiers: test.sh-6.2-2
  Nécessite(interp): /bin/ksh /bin/ksh
  Nécessite(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib    (PayloadFilesHavePrefix) <= 4.0-1
  Nécessite(pré): /bin/ksh
  Nécessite(post): /bin/ksh
  Vérification des fichiers non empaquetés: /usr/lib/rpm/check-files /tmp/MY_RPM_TESTS
  Écrit: /root/rpmbuild/SRPMS/test.sh-6.2-2.src.rpm
  Écrit: /root/rpmbuild/RPMS/i386/test.sh-6.2-2.i386.rpm

3voto

Robin Green Points 12926

Vous avez mal compris. /tmp/MY_RPM_TESTS est la racine de construction, qui est créée, mais qui n'est utilisée que temporairement et internement par rpmbuild. Elle ne doit pas faire partie du fichier rpm, et vous ne devriez jamais essayer d'installer quoi que ce soit dans /tmp de toute façon! /tmp est réservé aux fichiers temporaires uniquement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X