当前位置: 首页 > news >正文

snap使用interface:content的基础例子

snap做包还在学习阶段,官网文档可查看:

The content interface | Snapcraft documentation

该例子由publiser和consumer两部分组成,一个提供一个只读的数据区,一个来进行读取其中的信息,这样就完成了content的交互。

publisher:

整体的结构如下:

snapcraft.yaml:

文件内容如下:

name: publisher
version: '1.0'
summary: data publisher
description: |This demo is intended to show how to build your first snapThis code is part of the Snapcraft example tour athttps://developer.ubuntu.com/snapcraft-getting-startedgrade: stable
confinement: strict
base: core20parts:data:plugin: dumpsource: ./env/slots:content:interface: contentcontent: example-contentread:- $SNAP/publisher-data
example.txt:

则自己随意写一个内容进行测试即可。

编译:
snapcraft 

consumer:

整体结构如下:

snapcraft.yaml:

文件内容如下:

name: consumer
version: '1.0'
summary: data comsumer
description: |This demo is intended to show how to build your first snapThis code is part of the Snapcraft example tour athttps://developer.ubuntu.com/snapcraft-getting-startedgrade: stable
confinement: strict
base: core20parts:data:plugin: dumpsource: ./consumer-data/apps:print-cli:command: print.shplugs:content:interface: contentcontent: example-contenttarget: $SNAP_DATA/publisher-data
print.sh:
echo "hello"

这里print.sh和consumer.txt并不是必要的,这里可以方便测试而已。

编译:
snapcraft 

测试:

安装并添加interface的连接:
sudo snap install publisher_1.0_amd64.snap  --dangerous
sudo snap install consumer_1.0_amd64.snap  --dangerous
sudo snap connect consumer:content publisher:content

这里使用的是手动连接,使用 sudo snap connections publisher可以查看连接之后的状态。

验证:consumer可以访问到数据了:
sudo snap run --shell consumer.print-cli 

就进入了consumer的文件系统,然后:

 ls /var/snap/consumer/x1/publisher-data/

就应该看到example.txt文件已经乖乖在里面等着你去访问了。

当然你也可以将这个命令直接写入print.sh,然后使用命令行直接读取该数据。

http://www.lryc.cn/news/37526.html

相关文章:

  • 蓝桥杯刷题第七天
  • FinOps首次超越安全成为企业头等大事|云计算趋势报告
  • 【深度强化学习】(3) Policy Gradients 模型解析,附Pytorch完整代码
  • Windows基于Nginx搭建RTMP流媒体服务器(附带所有组件下载地址及验证方法)
  • 交流电机驱动器中的隔离电压感应
  • 爬取知乎问题答案
  • 通用智能理论
  • 保姆级使用PyTorch训练与评估自己的MixMIM网络教程
  • 《百万在线 大型游戏服务端开发》前两章概念笔记
  • 3BHE029110R0111 ABB
  • 实现防重复操作(JS与CSS)
  • 怎么合并或注销重复LinkedIn领英帐号?
  • Redis高频面试题汇总(中)
  • 【Flutter从入门到入坑之三】Flutter 是如何工作的
  • Web Components学习(2)-语法
  • Lesson 9.2 随机森林回归器的参数
  • Kubernetes Secret简介
  • Redis 哨兵(Sentinel)
  • 精读笔记 - How to backdoor Federated Learning
  • 即时通讯系列-N-客户端如何在推拉结合的模式下保证消息的可靠性展示
  • 关于js数据类型的理解
  • 大一上计算机期末考试考点
  • 微搭问搭001-如何清空表单的数据
  • Windows7,10使用:Vagrant+VirtualBox 安装 centos7
  • 基于JavaEE开发博客系统项目开发与设计(附源码)
  • Android Framework——zygote 启动 SystemServer
  • 在ubuntu上搭建SSH和FTP和NFS和TFTP
  • ThinkPHP 6.1 模板篇之文件加载
  • 操作系统内核与安全分析课程笔记【1】链表、汇编与makefile
  • 华为OD机试题 - 九宫格按键输入(JavaScript)| 机考必刷