Ponieważ muszę zainstalować wiele wersji Pythona na wielu serwerach Oracle Linux, które są budowane w procesie kickstart, chciałem zbudować rpm Pythona dla naszego repozytorium yuma. Byłem w stanie zbudować Python ręcznie, używając 'make altinstall', który nie jest instalowany przez domyślną instalację systemu Python, więc pomyślałem, że to będzie droga.Python RPM, który zbudowałem, nie będzie instalował
Po wielu prób i błędów udało mi się zbudować rpm wychodząc z .bz2 Pythona 2.7 pakietu - ale teraz, gdy próbuję go zainstalować, pojawia się błąd:
error: Failed dependencies:
/usr/local/bin/python is needed by Python-2.7.2-1.i386
Co się .. . ??? Python jest tym, co próbuję zainstalować !!! I domyślny system Python (2.4) znajduje się w/usr/bin/python !!! Moją lokalizacją prototypowania dla katalogu Pythona jest /tmp/python2.7 (a plik wykonywalny to /tmp/python2.7/bin/python2.7). Dlaczego więc szuka w/usr/local/bin?
Oto sedno mojego RPM SPEC:
%prep
%setup -q
%build
./configure --prefix=/tmp/python2.7
make
%install
make altinstall
I przyjrzeć się bliżej w dzienniku budowania rpm i widzę:
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...]
Ok, więc nie ma gdzie/usr/local/bin wchodzi ... Teraz pytanie brzmi: jak to określa te wymagania? Czy podałem coś niewłaściwego? Czy muszę coś zmienić?
Podobnie jak wielu początkujących rpm, otrzymuję część konstrukcyjną, ale tak naprawdę nie "grokuję" tego, co dzieje się na końcu rpmbuild i co faktycznie dostaje się do pliku rpm (innego niż pliki określone w% plików), a następnie, co faktycznie dzieje się podczas instalacji rpm.
Czy ktoś może zasugerować, dlaczego moja instalacja się nie udała lub co przeczytałem, aby zrozumieć, dlaczego moja kompilacja rpm wymaga tego, co próbuję zbudować?
Brzmi obiecująco - spróbuję ... – Ilane
>>> print "Dziękuję, F.J. !!!" Dziękuję, F.J !!! – Ilane
Nie należy wyłączać przetwarzania zależności w tym przypadku. To może przerwać pakiet Pythona, ponieważ RPM nie będzie wiedział, z czego pliki zależą. Prawidłową rzeczą jest załatanie pliku zawierającego błędną linię shebang. – jayhendren