Création d'un RPM et script de post install

Bonjour,

J'utilise un script pour générer automatiquement un rpm
Je l'ai modifié pour rajouter des commandes de post install qui sont les suivantes :
%post
chmod -R 444 /usr/local/bin/alura/SCAL7
find /usr/local/bin/alura/SCAL7 -type f -name SCAL -print0 | xargs -0 chmod 555
find /usr/local/bin/alura/SCAL7 -type f -regex .*ini -print0 | xargs -0 chmod 666
find /usr/local/bin/alura/SCAL7 -type f -regex .*xml -print0 | xargs -0 chmod 666
/sbin/ldconfig


Prises séparément, ces commandes semblent fonctionner correctement.
Seulement, une fois incluses dans le RPM, lors de l'installation du RPM, on se retrouve avec tout le chemin /usr/local/bin/... dont les droits d'accès sont changés !
Ce qui pourri au passage la partition : pour la remettre d'aplomb, il faut faire les commandes suivantes, en root :
Cd /
Chmod 755 . 
Chmod 755 usr
Chmod 755 usr/local 
Chmod 755 usr/local/bin
Chmod -R 755 usr/local/bin/...


Je ne comprend pas qu'est ce qui change les droits de ce chemin, puisque les seules commandes que j'ai rajouté fonctionnent correctement, à part ?

Voici une partie du fichier de spec qui permet de générer le rpm :
# Initial spec file created by autospec ver. 0.8 with rpm 3 compatibility
Summary: SCAL_RPM
# The Summary: line should be expanded to about here -----^
#Summary(fr): (translated summary goes here)
Name: SCAL7
Version: 8.8.4
Release: 1
Group: SAPHIR
#Group(fr): (translated group goes here)
License: SAPHIR
Source: SCAL7.bin.tar.gz
#NoSource: SCAL7.bin.tar.gz
BuildRoot: %{_tmppath}/%{name}-root
# Following are optional fields
#URL: http://www.example.net/SCAL_RPM/
#Distribution: Red Hat Contrib-Net
#Patch: SCAL_RPM-%{version}.patch
Prefix:/usr/local/bin/alura/SCAL7
#BuildArch: noarch
#Requires: 
#Obsoletes: 
#BuildRequires: 

%description
SCAL7 version 8.8.4

#%description -l fr
#(translated description goes here)

%prep
%setup -c SCAL_RPM
#%patch

%install
%__cp -a . "${RPM_BUILD_ROOT-/}"

%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"

%post
chmod -R 444 /usr/local/bin/alura/SCAL7
find /usr/local/bin/alura/SCAL7 -type f -name SCAL -print0 | xargs -0 chmod 555
find /usr/local/bin/alura/SCAL7 -type f -regex .*ini -print0 | xargs -0 chmod 666
find /usr/local/bin/alura/SCAL7 -type f -regex .*xml -print0 | xargs -0 chmod 666
/sbin/ldconfig

%post
chmod -R 444 /usr/local/bin/alura/SCAL7
find /usr/local/bin/alura/SCAL7 -type f -name SCAL -print0 | xargs -0 chmod 555
find /usr/local/bin/alura/SCAL7 -type f -regex .*ini -print0 | xargs -0 chmod 666
find /usr/local/bin/alura/SCAL7 -type f -regex .*xml -print0 | xargs -0 chmod 666
/sbin/ldconfig

%files
%defattr(744,root,root,744)
%dir /./
/./SCAL7.tar.gz
/./Temp.spec
/./SCAL7.spec
/./tmp
/./Temp2.spec
%dir /./usr/
%dir /./usr/local/
%dir /./usr/local/bin/
%dir /./usr/local/bin/alura/
%dir /./usr/local/bin/alura/SCAL7/
%dir /./usr/local/bin/alura/SCAL7/SCAL_ExtTrack/
/./usr/local/bin/alura/SCAL7/SCAL_ExtTrack/Copy.vi
/./usr/local/bin/alura/SCAL7/SCAL_ExtTrack/Create.vi
[...]
%dir /./usr/local/natinst/
%dir /./usr/local/natinst/smserver/

%changelog
* Sat Jul 04 2009 root <root@xq2500-1>
- Initial spec file created by autospec ver. 0.8 with rpm 3 compatibility


Merci pour vos conseils !

1 réponse

  1. J'ai trouvé, ca saute aux yeux...!

    %files
    %defattr(744,root,root,744)
    %dir /./
    [...]
    %dir /./usr/
    %dir /./usr/local/
    %dir /./usr/local/bin/


    => aux dossiers . , ./usr , ./usr/local ... on définit par défaut les attributs 744
    d'où le plantage de mon OS