我只是尝试升级 CentOS 机器上的 Python 安装。几次失败后,我做到了yum remove python
。
然后问题开始出现。yum
在机器上发现了大约 300 个依赖项,在我确认操作后,几乎所有命令和实用程序都变得不可用,包括ls
, wget
,yum
本身......我别无选择,只能重新启动实例(我很感激它只是一台开发机器。)
我想知道删除python是否如此有害,有没有办法优雅地删除python?
Ant*_*hon 10
许多 Linux 发行版都需要 Python。发行版提供商结合的许多系统实用程序(基于 GUI 和非 GUI),都是用 Python 编程的。
系统实用程序在其中编程的 python 版本我将称为“主”python。对于 Ubuntu 12.04,例如这是 2.7.3,这是python
在新安装的系统上调用时获得的版本。
由于系统实用程序是用 python 编写的,因此在不破坏系统的情况下删除主 python 是不可能的。使用相同major.minor 系列中的更高版本更新主python甚至需要非常小心,因为您需要使用与主python 相同的配置规范来编译它。这是获取主要 python 使用的库的正确搜索路径所必需的.configure
,当您下载 python 以从源代码进行 python 编译时,这通常不是没有选项会带给您的。
安装与系统使用的major.minor 版本不同的版本(即主python)通常不是问题。即您可以编译 2.6 或 3.4 python 并安装它没有问题,因为它安装在主(2.7.X)python旁边。有时发行版会提供这些不同的major.minor 包,但它们可能不是该系列中最新的错误发布版本。
当您想使用主要 python 系列中的最新版本时,问题就开始了(例如,主要 python 版本为 2.7.3 的系统上的 2.7.8)。我建议不要尝试替换主 python,而是在单独的位置编译和安装 2.7.8(我的在 /opt/python/2.7.8 中)。这将使您遵守发行版的安全修复计划,并保证其他人测试 python 库和该版本的兼容性(由系统实用程序使用!)。
对于使用该版本 python 的任何开发,请使用virtualenv,(或virtualenvwrapper)并使用以下方法设置 2.7.8 环境:
virtualenv -p /opt/python/2.7.8/bin/python /tmp/test
source /tmp/test/bin/activate
Run Code Online (Sandbox Code Playgroud)
(第二行假设您正在使用bash
)