我想在我的系统中安装较新版本的 Python 和 Git。我最终使用下面的命令来编译和安装新版本。但是,我被告知最好使用make altinstall
Python。按照我的方式安装新版本有什么问题?
从源安装 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 个通常适用于任何软件包。):
./configure --prefix=$HOME/.local
配置安装到您的主目录make -j5 && make install
使用 5 个进程进行编译,根据配置前缀进行安装- 添加
export PATH="$HOME/.local/bin:$PATH"
到 .bashrc 文件末尾,以便新安装的软件包位于您的路径中。此后启动一个新终端。type python3
将显示python3 is /home/david/.local/bin/python3
。 pyvenv-3.4
使用包提供的脚本 启动项目时创建虚拟环境$HOME/.local/bin/pyvenv-3.4 /path/to/my_new_venv
。- 在处理项目时激活虚拟环境:
source /path/to/my_venv/bin/activate
。使用 pip 安装软件包:pip install flask