从源代码构建 python 而不为二进制文件创建符号链接

Build python from source without creating symlink for binary

是否有 Python 的编译选项会阻止为新创建​​的二进制文件创建 python3 symlink?

我正在尝试在单个系统上构建和安装 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

完成上述过程后,我得到了构建的二进制文件(例如,Python-3.7.8 的 /usr/bin/python3.7)以及来自 /usr/bin/python3 到那个二进制文件。无论我最后安装哪个 python 版本,都会将 symlink 覆盖为 link 自身,而不管它之前 link 编辑的是什么:

我的问题是:是否有一个标志可以传递给 configure 脚本或使它完全禁止创建此 symlink?我可以为我想成为“默认”python3 版本的二进制文件创建 symlink 作为我自己的设置过程的一部分,因为我不想依赖安装顺序来确定我的默认设置版本。

我查看了 python 开发人员文档,但未能找到完整的构建参数列表和有关它们的功能的文档。这也不是我的专业领域,所以我无法在源代码中找到我要找的东西(但如果有人能指出我将不胜感激)。

make altinstall 正是为此而生:

make install can overwrite or masquerade the python3 binary. make altinstall is therefore recommended instead of make install since it only installs exec_prefix/bin/pythonversion.