在将应用程序克隆到具有相同硬件的机器后,Gnome面板上的应用程序会消失。

我按照this guide的指导将Ubuntu安装克隆到了多台机器上,克隆过程很顺利。但是如果原始安装的机器中有一些自定义安装的应用程序,在克隆后克隆机上的gnome面板中就不会显示出这些自定义应用程序。我通过进入恢复模式并选择“修复损坏的软件包”部分解决了这个问题。然而,我的网络连接速度很慢,每台机器上都需要花费很长时间。另一种解决方法是在原始机器上为这些应用程序创建桌面快捷方式,这些快捷方式也会出现在克隆机器上。是否有办法让克隆机器在gnome面板中显示所有的应用程序?
1个回答

有可能文件夹 /usr/share/applications 和 $HOME/.local/share/applications 不同步。这两个文件夹用于存放您安装的所有应用程序的 'launcher.desktop'。

首先尝试比较这两个文件夹:

1. 获取本地 dir1 的 md5sum

cd /usr/share/applications find . -type f -exec md5sum {} ; |sort -k2 > dir1_md5

示例输出:

c6d19fc12bbba3ba5844e9d228c10daa *./INPUT_FILE.txt

2. 获取远程服务器的 dir2 的 md5sum

ssh username@servername "cd /usr/share/applications; find . -type f -exec md5sum {} " ; |sort -k2 > dir2_md5

3. 比较:

diff dir1_md5 dir2_md5

别忘了对于 $HOME/.local/share/applications,只需将命令中的 /usr/share/applications 更改为 $HOME/.local/share/applications。

如果有不同之处,而且您不想麻烦地处理这些差异,只需将文件夹/usr/share/applications和$HOME/.local/applications的所有内容复制并粘贴到目标机器上。
另一个用于比较的命令是: ls -a /usr/share/applications > dir1_md5 ssh username@servername "ls -a /usr/share/applications" > dir2_md5 diff dir1_md5 dir2_md5
但是,请注意,此命令仅比较文件夹列表,而不会区分启动器的内容。

提醒一下,请不要在代码中使用引号。相反,将代码单独放在一行上,并在代码之前插入4个空格。 - nanofarad