向现有 Snap 添加插头或接口

top*_*217 6 snap

我通读了这个,似乎对于给定的 snap(例如 xournalpp),您可以检查它的 snap 连接、现有接口等,snap connections [snap_name]但是否无法将标准接口(例如可移动媒体)添加到已安装的 snap?(例如,xournalpp 没有列出可移动媒体接口,但列出了家庭接口。)

我看到其他人谈论不可能向已安装的快照添加自定义界面,但人们甚至不能向现有快照添加可移动媒体这样的通用界面吗?这真的需要由开发人员单独设置吗?

我还看到了一些关于控制这些接口可用性的 yaml 文件的讨论,但没有设法找到这样的文件存在的位置,或者如果这是编译/安装快照中不可用的源文件?

似乎无法通过任何快照访问可移动驱动器,除非开发人员专门将其静态写入某个地方的 yaml 文件中,这有点疯狂,但也许我在这里遗漏了什么?

编辑:我一般问的是向现有安装的快照添加接口,而不是专门关于可移动媒体,因为其他人已经找到了通过各种黑客访问可移动媒体的各种解决方法(将媒体安装在其他地方,使用 --classic 标志安装, 等等。)。第一个是hacky,第二个选项几乎消除了快照的全部目的(至少对我而言)。我正在寻找一种直接的方法来为 core snap(至少)中的任何现有接口执行此操作。

pop*_*pey 2

简而言之,是的,这取决于发布者(在某些情况下,Canonical,对于某些受限连接)而不是用户。

不过,我们还是玩吧。在我的笔记本电脑上,我开始安装零快照。

snap list
No snaps are installed yet. Try 'snap install hello-world'.

Run Code Online (Sandbox Code Playgroud)

让我们下载您指定的快照。

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
Run Code Online (Sandbox Code Playgroud)

现在我们将其解压:

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
Run Code Online (Sandbox Code Playgroud)

现在./squashfs-root/meta/snap.yaml在您最喜欢的文本编辑器中进行编辑。

在 apps -> xournalapp ->plugs 部分中,我们可以添加(例如)“ - joystick”来添加该接口,因为它尚未指定。

现在我们重新包装它:

snap pack squashfs-root
built: xournalpp_1.1.1_amd64.snap
Run Code Online (Sandbox Code Playgroud)

现在我们安装它(需要危险标志,因为我们正在安装随机(修改的)快照,而不是我们从商店获取的快照)

snap install ./xournalpp_1.1.1_amd64.snap --dangerous
xournalpp 1.1.1 installed
Run Code Online (Sandbox Code Playgroud)

让我们看看这是否有效:

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                             -
Run Code Online (Sandbox Code Playgroud)

巨大的成功。所以,是的,你可以。这意味着该应用程序是通过“侧面加载”安装的,因此它不会自动更新 - 但如果这样做,您将失去操纵杆连接。:D