首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snapcraft放置默认配置文件

Snapcraft放置默认配置文件
EN

Stack Overflow用户
提问于 2016-10-08 19:37:44
回答 1查看 908关注 0票数 2

我正在尝试使用Snapcraft.io构建一个应用程序版本,我几乎已经完成了所有工作。

Snapcraft已经编译了源代码,生成了.snap文件,包含了所有的依赖项,等等。

然而,我被困在如何在第一个应用程序安装后初始化SNAP_USER_DATA文件夹中的一些配置文件。

我不想将文件放在默认只读路径SNAP中,因为默认参数应该由用户修改,我还需要生成一些额外的文件,比如服务器证书。

因此,我需要复制一些文件,并在第一次安装后运行脚本。

这个是可能的吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-09-07 03:34:51

因为快照是以根用户身份安装的,所以不可能在安装时完全按照您的要求执行操作,因为$SNAP_USER_DATA是特定于用户的,所以它将始终是根用户的快照。但是,您可以在安装时使用系统范围的目录(如$SNAP_DATAusing the install hook )来执行此操作

代码语言:javascript
复制
$ snapcraft init
Created snap/snapcraft.yaml.
Edit the file to your liking or run `snapcraft` to get started

创建钩子。在我们的例子中,我们只需要在$SNAP_DATA中创建一个新文件,但是您可以做任何您想做的事情。

代码语言:javascript
复制
$ mkdir -p snap/hooks
$ echo "touch \$SNAP_DATA/foo" >> snap/hooks/install
$ chmod a+x snap/hooks/install

构建快照。

代码语言:javascript
复制
$ snapcraft
Preparing to pull my-part 
Pulling my-part 
Preparing to build my-part 
Building my-part 
Staging my-part 
Priming my-part 
Snapping 'my-snap-name' |                                        
Snapped my-snap-name_0.1_amd64.snap

安装快照。这将运行install挂钩。

代码语言:javascript
复制
$ sudo snap install my-snap-name_0.1_amd64.snap --devmode --dangerous
my-snap-name 0.1 installed

请注意,在$SNAP_DATA中创建了一个文件。

代码语言:javascript
复制
$ ls /var/snap/my-snap-name/current
foo

$SNAP_USER_DATA获得类似功能的唯一方法是将您的实际命令包装在创建配置的脚本中。然后由用户运行此命令,这意味着您将获得所需的$SNAP_USER_DATA。当然,这不是在安装时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39931891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档