升级到 Ubuntu 18.04 后,如何从 deadsnakes PPA 中删除安装的 python 3.6?

Oli*_*li4 6 package-management python ppa python3 18.04

在 Ubuntu 16.04 上,我从 deadsnakes PPA 安装了 Python 3.6。现在我升级到 Ubuntu 18.04,它构建在 Python 3.6 之上,但它没有删除旧版本的 Python 3.6,而是保留了 deadsnakes PPA 中的版本,如果我想安装任何与 python 相关的东西,这会导致依赖性问题。例如,如果我运行sudo apt install python3.6-venv

The following packages have unmet dependencies:
python3.6-venv : Depends: python3.6 (= 3.6.5-3) but 3.6.6-1+xenial1 is to be installed
Run Code Online (Sandbox Code Playgroud)

有没有一种安全的方法可以在3.6.6-1+xenial1不删除依赖于它来安装默认 Python 3.6 的所有内容的情况下进行删除?否则,我将不得不从头开始重新安装 Ubuntu。

使用 apt-get 无法安装相关问题,python 丢失不幸的是,给出的唯一答案建议手动删除并重新安装 python3.6,这将导致删除大约 218 个包。这是我想规避的。sudo apt-get remove python3.6

The following packages will be REMOVED:
apparmor apport apport-gtk aptdaemon apturl apturl-common asymptote atom
cdbs command-not-found compiz compiz-gnome dh-python firefox
foomatic-db-compressed-ppds gconf2 gdm3 gedit gedit-common gir1.2-ibus-1.0
gnome-control-center gnome-menus gnome-online-accounts gnome-orca
gnome-shell gnome-software gnome-software-plugin-snap gnome-terminal
...
Run Code Online (Sandbox Code Playgroud)

Oli*_*li4 7

在阅读了问题下方的评论后,我成功地重新安装了 python3.6,并想与您分享我是如何做到的。

  1. 我备份了我所有的数据,我会推荐给每个尝试这个的人。尽管它对我有用,但由于某种原因,它可能会在您的机器上失败,并且您不想丢失数据。
  2. 我确保死蛇 PPA 已停用。
  3. 我运行以下命令删除旧版本的python3.6而不删除所有依赖项并直接安装默认版本。

    sudo dpkg --remove --force-depends python3.6 python3.6-minimal libpython3.6-minimal libpython3.6-stdlib
    sudo apt-get install python3.6 python3.6-minimal libpython3.6-minimal libpython3.6-stdlib
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我跑了sudo apt-get updatesudo apt-get upgrade然后重新启动我的机器。

也许这过于复杂,但它对我有用。非常感谢@wjandrea、@Ray、@Zanna 的评论。