活泼的文件系统布局?

活泼的文件系统布局?

ubuntu snap 是否有办法提供 FHS 文件系统层次结构中的文件,例如 /usr/bin 中的二进制文件、/usr/share/ 中的包数据、/etc 中的配置文件?如果没有,使用 snap 提供的此类资源的最佳做法是什么?是否应该使用 /snap// 而不是每次都使用?

答案1

不,Snap 是独立的。它当然可能包含 bin/、usr/bin/ 等,但它不能将内容放入系统的 /bin/、/usr/bin/ 等。

利用 snap 提供的此类资源的最佳实践是使用 YAML 中的“apps”关键字从 snap 中导出它们。例如,假设我有一个名为的可执行 shell 脚本hello.sh,其中包含以下内容:

#!/bin/sh
echo "hello snap guru"

我有一个snapcraft.yaml看起来像这样:

name: hello
version: 1
summary: my summary
description: my description

apps:
  run:
    command: hello.sh

parts:
  hello:
    plugin: copy
    files:
      hello.sh: bin/

运行snapcraft此程序并安装生成的 snap 后,您会注意到 hello.sh 包含在 snap 的 bin/ 目录中,该目录当然不在您的 PATH 中,因此您无法直接调用它。但是,安装 snap 后,snappy 会在 /snap/bin/ 中为“apps”关键字中的每个项目创建一个新脚本(run在本例中),并且 /snap/bin/ 在您的 PATH 中。您应该能够通过使用以下命令运行 hello.sh 脚本<snap name>.<app name>

$ hello.run
hello snap guru

相关内容