我通过使用环境模块管理器(即Lmod)向系统用户提供一些应用程序。因此,我在标准树之外有许多自编译的应用程序:例如,假设我在中安装了软件/software
。在那些应用程序中,有一些提供.desktop
条目。作为示例,假设我重新编译了evince:的最新版本,/software/evince/2.32
分别具有/software/evince/2.32/bin
/software/evince/2.32/lib
/software/evince/2.32/share/applications/evince.desktop
。
在modulefiles
执行操作时PATH, LD_LIBRARY_PATH
,将自动添加到自编译应用程序的路径,以便执行此操作时module load evince
,$PATH
您将拥有一个更新的版本。
我希望能够对desktop
条目执行相同的操作,以便能够向用户提供其他(或更多最新的)桌面应用程序。我是否可以更新env变量,以使WM能够desktop
从其他目录中获取文件?
有两种方法可以做到这一点:
第一种选择是更新$XDG_DATA_DIRS
变量。但是,您的.desktop
文件必须在$XDG_DATA_DIRS/applications/
目录中。因此,您需要/software/applications
为.desktop
文件创建目录并追加/software
到$XDG_DATA_DIRS
。之后,运行update-desktop-database
命令以更新缓存。这是由desktop-utils
包装提供的。
另一个选项是xdg-desktop-menu install
在.desktop
文件上运行。该程序是该程序的一部分,xdg-utils
将自动处理所有非标准环境,并且普通用户也可以运行该程序。由于您可以直接运行,因此它也使卸载更加容易xdg-desktop-menu uninstall
。有关man xdg-desktop-menu
详细信息,请参见。
我个人的建议是将各种xdg-utils
程序用于任何与桌面相关的更新。与弄乱环境变量相比,它们要容易得多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句