我正在尝试将一个应用程序打包到 snap 中,该应用程序可以使用 libusb (usb-serial) 以非 root 用户身份访问 USB 设备。由于没有任何特定于 usb 的选项,我不得不 chown 设备才能使用它。我认为相应的 udev 规则(为设备添加一个组,比如说“plugdev”)会产生类似的效果。
现在,为了继续构建一个不需要这些技巧的正确快照,我阅读了https://kyrofa.com/posts/ros-production-obtaining-confined-access-to-the-turtlebot-4-5,但这篇文章相当令人困惑。显然,我必须使用snapcraft push
尚未准备好的包来测试它是否有效?文档中讨论了plugs
带有 的部分interface: serial-port
,但也讨论了slots
。但是在定义两者时,我收到来自 snapcraft 的错误,提示这种组合是不允许的。此外,最终snapcraft.yaml
列表不包含slots
前面提到的指令。然后,不同值之间似乎存在重要差异confinement
。
有没有比上述链接更“官方”的关于使用 USB 设备的文档?或者有一个很好的例子可以复制?
答案1
查看Snapcraft.iodocs,它是上游项目。但是,Snap 仍在不断发展,因此文档落后于当前代码版本。
因此直接阅读来自https://github.com/snapcore/snapd了解未记录的功能。
snapcraft.yaml
如何使用,在开源代码存储库中搜索最新信息。