Как узнать соответствующие имена пакетов rpm из выходных данных этого скрипта сборки Python?

952
Anthony Kong

Я пытаюсь скомпилировать Python 2.6.8 в Redhat 5 Linux Box.

В конце компиляции я получил эти сообщения;

Failed to find the necessary bits to build these modules: _bsddb _curses _curses_panel _hashlib _sqlite3 _ssl _tkinter bsddb185 bz2 dbm dl gdbm imageop readline sunaudiodev 

Основываясь на приведенных выше именах, я использовал yum searchи нашел несколько пакетов rpm для выполнения зависимостей.

Ncurses

ncurses-5.5-24.20060715.x86_64 ncurses-devel-5.5-24.20060715.i386

gdbm gdbm-1.8.0-26.2.1.x86_64

readline readline-5.1-3.el5.x86_64

b2 bzip2-1.0.3-4.el5_2.x86_64 bzip2-devel-1.0.3-4.el5_2.x86_64

Однако мне не повезло с остальными.

Есть ли какая-то техника в обнаружении зависимостей? Есть ли доступный веб-ресурс для поиска пакетов rpm?

0
Могу я спросить, почему вы пытаетесь собрать такую ​​старую версию Python? Текущие версии 2.7.5 и 3.3.2 ... MattDMo 11 лет назад 0
Я работаю в корпоративной среде, и 2.6.x является «официальной» версией, которую мы используем Anthony Kong 11 лет назад 0
Я сожалею о том, что... MattDMo 11 лет назад 0

2 ответа на вопрос

1
stderr
  1. Используйте deplistкоманду для вывода списка зависимостей:

yum deplist <package>

2. Или воспользуйтесь repoqueryинструментом из yum-utilsпакета:

repoquery --requires <package>

1
MattDMo

RPMfind будет вашим лучшим выбором для поиска RPM. Убедитесь, что вы получаете -develверсии, а также основной пакет, так как компилятор будет искать заголовки и / или библиотеки, которые входят в эти пакеты. У них есть RPM для Python 2.6.8 на платформах i586 и x86_64, изначально созданные для OpenSUSE, но потенциально полезные для вас.

Что касается Python, если у вас нет особой необходимости в версии 2.6, я настоятельно рекомендую использовать самые последние версии с исправленными ошибками и полнофункциональными версиями. 2.7.5 является текущим выпуском для серии обслуживания 2.x, а 3.3.2 является последней версией Python 3. Чтобы найти информацию о модулях, которые не удалось собрать, загляните в Python-2.7.5/Modulesкаталог (или любую другую версию, которую вы в итоге создали) и искать .cфайлы, связанные с именем модуля. Например, в моем Python-3.3.2/Modulesкаталоге, _tkinter.cкоторый находится вверху, написано «Поддерживаются только Tcl / Tk 8.3.1 и более поздние версии», так что теперь я знаю, какие имена пакетов и версии искать.

Удачи!