如何优雅地 yum 删除 Python?

如何优雅地 yum 删除 Python?

我只是尝试升级我的 CentOS 机器上的 Python 安装。经过几次失败后,我做到了yum remove python

然后问题开始发生。yum在机器上发现了大约300个依赖项,在我确认操作后,几乎每个命令和实用程序都变得不可用,包括,,,ls本身......我别无选择,只能重新启动实例(我很庆幸它只是一台开发机器。)wgetyum

我想知道删除 python 是否如此有害,有什么方法可以优雅地删除 python 吗?

答案1

许多 Linux 发行版都需要 Python。发行版提供商组合的许多系统实用程序(基于 GUI 的或不基于 GUI 的)都是用 Python 编程的。

系统实用程序所使用的 Python 版本我将称为“主”Python。对于 Ubuntu 12.04,例如,这是 2.7.3,您python在新安装的系统上调用时获得的版本。

由于系统实用程序是用 python 编写的,因此不可能在不破坏系统的情况下删除主 python。甚至还需要花很多心思更新主Python与同一major.minor系列中的更高版本,因为您需要使用与主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 的任何开发,请使用虚拟环境, (或者虚拟环境包装器)并使用以下命令设置 2.7.8 环境:

virtualenv -p /opt/python/2.7.8/bin/python /tmp/test
source /tmp/test/bin/activate

(第二行假设您正在使用bash

相关内容