2009-04-15 4 views
2

Je supporte une application avec une dépendance forte sur python-devel 2.3.7. L'application exécute l'interpréteur python embedded, en essayant de charger libpython2.3.so - mais comme la machine locale a libpython2.4.so sous/usr/lib64, l'application échoue.Besoin de construire (ou obtenir autrement) python-devel 2.3 et ajouter à LD_LIBRARY_PATH

Je vois qu'il y a des RPM pour python-devel (mais pas la version 2.3.x). Une autre ride est que je ne veux pas écraser le python existant sous/usr/lib (je n'ai pas su de toute façon). Ce que je veux faire est de placer quelque part dans mon répertoire personnel (c'est-à-dire/home/noahz/lib) et d'utiliser PATH et LD_LIBRARY_PATH pour pointer vers l'ancienne version de cette application.

Ce que je suis en train de trouver (mais ne peut pas sembler concevoir la recherche droite google pour) est:

1) Où dois-je télécharger python-devel-2.3 ou libpython2.3.so. 1.0 (si disponible soit)

2a) Si je ne peux pas télécharger python-devel-2.3, comment puis-je construire libpython2.3.so de la source (déjà téléchargé Python-2.3.tgz et

2b) Est-ce que la construction de libpython2.3.so.1.0 à partir de la source et pointant vers lui avec LD_LIBRARY_PATH suffit, ou vais-je rencontrer d'autres problèmes (autres dépendances)

3) En général, est-ce que j'aborde ce problème de la bonne façon?

INFO ADDITIONNELLE:

  • J'ai essayé de créer un lien symbolique (ln -s) à la version ultérieure. Cela a causé l'échec de l'application en silence.

  • Distro est Red Hat Enterprise Linux 5 (RHEL5) - pour x86_64

Répondre

2

Vous pouvez utiliser le RPM lié de python à partir ChristopheD mentionné la page d'accueil de python. Vous pouvez extraire les RPM en utilisant cpio, car ce ne sont que des archives cpio spécialisées. Votre méthode de les extraire dans votre répertoire personnel et de définir LD_LIBRARY_PATH et PATH devrait fonctionner; Je l'utilise tout le temps pour des versions plus récentes construites à la main de projets que j'ai également installés.

Ne pas se concentrer sur le paquet -devel cependant; vous avez besoin du paquet principal. Vous pouvez également décompresser le -devel, mais la seule chose que vous utiliserez réellement est le lien symbolique libpython2.3.so qui pointe vers la bibliothèque actuelle, et vous pouvez tout aussi bien le créer à la main. Que ce soit la bonne approche dépend de ce que vous essayez de faire. Si tout ce que vous essayez de faire est de faire en sorte que cette application soit exécutée pour vous personnellement, alors ce hack sonne bien.Si vous vouliez réellement distribuer quelque chose à d'autres personnes pour exécuter cette application, et que vous n'avez aucun moyen de corriger l'application, vous devriez envisager de construire un rpm de l'ancienne version de python qui ne soit pas en conflit avec le système. installé un.

+0

Google pour "comment faire libpython2.3.so" (sans guillemets) - cette page a été le premier succès: http://www.czaplinski.net/sun/#python - cela a fonctionné. Merci! – noahlz

Questions connexes