首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装自编Python3.7.0作为" Python ",如何删除它?

安装自编Python3.7.0作为" Python ",如何删除它?
EN

Server Fault用户
提问于 2019-04-01 04:22:30
回答 1查看 675关注 0票数 0

我在我的Ubuntu16.04服务器上犯了一个巨大的错误。

我使用make altinstall从源代码编译和安装Python3.7.0,但是我没有包含所需的所有核心依赖项,所以我打算删除它并安装一个预打包的deb。

但是,为了删除它,我使用了这种方法与校验。我生成了一个deb,这样我就可以删除由原始安装创建的所有文件,但是对于deb的包名,我只留下了默认的python

现在,我安装了以下软件包:

代码语言:javascript
复制
$ sudo dpkg -l python
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                  Version                         Architecture                    Description
+++-=====================================================-===============================-===============================-===============================================================================================================
ri  python                                                3.7.0-1                         amd64                           Package created with checkinstall 1.6.2

这意味着我不能运行dpkg -r python,因为系统包依赖于一个名为python的元打包:

代码语言:javascript
复制
$ sudo dpkg -r python
dpkg: dependency problems prevent removal of python:
 python-ldb depends on python (<< 2.8).
 python-ldb depends on python (>= 2.7~).
 python-ldb depends on python (<< 2.8).
 python-ldb depends on python (>= 2.7~).
 python-ldb depends on python (<< 2.8).
 python-ldb depends on python (>= 2.7~).
 python-talloc depends on python (<< 2.8).
 python-talloc depends on python (>= 2.7~).
 python-talloc depends on python (<< 2.8).
 python-talloc depends on python (>= 2.7~).
 python-pyicu depends on python (>= 2.7).
 python-pyicu depends on python (<< 2.8).
 python-pyicu depends on python (>= 2.7).
 python-pyicu depends on python (<< 2.8).
 samba-common-bin depends on python.
 samba depends on python (>= 2.7).
 samba depends on python (<< 2.8).
 samba depends on python (>= 2.7).
 samba depends on python (<< 2.8).
 iotop depends on python (>= 2.7.1-0ubuntu2).
 iotop depends on python (<< 2.8).
 iotop depends on python (>= 2.7.1-0ubuntu2).
 iotop depends on python (<< 2.8).
 python-cryptography depends on python (<< 2.8).
 py
