终端和其他应用突然无法打开

终端和其他应用突然无法打开

Ubuntu 22.04.01 LTS Gnome 版本 42.5


终端无法通过 GUI 或键盘快捷键打开。当我单击 GUI 图标时,圆圈只会旋转。

尝试过的键盘快捷键:

  • Ctrl + Alt + 删除
  • Ctrl + Alt + F7
  • Ctrl + Alt + F1

自动更新通知我检查更新时出现错误。25% 固定在 Dock 上的应用程序在单击时无法打开。除此之外一切似乎都很正常。我可以连接到互联网并使用 Firefox。

我今天唯一做的改变就是升级到 python 3.11。这些问题发生在进行这些更改后大约 4 小时。

为此,我做了以下事情:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.11
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
sudo update-alternatives --config python3

当我重新启动系统时,有一个固件更新,但这些问题在更新之前就出现了。

这个类似的问题并没有解决任何问题:“检查更新时出现问题”,现在我无法使用终端

答案1

问题

您更改了系统范围的默认 python3 版本...

每个 Ubuntu 版本都有一个默认版本python3供全系统使用...用户不得更改此默认版本,因为Ubuntu 严重依赖 Python大多数应用程序都是使用默认的 Python 版本编写和维护的……例如gnome 终端 (3.44.0-1ubuntu1)在 Ubuntu 22.04 中(杰米) 依赖于取决于python3(3.10.4-0ubuntu2)这可能会在发布期间从官方特定于发布的存储库获取次要版本的自动更新但不应由用户手动更改

解决方案

撤消您已完成的操作...

启动到实时 USB(就像你安装 Ubuntu 时使用的那个)Ubuntu系统并选择尝试 Ubuntu然后连接到互联网(如果安装或升级软件包,可能需要)从实时系统并打开终端,然后按照以下步骤操作:

  • 跑步:

    sudo fdisk -l
    

    /并在硬盘上识别原始系统的根分区。 它可能类似于/dev/sda1然后将其挂载到/mnt如下位置:

    sudo mount /dev/sda1 /mnt/
    
  • 然后运行:

    sudo mount --bind /proc/ /mnt/proc/
    
  • 然后运行:

    sudo mount --bind /sys/ /mnt/sys/
    
  • 然后运行:

    sudo mount --bind /dev/ /mnt/dev/
    
  • 然后运行:

    sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
    
  • 然后运行:

    sudo chroot /mnt/
    

现在,您在硬盘上的原始系统中,具有可用的终端和互联网连接...运行您需要的任何命令来修复系统范围的python3并将其更改回原始发布的默认版本...您惯于需要使用sudo您在此处运行的命令将以用户身份运行root...但要小心。

等结束了,

  • 跑步:

    exit
    
  • 然后运行:

    sudo umount /mnt/dev/
    
  • 然后运行:

    sudo umount /mnt/sys/
    
  • 然后运行:

    sudo umount /mnt/proc/
    
  • 然后运行:

    sudo umount /mnt/
    
  • 然后重新启动到原始系统,看看是否已修复。

如果这不起作用,您可能需要重新安装 Ubuntu。

重要的:

如果您发现没有任何效果并且决定重新安装 Ubuntu,请确保先将所有重要数据备份到外部磁盘。

另外,为了尽量减少丢失设置,请复制您的主目录(IE/home/username/以及所有隐藏的目录和文件到外部磁盘,然后在新安装后将其复制回来。这将保留您的大部分应用程序设置,例如 Firefox、Thunderbird 等,但您需要重新安装您手动安装的应用程序和软件包才能使其正常工作。

建议

永远不要再更改默认的系统范围的 python3 版本...但是,您可以在系统上使用其他 python 版本来运行您自己的项目/代码,方法是直接使用可执行 python 二进制文件或在虚拟环境中运行...请参阅:

答案2

你强制 Linux 使用 Python 3.11

我不是 Linux 专家。只要改回来就可以正常工作了。

sudo update-alternatives --config python3

并选择 1

我有一个需要 3.11 才能运行的脚本,因此每次需要该脚本时我都会更改该配置,完成后再将其改回 3.10。如果有人知道如何强制某些应用程序使用 python 3.11,而无需将整个 Linux 更改为 3.11,那就太好了。

python3 --version

通过这一行可以看到哪些 Python 处于活动状态。

sudo update-alternatives --config python3

通过这个,你可以改变活动的内容。

这就是我对这个问题所知道的全部内容。

相关内容