【问题标题】:Build python from source without creating symlink for binary从源代码构建python而不为二进制创建符号链接
【发布时间】:2021-01-01 09:04:06
【问题描述】:

是否有 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 脚​​本或使该标志完全禁用创建此符号链接?作为我自己的设置过程的一部分,我可以创建指向我想成为“默认”python3 版本的二进制文件的符号链接,因为我不想依赖安装顺序来确定我的默认版本。

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

【问题讨论】:

  • 您在寻找make altinstall吗?
  • 是的,这正是我正在寻找的@DeepSpace。如果您留下答案,我将对其进行验证。非常感谢!

标签: python build compilation


【解决方案1】:

make altinstall 正是为此而生的:

make install 可以覆盖或伪装 python3 二进制文件。因此建议使用make altinstall 而不是make install,因为它 只安装exec_prefix/bin/pythonversion

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多