什么是Ubuntu对“注册申请”的定义?

从源代码安装应用程序时,以及偶尔使用update-alternatives攻击时,我遇到过这种情况。 到目前为止,它只是一个小麻烦(即,不妨碍最终目标),但它现在是一个挫折,因为它指向我的知识库中的一个漏洞…所以当我得到一个消息’ foo’是“不是注册的应用程序”(或者我不能使用foo的默认图标,因为Ubuntu不知道’foo’):

  1. 什么定义了“注册申请”?

  2. 如何定义从源安装的应用程序(并且可能驻留在$ HOME / bin / app-name中),以便它包含与从.deb安装的软件包相同的function? (如果解决方案从答案1中不言自明)

例:

我将每日dev版本的sublime-text-2下载并解压缩到/home/tom/bin/sublime-text-2 。 我已经使用适当的快捷方式创建了一个* .desktop文件等。但是即使我提供了该选项的完整路径名,sublime的图标也无法在任何启动器中显示。 解决方案是从deb包安装第二个 sublime实例。

当我从.deb包安装sublime-text-2时,它安装在/usr/bin && /usr/lib ,安装的.desktop文件存放在/usr/share/applications ,相关的行显示为: icon=sublime_text

我失踪的联系在哪里? 不知怎的,Ubuntu知道如何从后者的sublime_text中确定图标,但不知道前者(再次,即使提供了完整路径)。

我认为您在安装源代码时遇到了几个问题。

update-alternatives不允许您将任何程序设置为给定名称的首选应用程序。 必须首先使用--install选项注册该程序。 例如:

 sudo update-alternatives --set editor /home/peter/bin/foo update-alternatives: error: alternative /home/peter/bin/foo for editor not registered, not setting. 

如果要查看注册的完成方式,请查看/var/lib/dpkg/info/nano.postinst

但请注意,定义指向某个用户主目录的系统范围的替代方案将是非常虚假的。 通常有环境变量或其他设置来仅为一个用户设置首选项。

桌面文件的问题可能完全独立,但您需要提供有关您使用的确切路径的更多详细信息。

通常,从源代码安装应用程序很难与系统的其余部分很好地集成,具体取决于特定的应用程序。