我通过使用环境模块管理器(即左模)。因此,我有一堆来自标准树的自编译应用程序:例如,假设我在/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
ecc... 前面加上自编译应用程序的路径,当您这样做module load evince
时,$PATH
您将获得更新的版本。
我希望能够对条目执行相同的desktop
操作,以便能够为用户提供额外的(或更新的)桌面应用程序。是否有一个环境变量可以更新以使 WM 能够desktop
从其他目录获取文件?
答案1
有两种方法可以做到这一点:
第一个选项是更新$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
程序进行任何桌面相关的更新。处理它们比搞乱环境变量要容易得多。