快照安装程序不在启动器中

刚刚更新到16.04并首次尝试快照包。

所以我需要使用meshlab来查看一些stl文件。 进入pitn登录问题。发现snap包的命令行安装不需要登录。

sudo snap install meshlab 

并且安装了presto meshlap,没有pitn登录。从命令行工作正常。 但是程序没有出现在启动器中。 为什么是这样? 快照包没有出现在启动器中吗? 我怎样才能解决这个问题?

如果您使用的是zsh,则快照二进制和桌面目录不会自动添加到您的环境变量中。 为了解决这个问题,我将以下行添加到/ etc / zsh / zprofile(取自Arch):

 emulate sh -c 'source /etc/profile' 

这将使用bash仿真处理你的/ etc / profile文件,bash仿真反过来源/etc/profile.d/*并设置正确的PATH等。

要仅将快照目录添加到路径中,而不包括所有其余的默认bash配置文件:

 emulate sh -c 'source /etc/profile.d/apps-bin-path.sh' 

它内置于快照系统中,但您必须将链接添加到破折号。 要启动程序类型

 snap run meshlab 

一旦启动并运行,右键单击图标并单击“添加到破折号”。

快照包没有出现在启动器中吗?

只要快照发送正确的.desktop文件,它们就会这样做。 只有Meshlab的meshlabserver有一个合适的桌面文件(事实上,它显示在我的启动器中)。 然而,当它应该只使用meshlab时, meshlab .desktop文件试图执行meshlab 。 结果,它没有显示出来。

我怎样才能解决这个问题?

如果您运行snap info meshlab您将看到发布者的联系信息。 我建议你向他们报告一个错误。 在此之前,您始终可以从CLI运行meshlab ,或者为它创建自己的.desktop文件。

您必须从终端运行snap run meshlab并将其停止,然后您将在应用程序列表中看到Meshlab

搅拌机也是如此。

 snap run blender 

确实有效,但没有解决问题。

我不得不将/snap/blender/current/blender.desktop复制到/usr/share/applications (使用sudo )然后全部修复:blender在gnome菜单中显示,nautilus将它与.blend文件关联。

对我来说,看起来像快照和侏儒之间的某种裂缝。 也许我们需要的是一个活泼的侏儒(或者它是一个gnomey snap; ^)。

我在Ubuntu 18.04上遇到了同样的问题。 这似乎是Wayland的一个问题。 我的解决方案是从Wayland切换回Xorg。

对我来说,它似乎也与Ubuntu 18.04下Wayland / ZSH的组合有关 – 即使/var/lib/snapd/desktopXDG_DATA_DIRS变量中列出(这是由/etc/profile.d/apps-bin-path.sh完成的) /etc/profile.d/apps-bin-path.sh ),启动程序无法识别该文件夹中的应用程序。

一个快速的解决方法是sym-link所需的桌面文件,例如:

 ln -s /var/lib/snapd/desktop/applications/rubymine_rubymine.desktop .local/share/applications 

我不能评论别人的post。 然而,这是为了增加dsager的答案,这对我帮助Fedora 28(据我所知,使用Wayland)

我在〜/ .bash_profile中添加了以下剪辑,以便在登录/ var / lib / snapd / desktop / applications中的每个文件时进行链接。 类似地,可以通过切换for行中的路径和if行然后用rm替换ln来修改以删除不再存在的应用的链接。

 for i in /var/lib/snapd/desktop/applications/*.desktop; do if [ ! -f ~/.local/share/applications/${i##*/} ];then ln -s /var/lib/snapd/desktop/applications/${i##*/} ~/.local/share/applications/${i##*/}; fi; done 

可能有一些不同的方法来实现这一点,但它的工作原理。