dpkg: error processing package python (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 python

而且我无法再次安装默认版本的python,因为python安装了错误的版本:

代码语言:javascript
复制
$ sudo apt install python
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python is already the newest version (3.7.0-1).
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 iotop : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-acme : Depends: python:any (< 2.8)
               Depends: python:any (>= 2.7.5-5~)
 python-asn1crypto : Depends: python:any (< 2.8)
                     Depends: python:any (>= 2.7.5-5~)
 python-certifi : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-cffi-backend : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-chardet : Depends: python:any (< 2.8)
                  Depends: python:any (>= 2.7.5-5~)
 python-configparser : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-crypto : Depends: python (< 2.8) but 3.7.0-1 is to be installed
                 Depends: python:any (>= 2.7.5-5~)
 python-cryptography : Depends: python (< 2.8) but 3.7.0-1 is to be installed
                       Depends: python:any (>= 2.7.5-5~)
 python-dnspython : Depends: python:any (< 2.8)
                    Depends: python:any (>= 2.7.5-5~)
 python-enum34 : Depends: python:any (< 2.8)
                 Depends: python:any (>= 2.7.5-5~)
 python-funcsigs : Depends: python:any (< 2.8)
                   Depends: python:any (>= 2.7.5-5~)
 python-future : Depends: python:any (< 2.8)
                 Depends: python:any (>= 2.7.5-5~)
 python-idna : Depends: python:any (< 2.8)
               Depends: python:any (>= 2.7.5-5~)
 python-ipaddress : Depends: python:any (< 2.8)
                    Depends: python:any (>= 2.7.5-5~)
 python-josepy : Depends: python:any (< 2.8)
                 Depends: python:any (>= 2.7.5-5~)
 python-ldb : Depends: python (< 2.8) but 3.7.0-1 is to be installed
              Depends: python:any (>= 2.7.5-5~)
 python-mock : Depends: python:any (< 2.8)
               Depends: python:any (>= 2.7.5-5~)
 python-openssl : Depends: python:any (< 2.8)
                  Depends: python:any (>= 2.7.5-5~)
 python-parsedatetime : Depends: python:any (< 2.8)
                        Depends: python:any (>= 2.7.5-5~)
 python-pbr : Depends: python:any (< 2.8)
              Depends: python:any (>= 2.7.5-5~)
 python-pkg-resources : Depends: python:any (< 2.8)
                        Depends: python:any (>= 2.7.5-5~)
 python-pyicu : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-requests : Depends: python:any (< 2.8)
                   Depends: python:any (>= 2.7.5-5~)
 python-requests-toolbelt : Depends: python:any (< 2.8)
                            Depends: python:any (>= 2.7.5-5~)
 python-rfc3339 : Depends: python:any (< 2.8)
                  Depends: python:any (>= 2.7.5-5~)
 python-samba : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-setuptools : Depends: python:any (< 2.8)
                     Depends: python:any (>= 2.7.5-5~)
 python-six : Depends: python:any (< 2.8)
              Depends: python:any (>= 2.7.5-5~)
 python-talloc : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-tdb : Depends: python (< 2.8) but 3.7.0-1 is to be installed
              Depends: python:any (>= 2.7.5-5~)
 python-tz : Depends: python (< 2.8) but 3.7.0-1 is to be installed
 python-urllib3 : Depends: python:any (< 2.8)
                  Depends: python:any (>= 2.7.5-5~)
 samba : Depends: python (< 2.8) but 3.7.0-1 is to be installed
         Recommends: attr but it is not going to be installed
         Recommends: samba-dsdb-modules but it is not going to be installed
         Recommends: samba-vfs-modules but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

跑步让我害怕,所以我选择了不:

代码语言:javascript
复制
$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  iotop python-acme python-asn1crypto python-certifi python-cffi-backend python-chardet python-configparser python-crypto python-cryptography python-dnspython python-enum34 python-funcsigs python-future python-idna python-ipaddress
  python-josepy python-ldb python-mock python-openssl python-parsedatetime python-pbr python-pkg-resources python-pyicu python-requests python-requests-toolbelt python-rfc3339 python-samba python-setuptools python-six python-talloc
  python-tdb python-tz python-urllib3 samba samba-common-bin samba-libs
0 upgraded, 0 newly installed, 36 to remove and 0 not upgraded.
After this operation, 56.7 MB disk space will be freed.
Do you want to continue? [Y/n]

有什么办法从这件事中恢复过来吗?提前感谢!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-04-01 15:42:53

通常情况下,apt-get dist-upgrade会将这些包替换为您已经启用的实际apt源中的包,但在您的系统上似乎没有这样做。

看起来您将找到一种需要重新安装原始Python包的方法。

幸运的是,您可以通过指定所需的包版本来做到这一点。

但首先你得弄清楚那个版本是什么。为此,请使用apt policy。您应该看到类似于此的内容:

代码语言:javascript
复制
error@vmtest-ubuntu1604:~$ sudo apt policy python
python:
  Installed: 3.7.0-1
  Candidate: 2.7.12-1~16.04
  Version table:
 *** 2.7.12-1~16.04 500
        500 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     2.7.11-1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

既然您有了它的版本号,就可以专门安装它了:

代码语言:javascript
复制
error@vmtest-ubuntu1604:~$ sudo apt install python=2.7.12-1~16.04 

(即使出现提示,也不要在这里使用-f。)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/960880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档