安装为snap包的应用程序无法识别打印机。

最近我安装了最新的Inkscape版本作为snap软件包,一切都很顺利,直到我尝试打印东西时出现问题。 只有“打印到文件”选项可用。 请问有什么建议可以让它识别我的打印机吗?

没有安装inkscape snap或者打印机,所以无法回答。可以尝试移除snap,使用如下命令: sudo snap remove inkscape,然后使用以下选项重新安装:sudo snap install --classic inkscape - doug
@doug 运作得非常好。请将此作为答案写下来,以便我可以标记为已回答。 - metalinspired
3个回答

这不是一个错误。Snaps在容器中运行,具有独立的环境,防止应用程序访问系统的所有部分(与经典应用程序不同),以确保安全性。默认情况下,打印机是不可访问的,但可以通过以下方式启用:
sudo snap connect inkscape:cups-control :cups-control

这将允许打印机在Inkscape中显示。如有需要,请将inskcape更改为应用程序的名称(例如,gimp)。 我在WPS Office上遇到过这个问题:这是我的问题

您需要重新启动应用程序以生效。

就我个人而言,如果在安装过程中可以指定此类权限,或者应用程序可以决定需要哪些权限并让用户了解它们(就像Android应用程序那样),那将很好。


然而,当cups-control甚至不显示为可用连接时,这是一个错误。https://bugs.launchpad.net/snapd/+bug/1840926 - ppetraki

默认情况下,Snaps被限制在用户的$HOME目录下,这可能会导致一些访问问题。在这种情况下,似乎更像是inkscape snap的一个错误或当前的限制,它无法访问打印机。
因此,可以使用--classic选项来禁用 confinement 安装 snap。
如果已经安装了 snap,则先移除: sudo snap remove inkscape 然后使用以下选项进行安装: sudo snap install --classic inkscape 这个选项对其他的 Snaps 尤其是媒体播放器非常有用。

我运行了 snap install --classic vlc,但是VLC 3.0作为一个snap无法读取来自不同分区的文件。如果没有办法禁用约束,对于一些应用程序(如VLC)中的媒体可以存在于应用程序分区之外的情况,这将成为一个阻碍。虽然有办法通过绑定挂载来解决,但肯定不够用户友好。 - Hans Deragon
1@ Hans Deragon在16.04和18.04版本中,不再需要使用--classic参数,VLC可以浏览外部存储设备。我认为无论是否使用--classic参数,对VLC来说都没有任何影响。 - doug
Doug,我的分区不是外部卷。它是我主硬盘的第二个分区。截至2018年3月25日,Snap不允许访问它们。请参阅错误报告:Bug #1620771 - Hans Deragon
没关系,正如我所说的,VLC在16.04和18.04版本中可以与所有已挂载的卷一起使用,如果你使用其他版本,请提及一下。 - doug
Doug,我不明白你的评论。我给你提供了一个明确说明VLC无法读取我硬盘上第二个分区文件的错误报告。我确认这个错误存在;在我的16.04系统上,安装了snap版本的VLC后,我无法从硬盘的第二个分区中读取文件。这不是一个观点问题,而是事实。 - Hans Deragon
我在同一硬盘上有多个分区和Ubuntu的安装,16.04和18.04的安装中都有一个Snap VLC可以浏览到任何其他已挂载的卷,并播放媒体。那个错误报告已经很旧了,在这种情况下不相关。我建议你提出一个新问题,并提供更详细的安装信息、snapd版本等。在我这里它正常工作。 - doug

虽然这可能不是一个错误。但真正的错误在于,直到你连接上它,cups-control才会显示为一个连接。
ppetraki@vanguard:~/Sandbox/graphics$ snap connections | grep cups
ppetraki@vanguard:~/Sandbox/graphics$ sudo snap connect brave:cups-control  :cups-control
[sudo] password for ppetraki: 
ppetraki@vanguard:~/Sandbox/graphics$ snap connections | grep cups
cups-control              brave:cups-control                         :cups-control                    manual

所以在你知道解决方案的样子之前,你无法解决这个问题。我在可用连接列表中寻找类似于“lpr”或“打印机”的内容,但没有找到。这是在18.04版本上发生的。