在snapcraft.yaml中如何使用dump plugin来拷贝我们的文件
2016-10-08 11:04
267 查看
在我先前的一个例程webcam中,我们的snapcraft.yaml显示如下:
我们使用了copy plugin来拷贝我们的文件.如果我们编译我们的项目的话,你就会发现:
它建议我们使用dump plugin来替换.关于plugin的更多的技术细节,我们可以在http://snapcraft.io/docs/reference/plugins/地址找到.我们可以找到dump plugin的技术细节http://snapcraft.io/docs/reference/plugins/dump:
在上面的网址,我们可以找到很多例程来参考.针对我们的例子,我们可以有如下的方案:
接下来,我们通过修改我们的snapcraft.yaml:
通过这样的改动,它将把我们当前目录中所有的文件打包到我们包中的相应的目录中.
https://git.launchpad.net/prometheus-snap/tree/snapcraft.yaml
我们把我们的snapcraft.yaml的文件修改为:
编译完我们的项目后,我们可以重新看到我们的包里的内容:
在这里我们通过organize的方法把我们的文件移动到我们相应的目录中.当然在我们的上面的设计中,我们可以更进一步把我们的glue part精简为:
在这里我们除去了stage及snap的部分.只是对于我们来说,在这个项目中,我们不必要对这些文件做更进一步的treak.如果需要的话,我们可以通过stage及snap的方法来做.
我们也可以把上面的代码更进一步修改为:
这样我么可以把我们当前目录下的所有的文件安装到我们的bin目录下.
name: webcam-app version: "1.0" summary: Webcam app for snappy ubuntu core description: Exposes your webcam and access using a Ubuntu phone app called "webcamapp" confinement: strict apps: webcam: command: bin/webcamserv daemon: simple plugs: [camera,network,network-bind] sh: command: bin/sh parts: cam: plugin: go source: https://github.com/liu-xiao-guo/webcamserv source-type: git stage-packages: - fswebcam filesets: fswebcam: - usr/bin/fswebcam - lib - usr/lib go-server: - bin/webcam* snap: - $fswebcam - $go-server glue: plugin: copy files: webcam: bin/webcam capture: bin/capture ./bin/sh: bin/sh
我们使用了copy plugin来拷贝我们的文件.如果我们编译我们的项目的话,你就会发现:
liuxg@liuxg:~/temp/webcam$ snapcraft "grade" property not specified: defaulting to "stable" DEPRECATED: The 'copy' plugin's functionality has been replaced by the 'dump' plugin, and it will soon be removed.
它建议我们使用dump plugin来替换.关于plugin的更多的技术细节,我们可以在http://snapcraft.io/docs/reference/plugins/地址找到.我们可以找到dump plugin的技术细节http://snapcraft.io/docs/reference/plugins/dump:
This plugin just dumps the content from a specified source. In the cases where dumping the content needs some mangling or organizing one would take advantage of the core functionalities available to plugins such as: filesets, stage, snap and organize.
在上面的网址,我们可以找到很多例程来参考.针对我们的例子,我们可以有如下的方案:
方案一:
我们把我们项目中的webcam及capture两个执行文件移到我们的bin目录下,这样整个的项目文件如下:liuxg@liuxg:~/snappy/desktop/webcam$ tree . ├── bin │ ├── capture │ ├── sh │ └── webcam └── snapcraft.yaml
接下来,我们通过修改我们的snapcraft.yaml:
glue: plugin: dump source: .
通过这样的改动,它将把我们当前目录中所有的文件打包到我们包中的相应的目录中.
liuxg@liuxg:~/snappy/desktop/webcam/prime$ tree -L 3 . ├── bin │ ├── capture │ ├── sh │ ├── webcam │ └── webcamserv ├── command-sh.wrapper ├── command-webcam.wrapper ├── lib │ └── x86_64-linux-gnu │ ├── libexpat.so.1 -> libexpat.so.1.6.0 │ ├── libexpat.so.1.6.0 │ ├── libpng12.so.0 -> libpng12.so.0.54.0 │ └── libpng12.so.0.54.0 ├── meta │ └── snap.yaml └── usr ├── bin │ └── fswebcam └── lib ├── gcc └── x86_64-linux-gnu
方案二:
如果我们不想把我们的webcam和capture移动到我们的bin目录下,那么我们怎么办呢?我们可以通过利用organize的方法来做.具体实践,我们可以参阅一个例程:https://git.launchpad.net/prometheus-snap/tree/snapcraft.yaml
我们把我们的snapcraft.yaml的文件修改为:
glue: plugin: dump source: .
organize:
webcam: bin/webcam
capture: bin/capture
stage:
- bin/webcam
- bin/capture
- bin/sh
snap:
- bin/webcam
- bin/capture
- bin/sh
编译完我们的项目后,我们可以重新看到我们的包里的内容:
glue: plugin: dump source: .
organize:
webcam: bin/webcam
capture: bin/capture
stage:
- bin/webcam
- bin/capture
- bin/sh
snap:
- bin/webcam
- bin/capture
- bin/sh
在这里我们通过organize的方法把我们的文件移动到我们相应的目录中.当然在我们的上面的设计中,我们可以更进一步把我们的glue part精简为:
glue: plugin: dump source: .
organize:
webcam: bin/webcam
capture: bin/capture
在这里我们除去了stage及snap的部分.只是对于我们来说,在这个项目中,我们不必要对这些文件做更进一步的treak.如果需要的话,我们可以通过stage及snap的方法来做.
我们也可以把上面的代码更进一步修改为:
glue: plugin: dump source: . organize: '*': bin/
这样我么可以把我们当前目录下的所有的文件安装到我们的bin目录下.
相关文章推荐
- GIT 版本控制软件的常用命令记录每次更新到仓库 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标和使用方法
- 如何使用 Win7 的库特性,使我们归类文件夹更轻松,查找文件更快捷?
- 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了
- 使用XML文件输入和输出和YAML文件 目标 你会发现以下问题的答案: 如何打印和阅读文本条目文件和OpenCV使用YAML或XML文件? 如何为OpenCV做同样的数据结构?
- 如何为我们snap包里的每个应用生产相应的desktop文件
- 如何在不增加swap分区的情况下使用swap文件来增加swap?
- 解决一个如何使用库文件的难题
- 对应诺言,写了篇文章,“如何使用Serialization 进行文件存储/读取数据 (上)”, 请大家评评。
- 如何在批处理文件中使用参数
- 如何使用.NET配置文件(二)
- 如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- 如何使用C#压缩文件及注意的问题!
- 新手来看:什么叫“使用Data Link 文件”?什么是UDL文件?如何创建?
- 如何高速拷贝超大文件?大文件拷贝工具Total Copy和Burst Copy
- 如何在VB6.0中创建和使用文本资源文件
- 如何有效的使用C#读取文件
- 如何使用Windows XP共享文件夹与文件并设置权限
- 请求帮助:如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- 如何在linux下使用c语言操作临时文件
- 如何使用C#压缩文件及注意的问题!