Ubuntu对“注册应用程序”的定义是什么?


11

从源代码安装应用程序时,以及偶尔使用hack时,我都遇到过几次update-alternatives。到目前为止,这只是一个小小的烦恼(即,没有阻碍最终目标的实现),但是现在它很沮丧,因为它指向我的知识库中的一个漏洞……所以当我收到一条消息时,“ foo'是“不是注册的应用程序”(或者我不能使用foo的默认图标cuz Ubuntu不了解'foo'):

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

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

例:

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

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

我在哪里缺少联系?Ubuntu不知何故知道如何从sublime_text后者而不是在后者中精确定位(再次,即使提供了完整路径)。


您要将这个启动器放在主文件夹中的什么位置?
以赛亚书

另外,何时收到消息:“ foo不是注册的应用程序”?
以赛亚书

@DoR:我的崇高* .desktop在之下/.local/share/applications。我最记得的地方是“已注册的应用程序”消息,是当您尝试将vim的源代码编译版本插入update-alternatives列表时,它会出现,而不是“默认”安装。有帮助吗?猜猜我正在寻找的机制是向Ubuntu提供有关在何处找到(例如)应用A正确图标的知识的机制,就像它对* .desktop文件所做的一样/usr/share/applications/
汤姆(Tom)

如果您在~/.local/share/applications启动器中将“ icon”的值设置为公正sublime_text不是完整路径,这行得通吗?
Isaiah

Answers:


3

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

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

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

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

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


彼得:是的,我认为您很满意……而反思,纠正我的想法便是答案。我正在笔记本电脑上使用该系统-只能使用笔记本电脑,登录等。当然,UNIX是多用户操作系统,并定义了程序安装。标志性的东西是微不足道的,我相信这是一个怪癖。我sublime-text postinst按照您的建议在检查中找到了一个单独的图标文件,因此现在可以将备用安装(在我的$ HOME中)指向一个特定文件,而不是让它“自动”从可执行文件中查找。我将其标记为已关闭/已解决,因为我相信自己现在有需要。
汤姆(Tom)

我们如何向其注册--install
fiatjaf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.