CentOS 5.5 - symbolic link-Erstellung in RPM-spec-Datei
Muss ich erstellen Sie die folgenden symbolischen links, in die RPM-Datei
/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
In meinem RPM-spec-Datei:
%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
Den /lib/libcrypto.so.0.9.8 e und /lib/libssl.so.0.9.8 e existiert auf meinem PC, aber wenn ich versuche zu installieren, meine U /MIN, ich bekam eine Fehlermeldung:
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
Was falsch? Was muss ich tun, um erstellen Sie symbolische links, die Teil der RPM-installation?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als workaround habe ich deaktiviert, das automatische dependency-Verarbeitung durch Zugabe von:
meiner spec-Datei.
Ich bin noch auf der Suche nach der wirklichen Lösung.
Müssen Sie führen Sie ldconfig in der %post-Teil der spec-Datei:
sollte es tun.
1) Nur für symlinks, die Sie nicht benötigen, rufen Sie ldconfig in post-Phase.
2) Wie bereits erwähnt ldav1s: stellen Sie sicher, dass Ihre Dateien sind aufgelistet in der %files-Sektion.
3) noch Einmal: Seien Sie sicher, dass Ihre Dateien werden aufgelistet - besonders wenn Sie so etwas wie
RHEL rpmbuild mit einer Fehlermeldung beendet, wenn Dateien gefunden werden, die in buildroot, die nicht aufgeführt sind in der %files-Sektion. Mit diesem definieren Sie können schalten Sie das Verhalten/Fehler ausschalten, aber man sollte genau wissen, was Sie eigentlich tun. Wenn Sie diese Linie benutzen, sollten Sie entfernen es aus Ihrer spec-Datei.
4) nicht bauen, das rpm-Paket als root-Benutzer. Wenn Sie vergessen haben, verwenden Sie rpm_build_root Sie nicht zerstören, Ihr live-system. Dein Beispiel sieht aus wie es war aus einer spec-Datei von Red Hat 4.2 von 1997. Da Red Hat 5 (nicht RHEL 5!) 1997 rpm/rpmbuild-Befehl kennt die RPM_BUILD_ROOT definition. Ich denke, dass das ist Ihr problem: Sie verwenden nicht die buildroot installieren aber direkt in das root-FS und führen Sie " rpmbuild als Benutzer root an.
Gegeben, dein Beispiel sollte es so geändert werden:
Mithilfe von buildroot ist beschrieben in RPM docs.
Der beste Weg, dies zu tun ist durch die Verhinderung der symlinks, die Sie erstellt, gescannt von der Automatik abhängig & erfordert Generatoren:
Mehr Informationen auf hängt/erfordert Filterung hier.