Нужно собрать (или иным образом получить) python-devel 2.3 и добавить в LD_LIBRARY_PATH - PullRequest
2 голосов
/ 16 апреля 2009

Я поддерживаю приложение с жесткой зависимостью от python-devel 2.3.7. Приложение запускает встроенный интерпретатор python, пытаясь загрузить libpython2.3.so, но поскольку на локальном компьютере установлен libpython2.4.so в каталоге / usr / lib64, приложение не работает.

Я вижу, что есть RPM для python-devel (но не версии 2.3.x). Другая проблема заключается в том, что я не хочу перезаписывать существующий питон в / usr / lib (у меня все равно нет su). То, что я хочу сделать, это разместить где-нибудь в моем домашнем каталоге (т.е. / home / noahz / lib) и использовать PATH и LD_LIBRARY_PATH, чтобы указать на старую версию для этого приложения.

Я пытаюсь выяснить (но не могу найти правильный поиск в Google):

1) Где я могу скачать python-devel-2.3 или libpython2.3.so.1.0 (если имеется)

2a) Если я не могу загрузить python-devel-2.3, как мне собрать libpython2.3.so из исходного кода (уже загружены Python-2.3.tgz и

2b) Собирает libpython2.3.so.1.0 из исходного кода и указывает на него с LD_LIBRARY_PATH достаточно хорошо, или я собираюсь столкнуться с другими проблемами (другими зависимостями)

3) В общем, правильно ли я подхожу к этой проблеме?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

  • Я попытался создать символическую ссылку (ln -s) на более позднюю версию. Это привело к тихому сбою приложения.

  • Дистрибутив Red Hat Enterprise Linux 5 (RHEL5) - для x86_64

Ответы [ 2 ]

2 голосов
/ 16 апреля 2009

Вы можете использовать RPM-пакеты для Python, указанные на домашней странице Python, упомянутой ChristopheD. Вы можете извлечь RPM с помощью cpio, поскольку они являются просто специализированными архивами cpio. Ваш метод извлечения их в ваш домашний каталог и установки LD_LIBRARY_PATH и PATH должен работать; Я использую это все время для созданных вручную новых версий проектов, которые я также установил.

Не сосредотачивайтесь на пакете -devel; вам нужен основной пакет. Вы также можете распаковать один -devel, но единственное, что вы на самом деле будете использовать, это символическая ссылка libpython2.3.so, которая указывает на реальную библиотеку, и вы также можете создать ее вручную.

Правильный ли это подход зависит от того, что вы пытаетесь сделать. Если все, что вы пытаетесь сделать, это заставить это приложение работать лично для вас, тогда этот хак звучит нормально.

Если вы хотели на самом деле распространять что-то среди других людей для запуска этого приложения, и у вас нет возможности исправить настоящее приложение, вам следует рассмотреть возможность создания rpm более старой версии Python, которая не конфликтует с установленной системой один.

0 голосов
/ 16 апреля 2009

Можете ли вы использовать один из этих оборотов? На каком конкретном дистрибутиве вы находитесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...