#python #build #compilation
#python #сборка #Сборник
Вопрос:
Существует ли опция компиляции для Python, которая предотвратит создание python3
символической ссылки на вновь созданный двоичный файл?
Я пытаюсь собрать и установить несколько версий python в одной системе для использования с системой CI для запуска тестов с использованием нескольких версий python. В частности, Python-3.6.6, Python-3.7.4 и Python-3.8.0.
Процесс сборки и установки приведен ниже (при условии, что исходный код уже загружен и распакован в /usr/src/python
):
cd /usr/src/python
./configure
--prefix=/usr/
--build=x86_64-linux-gnu
--enable-loadable-sqlite-extensions
--enable-shared
--with-system-expat
--with-system-ffi
--without-ensurepip
make -j "$(nproc)"
make install
Когда вышеупомянутый процесс завершен, я получаю встроенный двоичный файл (например, /usr/bin/python3.7
для Python-3.7.8), а также символическую ссылку из /usr/bin/python3
на этот двоичный файл. Какая бы версия python, которую я устанавливаю последней, перезаписывает символическую ссылку для ссылки на себя, независимо от того, с чем она была связана раньше:
Мой вопрос: есть ли флаг, который я могу передать configure
скрипту или make, который полностью отключит создание этой символической ссылки? Я могу создать символическую ссылку на двоичный файл, который я хочу использовать как версию python3 по умолчанию, как часть моего собственного процесса установки, поскольку я бы предпочел не полагаться на порядок установки для определения моей версии по умолчанию.
Я просмотрел документацию разработчика python, но не смог найти исчерпывающий список аргументов сборки и документацию о том, что они делают. Это также не моя область знаний, поэтому я не смог найти то, что искал в исходном коде (но если бы кто-нибудь мог указать мне на это, это было бы очень ценно).
Комментарии:
1. Вы ищете
make altinstall
?2. Да, это именно то, что я ищу @DeepSpace. Если вы оставите ответ с этим, я его проверю. Большое вам спасибо!
Ответ №1:
make altinstall
сделано именно для этого:
make install
может перезаписывать или маскировать двоичный файл python3.make altinstall
поэтому рекомендуется вместоmake install
, поскольку он только устанавливаетсяexec_prefix/bin/pythonversion
.