背景:
有一个新的应用程序 XXX,它以 zip 文件的形式分发。我创建了一个目录~/programs/XXX
,将 zip 文件存储在其中并解压。现在我得到了一个目录~/programs/XXX/XXXv.1
,其中包含程序 xxx 和其他程序。
我让 xxx 可执行,在文件管理器中双击它。启动器中出现了一个新图标,程序 xxx 启动了。退出程序后,图标仍留在启动器中。我能够从图标重新启动程序。
几天后,应用程序 xxx 的新版本发布了,获取了 zip,解压后得到目录~/programs/XXX/XXXv.1.1
,其中包含程序 xxx 和其他程序。
我从启动器中删除了图标(用于程序 xxx v.1),~/programs/XXX/XXXv.1.1/xxx
从文件管理器启动,图标再次出现在启动器中,新版本启动。退出程序并从启动器中的图标重新启动后,我注意到新创建的图标启动旧版尽管图标是通过从新版本目录启动程序 xxx 创建的,但程序仍然会保留图标。
问题:
如何让启动器图标指向新版本目录中的程序(图标就是从那里创建的)?
进一步的调查:
在旧版本目录中重命名程序名称后,新创建的图标无法启动该程序。因此,实际上新版本程序中新创建的图标指向的是旧版本的程序。
当旧版本的图标被删除时,必须有一个隐藏的配置文件,其中包含指向旧可执行文件的指针,该文件不会被删除。
当启动新版本的程序时,会创建新版本的图标,并启动新版本的程序,但从该图标重新启动时,会启动旧版本的程序。
启动器图标的隐藏配置文件是什么以及如何更改它指向的程序文件?
答案1
首先,修复它!
~/.local/share/applications
在 中打开nautilus
。该目录~/.local
是您个人文件夹中的隐藏目录。按Ctrl+ H(在 nautilus 中)可使其可见。- 找到您的应用程序的启动器,并将其删除。
- 打开新版本您的应用程序,将其锁定到启动器。
你完成了。
解释;发生了什么事
- 你启动了应用的第一个版本,并将其锁定到启动器。这使得统一创建一个启动器
~/.local/share/applications
,或者在某些情况下应用程序第一次运行时在那里创建一个启动器。 - 你安装并运行了新版本。没有新版本但是,由于您的应用程序或 Unity 注意到启动器似乎已经存在,因此无法创建启动器。但是,这个现有的启动器指向旧版本。
因此才有这个问题。