CentOS 5.5 - création de liens symboliques dans le fichier de spécification RPM
J'ai besoin de créer les liens symboliques dans le fichier RPM
/bin/ln -sf libcrypto.so.0.9.8e /lib/libcrypto.so.0.9.8
/bin/ln -sf libssl.so.0.9.8e /lib/libssl.so.0.9.8
Dans mon fichier de spécification RPM:
%files
%defattr(-,root,root)
/lib/libcrypto.so.0.9.8
/lib/libssl.so.0.9.8
<other files...>
%install
/bin/ln -sf libcrypto.so.0.9.8e /lib/libcrypto.so.0.9.8
/bin/ln -sf libssl.so.0.9.8e /lib/libssl.so.0.9.8
/Lib/libcrypto..0.9.8 e et /lib/libssl..0.9.8 e sont existe sur mon PC, mais quand je suis en train d'installer mon TR /min, j'ai eu une erreur:
libcrypto.so.0.9.8 is needed by my-test-rpm-1.el5.i686
libssl.so.0.9.8 is needed by my-test-rpm-1.el5.i686
Quoi de mal? Ce que je dois faire afin de créer des liens symboliques dans le cadre de l'installation des RPM?
Grâce
OriginalL'auteur Dima | 2011-01-28
Vous devez vous connecter pour publier un commentaire.
Comme solution de contournement j'ai désactivé automatique de traitement de la dépendance en ajoutant:
à mon fichier spec.
Je suis toujours à la recherche de la solution réelle.
OriginalL'auteur Dima
Vous devez exécuter ldconfig en %de la partie de la spécification de fichier:
devrait le faire.
Sonne comme /lib/libcrypto..0.9.8 e et /lib/libssl..0.9.8 e ne sont pas dans la liste des %des fichiers. Aussi votre invocation de 'ln' ne fait pas référence à eux de cette façon, soit comme " /bin/ln -sf /lib/libcrypto..0.9.8 e /lib/libcrypto..0.9.8'.
/lib/libcrypto..0.9.8 e et /lib/libssl..0.9.8 e font partie de la openssl TR / min.
Mais d'un autre binaires que mon RPM est le programme d'installation demande /lib/libssl..0.9.8 et /lib/libssl..0.9.8 mais pas /lib/libcrypto..0.9.8 e et /lib/libssl..0.9.8 e
OriginalL'auteur ldav1s
1) Seulement pour les liens symboliques, vous n'avez pas besoin d'appeler ldconfig après la scène.
2) Comme déjà mentionné par ldav1s: assurez-vous que vos fichiers sont exprimées en %section fichiers.
3) une Fois de plus: assurez-vous que vos fichiers sont répertoriés - surtout si vous utilisez quelque chose comme
RHEL rpmbuild se termine avec une erreur si les fichiers se trouvent dans buildroot qui ne sont pas cotées en %section fichiers. Avec cette définissent vous pouvez changer de comportement/d'erreur mais vous devez savoir exactement ce que vous êtes en train de faire. Si vous utilisez cette ligne, vous devez le supprimer de votre fichier spec.
4) Ne pas construire le paquet rpm en tant qu'utilisateur root. Si vous oubliez d'utiliser rpm_build_root vous ne les détruisent pas votre système en direct. Votre exemple ressemble à elle a été prise à partir d'un fichier de spécification de Red Hat 4.2 de 1997. Depuis Red Hat 5 (pas de RHEL 5!) en 1997, le rpm/rpmbuild commande connaît le RPM_BUILD_ROOT définition. Je suppose que c'est votre problème: Vous n'utilisez pas le buildroot, mais d'installer directement dans la racine de la FS et exécuter rpmbuild en tant qu'utilisateur root.
Donné votre exemple, il devrait être remplacé par:
Utilisation de buildroot est décrit dans TR /min docs.
OriginalL'auteur reichhart
La meilleure façon de le faire est de prévenir que les liens symboliques que vous avez créé à partir d'être analysés par le automatique dépend & nécessite des générateurs:
Plus d'informations sur depends/nécessite de filtrage ici.
OriginalL'auteur jayhendren