向现有 Snap 添加插头或接口

向现有 Snap 添加插头或接口

我读完了,并且对于给定的 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

相关内容