![向现有 Snap 添加插头或接口](https://linux22.com/image/1168320/%E5%90%91%E7%8E%B0%E6%9C%89%20Snap%20%E6%B7%BB%E5%8A%A0%E6%8F%92%E5%A4%B4%E6%88%96%E6%8E%A5%E5%8F%A3.png)
我读完了这,并且对于给定的 snap(例如 xournalpp),似乎您可以检查它的 snap 连接、现有接口等,snap connections [snap_name]
但是有没有办法向已安装的 snap 添加标准接口(例如可移动媒体)?(例如,xournalpp 没有列出可移动媒体接口,但列出了主接口。)
我看到其他人说无法为已安装的 snap 添加自定义接口,但难道连可移动媒体这样的常见接口都无法为现有 snap 添加吗?这真的需要开发人员单独设置吗?
我还看到一些关于控制这些接口可用性的 yaml 文件的讨论,但是没能找到这样的文件存在的位置,或者这是否是编译/安装的快照中不可用的源文件?
似乎无法通过任何 snap 访问可移动驱动器,除非开发人员特意将其静态地写入某个 yaml 文件,这有点疯狂,但也许我在这里遗漏了什么?
编辑:我一般询问如何为现有已安装的 snap 添加接口,而不是专门询问可移动媒体,因为其他人已经找到了通过各种 hack 访问可移动媒体的各种解决方法(将媒体安装在其他地方、使用 --classic 标志安装等)。第一种是 hack,第二种选择几乎消除了 snap 的全部用途(至少对我来说)。我正在寻找一种简单的方法来为核心 snap 中的任何现有接口执行此操作(至少)。
答案1
简而言之,是的,这取决于发布者(在某些情况下,对于某些受限连接,取决于 Canonical),而不是用户。
不过,让我们开始吧。在我的笔记本电脑上,我安装的 snap 程序为零。
snap list
No snaps are installed yet. Try 'snap install hello-world'.
让我们下载您指定的快照。
snap download xournalpp
Fetching snap "xournalpp"
2022/10/29 18:25:28.566806 store_download.go:143: no host system xdelta3 available to use deltas
Fetching assertions for "xournalpp"
Install the snap with:
snap ack xournalpp_69.assert
snap install xournalpp_69.snap
现在我们来解开它:
unsquashfs xournalpp_69.snap
Parallel unsquashfs: Using 8 processors
8406 inodes (9923 blocks) to write
[==================================================================================================================================================================================================|] 9923/9923 100%
created 7946 files
created 973 directories
created 460 symlinks
created 0 devices
created 0 fifos
created 0 sockets
现在./squashfs-root/meta/snap.yaml
使用您最喜欢的文本编辑器进行编辑。
在应用程序 -> xournalapp -> 插件部分,我们可以添加(例如)“ - joystick
”来添加该接口,因为它尚未指定。
现在我们重新打包它:
snap pack squashfs-root
built: xournalpp_1.1.1_amd64.snap
现在我们安装它(需要危险标志,因为我们正在安装一个随机(修改过的)的快照,而不是从商店中获取的快照)
snap install ./xournalpp_1.1.1_amd64.snap --dangerous
xournalpp 1.1.1 installed
让我们看看这是否有效:
snap connections xournalpp
Interface Plug Slot Notes
alsa xournalpp:alsa - -
content[gnome-3-38-2004] xournalpp:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 -
content[gtk-3-themes] xournalpp:gtk-3-themes gtk-common-themes:gtk-3-themes -
content[icon-themes] xournalpp:icon-themes gtk-common-themes:icon-themes -
content[sound-themes] xournalpp:sound-themes gtk-common-themes:sound-themes -
dbus - xournalpp:dbus-xournalpp -
desktop xournalpp:desktop :desktop -
desktop-legacy xournalpp:desktop-legacy :desktop-legacy -
gsettings xournalpp:gsettings :gsettings -
home xournalpp:home :home -
joystick xournalpp:joystick - -
network xournalpp:network :network -
opengl xournalpp:opengl :opengl -
pulseaudio xournalpp:pulseaudio - -
removable-media xournalpp:removable-media - -
wayland xournalpp:wayland :wayland -
x11 xournalpp:x11 :x11 -
非常成功。所以,是的,你可以。这意味着该应用程序是通过“侧载”安装的,因此它不会获得自动更新 - 但如果获得自动更新,您将失去操纵杆连接。:D