Поскольку мне нужно установить несколько версий Python на нескольких серверах Oracle Linux, которые создаются с помощью процесса кикстарта, я хотел создать rpm-пакет python для нашего репозитория yum. Мне удалось собрать Python вручную с помощью команды make altinstall, которая не устанавливается поверх вашей системы Python по умолчанию, поэтому я подумал, что это будет выход.
После долгих проб и ошибок мне удалось собрать rpm, начиная с пакета .bz2 python 2.7, но теперь, когда я пытаюсь его установить, я получаю сообщение об ошибке:
error: Failed dependencies:
/usr/local/bin/python is needed by Python-2.7.2-1.i386
Что за...??? Python - это то, что я пытаюсь установить !!! А системный Python по умолчанию (2.4) находится в / usr / bin / python !!! И мое прототипное место для каталога python - /tmp/python2.7 (а исполняемый файл - /tmp/python2.7/bin/python2.7). Так почему он смотрит в / usr / local / bin?
Вот суть моего SPEC RPM:
%prep
%setup -q
%build
./configure --prefix=/tmp/python2.7
make
%install
make altinstall
Я внимательно смотрю журнал сборки rpm и вижу:
Requires: /bin/sh /tmp/python2.7/bin/python2.7 /usr/bin/env /usr/local/bin/python libc.so.6 libc.so.6(GLIBC_2.0)...[a lot more...]
Хорошо, вот где появляется / usr / local / bin ... Теперь вопрос в том, как он определяет эти требования? Я что-то не так указал? Мне нужно что-то переопределить?
Как и многие новички в rpm, я получаю часть сборки, но на самом деле я не "разбираюсь" в том, что происходит в конце rpmbuild и что на самом деле помещается в файл rpm (кроме файлов, указанных в% files), а затем что на самом деле происходит, когда вы выполняете установку rpm.
Может ли кто-нибудь подсказать, почему моя установка не удалась, или что я мог бы прочитать, чтобы понять, почему моя сборка rpm требует того, что я пытаюсь построить?