我安装了一个自定义的 .deb 文件,该文件提供了一个名为“python”的包,但现在需要删除它

我安装了一个自定义的 .deb 文件,该文件提供了一个名为“python”的包,但现在需要删除它

我觉得我的系统可能被搞坏了。我最近在电脑上安装了 Ubuntu 14.04。

我做的第一件事是从源代码安装 Python 3.3(使用make altinstall);但后来我意识到 Python 3.4 已经是 Ubuntu 14.04 的原生版本,因此决定删除 Python 3.3 安装。为此,我按照这个帖子

不幸的是,我意识到这会导致创建一个包含名为“python”的软件包的 .deb 文件,随后安装了该软件包,但为时已晚。这彻底破坏了我的软件包系统。任何使用 apt-get 的尝试都会产生许多依赖性错误,如下所示:

mercurial : Depends: python (>= 2.7) but it is not going to be installed
            Depends: python (< 2.8) but it is not going to be installed

我尝试通过运行来删除自定义包dpkg -r python_3.3.5-1_amd64.deb,但它说我需要通过包的名称来删除,而不是文件的名称。并且运行dpkg -r python也失败了:

dpkg: dependency problems prevent removal of python:
 python-ubuntu-sso-client depends on python (>= 2.7).
 python-ubuntu-sso-client depends on python (<< 2.8).
 ...

我想到第一个解决方案是完全重新安装 Ubuntu,但在我采取这个激烈的解决方案之前,有什么方法可以撤消安装这个自定义“python”包的影响?

我能否以某种方式使用 .deb 文件从系统中删除软件包(例如,删除 sit 提供的文件,然后手动解决依赖关系)?或者这个以“python”命名的软件包是否把软件包弄乱了,无法恢复?

答案1

我想我找到答案了。我从Ubuntu 软件包并安装它:

cd /tmp
wget http://nl.archive.ubuntu.com/ubuntu/pool/main/p/python-defaults/python_2.7.5-5ubuntu3_amd64.deb
sudo dpkg -i python_2.7.5-5ubuntu3_amd64.deb

为了完成整个过程,我最终用一个新的不冲突的名称(“python-to-remove”)重新创建了我的自定义.deb 文件(使用 python3.3),然后安装和卸载它:

sudo dpkg -i python-to-remove_3.3.5-1_amd64.deb
sudo dpkg -r python-to-remove

这会删除此软件包中的所有文件,而其他软件包中的文件似乎未受影响。我最终还删除了一堆文档文件,但我之前从未使用过它们,所以我认为我对此没意见。

答案2

尝试按照 dpkg 的要求去做,我的意思是:

dpkg -r python_3.3.5-1

使用包名称,而不是文件名称。

这是一个相当疯狂的镜头,所以如果它不起作用,请随意投反对票。

答案3

python 是 Ubuntu 迄今为止最重要的软件包之一。不要尝试删除它!您的计算机将无法正常运行!您必须重新安装 ubuntu。此外,您不需要删除 python 软件包,为什么要这样做?无论如何,这是不可能的。

相关内容