[Solved] 不小心删除了 /usr/share/applications 目录 Fedora.

我今天早些时候删除了一个应用程序的桌面条目,然后我错误地完全删除了 /usr/share/applications 文件夹而不是桌面条目。 从终端启动时应用程序仍然有效,但是当我下次打开我的 Fedora 机器,我什至无法访问 GDM 登录屏幕。 现在,你如何解决这个问题?

您可以执行以下操作之一:

  1. 从他们的官方网站下载您的操作系统的完整 ISO 并使用 Ventoy 将其加载到拇指驱动器中,然后将 /usr/share/applications 从 ISO 复制到您的系统。
  2. 您也可以只重新安装所有应用程序,与第一种方法相比,这相对容易。

现在,第一种方法很简单,所以我将在本教程中讨论第二种方法。

打开 TTY

如果您已经在登录系统中,那么您可以直接进行本教程的安装步骤。 如果没有,那么在登录时,您必须通过按打开一个 TTY(TeleTYpewriter 的缩写) Ctrl + Alt + F2 一个接一个的键。

登录并写一个 bash 脚本

现在,在终端中输入您的用户名,然后输入您的密码并登录。为了简化安装过程,我们将创建一个 bash 脚本将包含所有信息,其中包含我们已经安装在您的发行版上的所有软件包的名称。 创建一个 bash 使用您喜欢的文本编辑器(例如 vim 或 nano)创建文件。

vim fedora.sh # or for the nano editor users : nano fedora.sh 

现在,如果您使用 vim 编辑器,请按“I”键进入插入模式,如果您使用 nano,则直接开始编写以下脚本:

#!/bin/bash  pkgs=" 

现在通过按转义键保存文件,然后键入 :wq 如果您使用 vim 并且使用 nano,请按 Ctrl + O 和 Ctrl + X 保存并退出。 现在,我们必须创建另一个包含所有包名称的文本文件,然后将其附加到第一个脚本的末尾。 再次键入以下内容以创建该文本文件:

rpm -qa | sort > ~/pkgs.txt 

您可以打开文本文件并确认这些是您不想安装的文件,但除非您知道自己在做什么,否则我不会推荐这样做。 现在是时候将包名附加到我们的脚本中了,输入:

cat pkgs.txt >> fedora.sh 

现在,再次使用您喜欢的编辑器打开脚本,并在脚本末尾添加以下行(如果您使用的是 vim,请按 Shift + g 到文件底部)。 请注意,有一个双引号 close 名单:

" sudo dnf reinstall $pkgs 
将包列表添加到您的脚本

现在,再次保存并退出,然后通过键入以下命令使脚本可执行:

sudo chmod +x fedora.sh 

创建 /usr/share/applications 目录

在我们执行脚本之前,让我们手动创建这个目录,这样我们就不会遇到任何错误。 键入以下内容:

sudo mkdir /usr/share/applications 

确保您已连接到 Internet

现在,请确保您已通过以太网端口或 Wi-Fi 连接到互联网。 如果您不确定是否要使用 Wi-Fi 连接到互联网,请键入以下命令:

# To check the connection status nmcli dev status # To scan all the available devices nmcli dev wifi list # To connect to a device, type : nmcli --ask dev wifi connect SSID 
从终端连接到 Internet

执行脚本

脚本执行非常简单,只需在终端中输入以下内容:

./fedora.sh 
脚本执行将恢复您的用户共享应用程序目录脚本执行将恢复您的 /usr/share/applications 目录

现在坐下来放松一下,下载和安装过程将需要一些时间,具体取决于您的 Internet 速度、安装的软件包数量和硬件速度。 完成所有这些过程后重新启动系统,GDM 登录管理器将迎接您。

概括

此方法并不完美,因此如果您仍然无法访问某些应用程序,则可以使用以下命令手动重新安装它们:

sudo dnf reinstall <package name> 

参考

桌面条目 – ArchWiki