我想我做的最后一件事是使用更新替代方案,但我对python做了很多小的更改,所以我不完全确定。然而,我当时无法及时更新我的系统。我收到了如下消息:
sh:1:/usr/lib/cnf-update-db:权限被拒绝E: 执行脚本时出现问题APT::Update::Post Invoke Success。。。。
我已经尝试了所有涉及dpkg/-configure等的在线修复程序,但它们也会由于权限故障而导致失败。
我已经了解到,如果你试图强制卸载所有与python相关的内容来解决这个问题,你很可能会把你的整个Ubuntu安装
这群人怎么说?
部分信贷:如何在不破坏apt的情况下更新Python3的替代方案?
以下是我为解决这个问题而走的路:-(
sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: auto
Best: /usr/bin/python3
Value: /usr/bin/python3
Alternative: /usr/bin/Python-3.7.0/python
Priority: 1
Alternative: /usr/bin/python3
Priority: 10
Alternative: /usr/bin/python3.8
Priority: 2
By default, the HIGHEST number (10) as the default python distro for the OS (but this can be overridden)
然后运行:
# to get rid of one than I last installed that started my problems
command: sudo update-alternatives --remove python /usr/bin/Python-3.7.0/python
reply : update-alternatives: warning: forcing reinstallation of alternative /usr/bin/python3 because link group python is broken
然后再次运行此操作,以获得更新替代中包含的内容的新视图
sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: auto
Best: /usr/bin/python3
Value: /usr/bin/python3
Alternative: /usr/bin/python3
Priority: 10
Alternative: /usr/bin/python3.8
Priority: 2
奇妙的问题蟒蛇删除。但我注意到2.7不在组合中,我认为这是我20.04 xfce发行版中的默认版本,所以运行
你必须提供一个优先级编号,所以我给了它12的新"高",这应该使操作系统的优先级
Command: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 12
Replied: update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
上面的内容似乎表明它默认了2.7。让我们看看sudo更新备选方案--查询python
的确如此!
sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: auto
Best: /usr/bin/python2.7
Value: /usr/bin/python2.7
Alternative: /usr/bin/python2.7
Priority: 12
Alternative: /usr/bin/python3
Priority: 10
Alternative: /usr/bin/python3.8
Priority: 2
Ran: python -V
Replied: Python 2.7.18
Command: sudo update-alternatives --config python
Reply:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python2.7 12 auto mode
1 /usr/bin/python2.7 12 manual mode
2 /usr/bin/python3 10 manual mode
3 /usr/bin/python3.8 2 manual mode
Press <enter> to keep the current choice[*], or type selection number:
这太棒了。允许我在它们之间切换并测试结果
在这一点上,我对Python的配置有了更好的理解,但apt-get-update仍然被使用。。。
所以更多的阅读引导我来到这里。
cd /etc/alternatives
ls -l python*
lrwxrwxrwx 1 root root 18 Jan 24 13:54 python -> /usr/bin/python2.7
lrwxrwxrwx 1 root root 18 Jan 24 13:59 python3 -> /usr/local/bin/python3.7
第二个看起来不稳定。指向/usr/local而不是/usr/bin,因此不是全局的。所以我用下面的将它链接到/usr/bin中的3.7
sudo rm /etc/alternatives/python3
sudo ln -s /usr/bin/python3.7 /etc/alternatives/python3
然后又尝试了一次
sudo apt-get update
Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
Get:2 https://pkgs.tailscale.com/stable/ubuntu focal InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://ppa.launchpad.net/ansible/ansible/ubuntu focal InRelease
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Hit:7 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease
Fetched 228 kB in 2s (112 kB/s)
Reading package lists... Done
解决!!!!!
这是一个如此关键的问题和最终的解决方案,我创建了这个帖子,这样其他人就可以在大海捞针的中找到这个针