Was ist die allgemeine Strategie für den Umgang mit mehreren fehlenden gemeinsamen Objekten?

1364
barrrista

Ich lerne noch Linux, also bleib bei mir ...

Ich habe Ldd auf Apaches httpd ausgeführt und fand viele fehlende gemeinsam genutzte Bibliotheken. Ich bin neu in dieser Maschine und bin mir nicht sicher, ob einige davon falsch liegen oder tatsächlich fehlen. Meine beste Vermutung ist, dass jemand eine neuere Version von httpd installiert hat und neuere Versionen der gemeinsam genutzten Bibliotheken benötigt, die er nicht finden kann. Ich konnte einige dieser Bibliotheken an anderen Stellen auf der Maschine finden, indem ich beispielsweise "locate libmm" ausführte. Ich weiß jedoch nicht, mit welcher Version ich es verlinken möchte.

Ein typisches Beispiel: Auf was sollte der folgende Link verweisen?

libssl.so.2 => not found

Ich habe keine libssl.so.2 auf meinem Rechner gefunden, aber ich habe gefunden ...

/lib/.libssl.so.0.9.8e.hmac /lib/.libssl.so.6.hmac /lib/libssl.so.0.9.8e /lib/libssl.so.6 /lib64/.libssl.so.0.9.8e.hmac /lib64/.libssl.so.6.hmac /lib64/libssl.so.0.9.8e /lib64/libssl.so.6 /usr/lib/libssl3.so /usr/lib64/libssl3.so 

Wenn ich nicht über die Datei verfügt, zu der ein Link erstellt werden kann, wie kann ich dann das richtige Paket online finden, um es zu installieren? Wenn ich beispielsweise verwende yum search mm, ist es schwierig herauszufinden, welches Paket installiert werden soll und welches die richtige gemeinsam genutzte Bibliothek enthält.

Ist es einfacher, Apache einfach neu zu installieren?

Hier ist die Ausgabe von ldd.

$ ldd ../bin/httpd  libaprutil-1.so.0 => .../apache/2.2.24.rhas5.x86_64/lib/libaprutil-1.so.0 (0x00002ae571b0c000) libapr-1.so.0 => .../apache/2.2.24.rhas5.x86_64/lib/libapr-1.so.0 (0x00002ae571d2f000) libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003fd7c00000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae571f68000) libmm.so.14 => not found libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00002ae572183000) libm.so.6 => /lib64/libm.so.6 (0x0000003fd8000000) libpcre.so.0 => /lib64/libpcre.so.0 (0x0000003fd7000000) libcurl.so.4 => not found libidn.so.11 => /usr/lib64/libidn.so.11 (0x00002ae5724c2000) libldap-2.4.so.2 => not found librt.so.1 => /lib64/librt.so.1 (0x0000003fd8800000) libcrypto.so.1.0.0 => not found libdl.so.2 => /lib64/libdl.so.2 (0x00002ae5726f4000) libz.so.1 => /usr/lib64/libz.so.1 (0x0000003fd8400000) libexpat.so.1 => not found libssl.so.1.0.0 => not found libc.so.6 => /lib64/libc.so.6 (0x0000003fd6c00000) /lib64/ld-linux-x86-64.so.2 (0x0000003fd6800000) libmm.so.14 => not found libcurl.so.4 => not found libssl.so.1.0.0 => not found libexpat.so.1 => not found libmm.so.14 => not found libcurl.so.4 => not found libexpat.so.1 => not found libssl.so.1.0.0 => not found 
0

1 Antwort auf die Frage

0
Rich Homolka

Haben Sie dies aus einem Paket heraus installiert? Ich würde einfach eine machen yum install httpd, und es sollte sich um Abhängigkeiten kümmern.

Wenn Sie wirklich etwas davon suchen wollen, können Sie rpmfind ausprobieren und dort nach Angeboten suchen. Aber es würde viel Zeit brauchen.