фиктивная сборка завершается с ошибкой "sh: / usr/bin / python2: нет такого файла или каталога", даже если файл существует

Я пытаюсь установить tornado с помощью mock, из исходного rpm, в контейнер Centos 7 lxc:

mock -r epel-7-x86_64 python-tornado-4.4.2-3.fc26.src.rpm

все, кажется, идет хорошо, пока он не остановится с ошибкой ниже. Я проверил, что файл существует:

# which python2
/usr/bin/python2

вот полная ошибка:

Finish: chroot init
Start: build phase for python-tornado-4.4.2-3.fc26.src.rpm
Start: build setup for python-tornado-4.4.2-3.fc26.src.rpm
sh: /usr/bin/python2: No such file or directory
sh: /usr/bin/python2: No such file or directory
Building target platforms: x86_64
Building for target x86_64
Wrote: /builddir/build/SRPMS/python-tornado-4.4.2-3.el7.centos.src.rpm
Getting requirements for python-tornado-4.4.2-3.el7.centos.src
 --> python-devel-2.7.5-48.el7.x86_64
 --> python2-backports_abc-0.5-1.el7.noarch
 --> python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch
Error: No Package found for python2-singledispatch
ERROR: Exception(/root/share/python-tornado-4.4.2-3.fc26.src.rpm) Config(epel-7-x86_64) 0 minutes 25 seconds
INFO: Results and/or logs in: /var/lib/mock/epel-7-x86_64/result
ERROR: Command failed: 
 # /usr/bin/yum-builddep --installroot /var/lib/mock/epel-7-x86_64/root/ --releasever 7 /var/lib/mock/epel-7-x86_64/root//builddir/build/SRPMS/python-tornado-4.4.2-3.el7.centos.src.rpm --setopt=tsflags=nocontexts
Getting requirements for python-tornado-4.4.2-3.el7.centos.src
 --> python-devel-2.7.5-48.el7.x86_64
 --> python2-backports_abc-0.5-1.el7.noarch
 --> python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch
Error: No Package found for python2-singledispatch

This the output of build.log:

Mock Version: 1.3.3
ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-tornado.spec'], chrootPath='/var/lib/mock/epel-7-x86_64/root'shell=FalseprintOutput=Trueenv={'LANG': 'en_IE.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'printf "33]0;<mock-chroot>07"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': '<mock-chroot> s-v$ '}gid=135user='mockbuild'timeout=0logger=<mockbuild.trace_decorator.getLog object at 0x1212a50>uid=0)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-tornado.spec'] with env {'LANG': 'en_IE.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'printf "33]0;<mock-chroot>07"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': '<mock-chroot> s-v$ '} and shell False
sh: /usr/bin/python2: No such file or directory
sh: /usr/bin/python2: No such file or directory
Building target platforms: x86_64
Building for target x86_64
Wrote: /builddir/build/SRPMS/python-tornado-4.4.2-3.el7.centos.src.rpm
Child return code was: 0

есть идеи, почему он не может найти python2? Или ошибка на самом деле что-то совсем другое? Спасибо!

rpm -qa | grep python-singledispatch
python-singledispatch-3.4.0.2-2.el7.noarch
30
задан Nagev
24.02.2023 16:09 Количество просмотров материала 3439
Распечатать страницу

2 ответа

ответ был дан в комментариях. Просто, чтобы завершить его, нашли правильный источник торнадо RPM для CentOS 7 из https://centos.pkgs.org/7/epel-x86_64/python34-tornado-4.4.2-1.el7.x86_64.rpm.html. Дал ошибка была для Fedora (на сайте я уже использовал не один для CentOS).

Итак, это работает:

mock -r epel-7-x86_64 python3-tornado-4.4.2-1.el7.src.rpm

сообщение об ошибке вводит в заблуждение.

0
отвечен Nagev 2023-02-25 23:57
  • sh: /usr/bin/python2: No such file or directory

это просто предупреждение и не останавливает выполнение. Это происходит, когда макрос файла спецификации пытается выполнить команду python до того, как python будет установлен в фиктивном chroot.

  • Error: No Package found for python2-singledispatch

это реальная проблема. Fedora изменила свою политику упаковки Python с EL7. В принципе, теперь у вас есть версии пакетов python2-$x и python3-$x, а неверсированное имя python - $x предоставляется пакетом python2 - $X. В какой-то момент в будущем это будет изменено, и python3-$x предоставит python - $x. Файл спецификации торнадо F26 имел требование python2-singledispatch, которое не предусмотрено ничем в EL7. Одно решение, которое может быть предложено сопровождающий Федора обернуть "2" в условном, распространяющийся только на Fedora, как это: python%{?fedora:2}-singledispatch. Это расширилось бы до python2-singledispatch на Fedora, но python-singledispatch на CentOS, который является желаемое поведение.

0
отвечен carlwgeorge 2023-02-26 02:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх