2 Stimmen

Sie müssen python-devel 2.3 erstellen (oder anderweitig erhalten) und zu LD_LIBRARY_PATH hinzufügen

Ich unterstütze eine Anwendung mit einer festen Abhängigkeit von python-devel 2.3.7. Die Anwendung führt den eingebetteten Python-Interpreter aus und versucht, libpython2.3.so zu laden - aber da der lokale Rechner libpython2.4.so unter /usr/lib64 hat, schlägt die Anwendung fehl.

Ich sehe, dass es RPMs für python-devel gibt (aber nicht Version 2.3.x). Ein weiteres Problem ist, dass ich das vorhandene Python unter /usr/lib nicht überschreiben möchte (ich habe sowieso kein su). Ich möchte das Programm irgendwo in meinem Heimatverzeichnis (z. B. /home/noahz/lib) ablegen und PATH und LD_LIBRARY_PATH verwenden, um auf die ältere Version für diese Anwendung zu verweisen.

Was ich herauszufinden versuche (aber nicht die richtige Google-Suche zu finden scheine) ist:

1) Wo kann ich python-devel-2.3 oder libpython2.3.so.1.0 herunterladen (falls verfügbar)?

2a) Wenn ich python-devel-2.3 nicht herunterladen kann, wie baue ich libpython2.3.so aus den Quellen (bereits heruntergeladen Python-2.3.tgz und

2b) Ist die Erstellung von libpython2.3.so.1.0 aus den Quellen und verweist auf es mit LD_LIBRARY_PATH gut genug, oder werde ich in andere Probleme (andere Abhängigkeiten) laufen

3) Gehe ich generell richtig an dieses Problem heran?

ZUSÄTZLICHE INFORMATIONEN:

  • Ich habe versucht, einen Symlink (ln -s) zur neueren Version zu erstellen. Dies führte dazu, dass die Anwendung stillschweigend fehlschlug.

  • Distro ist Red Hat Enterprise Linux 5 (RHEL5) - für x86_64

2voto

Thomas Vander Stichele Punkte 34981

Sie können die Python-RPMs verwenden, die auf der von ChristopheD erwähnten Python-Homepage verlinkt sind. Sie können die RPMs mit cpio entpacken, da es sich nur um spezielle cpio-Archive handelt. Ihre Methode, sie in Ihr Home-Verzeichnis zu extrahieren und LD_LIBRARY_PATH und PATH zu setzen, sollte funktionieren; ich verwende dies ständig für selbst erstellte neuere Versionen von Projekten, die ich ebenfalls installiert habe.

Konzentrieren Sie sich jedoch nicht auf das -devel-Paket; Sie brauchen das Hauptpaket. Sie können auch das -devel-Paket entpacken, aber das Einzige, was Sie davon tatsächlich verwenden werden, ist der Symlink libpython2.3.so, der auf die eigentliche Bibliothek verweist, und den können Sie genauso gut von Hand erstellen.

Ob dies der richtige Ansatz ist, hängt davon ab, was Sie erreichen wollen. Wenn es Ihnen nur darum geht, diese eine Anwendung für Sie persönlich zum Laufen zu bringen, dann ist dieser Hack in Ordnung.

Wenn Sie tatsächlich etwas an andere Leute weitergeben wollen, um diese Anwendung auszuführen, und Sie keine Möglichkeit haben, die eigentliche Anwendung zu reparieren, sollten Sie in Erwägung ziehen, ein rpm der älteren Python-Version zu erstellen, das nicht mit der im System installierten Version kollidiert.

0voto

ChristopheD Punkte 106139

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X