【发布时间】:2010-12-10 23:20:46
【问题描述】:
/usr/share/applications中的.desktop文件,xdg-desktop-menu命令和update-desktop-database命令是什么关系?
我正在尝试制作一个为我的应用创建桌面图标的 RPM。在 RPM 中,我将 vendor-appname.desktop 文件安装到 /usr/share/applications。然后我有以下安装后脚本:
if [ -x "`which xdg-desktop-menu 2>/dev/null`" ]; then
xdg-desktop-menu install $RPM_BUILD_ROOT/usr/share/applications/vendor-myapp.desktop
fi
if [ -x "`which update-desktop-database 2>/dev/null`" ]; then
update-desktop-database &> /dev/null || :
fi
并且没有创建图标。如果我运行,则会创建图标
xdg-desktop-menu install $RPM_BUILD_ROOT/usr/share/applications/vendor-myapp.desktop
稍后以非 root 用户身份手动执行命令。如果我以 root 身份执行此操作(据推测,RPM 是如何执行此操作的),则不会创建图标。另外,我非常怀疑 if[] 位下的update-desktop-database 没有执行。它在我手动运行整个if[] 语句时执行。
带有 Gnome 的 Fedora Linux。
【问题讨论】: