Проблема с установкой пакетов на Ubuntu. Нужно ли менять код в исходниках пакетов для корректной установки?
Возникла проблема с установкой пакетов на Ubuntu, а именно с менеджером пакетов yum. Для установки я вошёл на сайт http://yum.baseurl.org/ и скачал последнюю версию пакета (3.4.3) в архиве tar.gz. Дальше я распаковал архив: tar -xvf имя_архива.tar.gz. Насколько я понял, дальше стоит пользоваться утилитой make для сборки готового пакета. Но перед этим может возникнуть необходимость настроить среду с помощью конфигов (скрипт configure). Однако данного скрипта в архиве не оказалось, стало быть настраивать среду нет необходимости. Но запуск make в папке с исходниками приводит к ошибкам:
for d in rpmUtils yum etc docs po; do make PYTHON=python -C $d; [ $? = 0 ] || exit 1 ; done
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/rpmUtils»
make[1]: python: Команда не найдена
make[1]: python: Команда не найдена
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/rpmUtils»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/yum»
make[1]: python: Команда не найдена
make[1]: python: Команда не найдена
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/yum»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/etc»
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/etc»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/docs»
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/docs»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/po»
msgfmt -o bn_IN.mo bn_IN.po -c
make[1]: msgfmt: Команда не найдена
make[1]: *** [Makefile:72: bn_IN.mo] Ошибка 127
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/po»
make: *** [Makefile:22: subdirs] Ошибка 1
Очевидно, что необходимо заменить переменную PYTHON=python в файле Makefile на PYTHON=python3. Однако, это привело к новым ошибкам:
for d in rpmUtils yum etc docs po; do make PYTHON=python3 -C $d; [ $? = 0 ] || exit 1 ; done
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/rpmUtils»
File "<string>", line 1
import sys; print "%.3s" %(sys.version)
^
SyntaxError: invalid syntax
File "<string>", line 1
import sys; print sys.prefix
^
SyntaxError: invalid syntax
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/rpmUtils»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/yum»
File "<string>", line 1
import sys; print "%.3s" %(sys.version)
^
SyntaxError: invalid syntax
File "<string>", line 1
import sys; print sys.prefix
^
SyntaxError: invalid syntax
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/yum»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/etc»
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/etc»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/docs»
echo "Nothing to do"
Nothing to do
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/docs»
make[1]: вход в каталог «/home/ivan/Загрузки/yum-3.4.3/po»
msgfmt -o bn_IN.mo bn_IN.po -c
make[1]: msgfmt: Команда не найдена
make[1]: *** [Makefile:72: bn_IN.mo] Ошибка 127
make[1]: выход из каталога «/home/ivan/Загрузки/yum-3.4.3/po»
make: *** [Makefile:22: subdirs] Ошибка 1
Из чего ясно, что во вложенных Makefile'ах неверно указана часть кода на python (ощущение, будто написано на python2). И вот мы наконец подобрались к вопросу заголовка темы: Неужели всё настолько неудобно при установке пакетов на Linux, что нужно менять все файлы из-за каждой подобной ошибки? Придётся везде менять исходные коды на python и добиваться возможности запуска команд на моей версии python3? А как же тогда быть простым пользователям, которые не умеют программировать, но хотят установить пакет?
Ответы (1 шт):
Ответьте себе на главный вопрос - зачем yum в Ubuntu (Debian) и иже с ними, если он предназначен для Red Hat (Fedora) и т.п.
Пользуйтесь стандартом Вашего дистрибутива - apt
Если Вы желаете пересобрать yum для работы в Ubuntu, то я этого не стал бы делать, т.к проще пересобрать rpm-пакет для yum-менеджера