从源代码安装较新的 Python 和 Git 版本是否安全?

从源代码安装较新的 Python 和 Git 版本是否安全?

我想在我的系统中安装较新版本的 Python 和 Git。我最终使用下面的命令来编译和安装新版本。但是,我被告知最好使用make altinstallPython。按照我的方式安装新版本有什么问题?

从源安装 Python:

mkdir ~/getpython; cd ~/getpython
wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
tar -xvf Python-3.4.2.tgz
cd Python-3.4.2.tgz
sudo apt-get install libssl-dev openssl
./configure
make
sudo make install

从源代码安装 Git:

mkdir ~/getgit; cd ~/getgit
sudo apt-get install libcurl4-openssl-dev libexpat1-dev asciidoc xsltproc xmlto docbook2x
git clone https://github.com/git/git
make prefix=/usr all doc info   #note this takes a few minutes
sudo make prefix=/usr install install-doc install-html install-info

答案1

这里的主要问题是你用自己的文件覆盖了包管理器管理的库。其他包和系统脚本可能(在 Python 的情况下)非常) 依赖于这些软件包,可能在给定的版本/补丁中。如果您覆盖系统库,则存在破坏系统的风险。

Pythonaltinstall将通过不对默认命令进行符号链接来避免其中一些问题python,但它可能无法完全避免踩到系统。

如果要编译较新的版本,最好使用不同的前缀,例如/opt或将运行这些程序的用户的主目录。Python 包含另一种机制,以以下形式将系统库与应用程序需求分开:虚拟环境


为了安装较新的 Python 版本供个人使用(而不是设置服务器或多用户系统,我建议执行以下步骤。(前 3 个通常适用于任何软件包。):

  1. ./configure --prefix=$HOME/.local配置安装到您的主目录
  2. make -j5 && make install使用 5 个进程进行编译,根据配置前缀进行安装
  3. 添加export PATH="$HOME/.local/bin:$PATH"到 .bashrc 文件末尾,以便新安装的软件包位于您的路径中。此后启动一个新终端。 type python3将显示python3 is /home/david/.local/bin/python3
  4. pyvenv-3.4使用包提供的脚本 启动项目时创建虚拟环境$HOME/.local/bin/pyvenv-3.4 /path/to/my_new_venv
  5. 在处理项目时激活虚拟环境:source /path/to/my_venv/bin/activate。使用 pip 安装软件包:pip install flask

相关内容