2009-04-15 5 views
2

Ich unterstütze eine Anwendung mit einer harten 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 die lokale Maschine libpython2.4.so unter/usr/lib64 hat, schlägt die Anwendung fehl.Müssen python-devel 2.3 erstellen (oder anderweitig erhalten) und LD_LIBRARY_PATH hinzufügen

Ich sehe, dass es RPMs für python-devel gibt (aber nicht Version 2.3.x). Eine weitere Falte ist, dass ich den vorhandenen Python unter/usr/lib nicht überschreiben will (ich habe sowieso keinen su). Was ich tun möchte, ist, das irgendwo in meinem Home-Verzeichnis (d. H./Home/noahz/lib) zu platzieren und PATH und LD_LIBRARY_PATH zu verwenden, um auf die ältere Version für diese Anwendung zu zeigen.

Was ich versuche, um herauszufinden, (kann aber nicht die richtige Google-Suche erscheinen für Handwerk) ist:

1) Wo ich herunterladen python-devel-2.3 oder libpython2.3.so. 1,0 (wenn entweder verfügbar)

2a) wenn ich nicht python-devel-2.3 herunterladen kann, wie kann ich libpython2.3.so aus dem Quellcode bauen (bereits heruntergeladenen Python-2.3.tgz und

2b) Erzeugt libpython2.3.so.1.0 aus der Quelle und zeigt mit LD_LIBRARY_PATH darauf hin, oder werde ich auf andere Probleme stoßen (andere Abhängigkeiten)

3) Allgemein, nähere ich mich diesem Problem auf die richtige Art und Weise?

ZUSÄTZLICHE INFORMATIONEN:

  • ich versuchte zu Symlink (ln -s) auf die spätere Version. Dies führte dazu, dass die App im Hintergrund fehlte.

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

Antwort

2

Sie die Python-RPMs verknüpft aus der Python-Homepage ChristopheD erwähnt verwenden können. Sie können die RPMs mit cpio extrahieren, da sie nur spezialisierte cpio-Archive sind. Ihre Methode, sie in Ihr Home-Verzeichnis zu extrahieren und LD_LIBRARY_PATH und PATH zu setzen, sollte funktionieren; Ich benutze es die ganze Zeit für handgebaute neuere Versionen von Projekten, die ich auch installiert habe.

Konzentrieren Sie sich nicht auf das Paket -devel; Du brauchst das Hauptpaket. Sie können auch das -Ende entpacken, aber das einzige, was Sie tatsächlich verwenden, ist der Symplink libpython2.3.so, der auf die eigentliche Bibliothek verweist, und Sie können das genauso gut von Hand erstellen.

Ob dies der richtige Ansatz ist, hängt davon ab, was Sie versuchen zu tun. Wenn Sie nur versuchen, diese eine Anwendung für sich persönlich laufen zu lassen, dann klingt dieser Hack gut.

Wenn Sie wirklich etwas an andere Personen verteilen möchten, um diese Anwendung auszuführen, und Sie keine Möglichkeit haben, die eigentliche Anwendung zu reparieren, sollten Sie eine RPM der älteren Python-Version erstellen, die nicht mit dem System kollidiert. installiert eins.

+0

googled für "wie libpython2.3.so zu machen" (keine Anführungszeichen) - diese Seite war der erste Treffer: http://www.czaplinski.net/sun/#python - es hat funktioniert. Vielen Dank! – noahlz