snap使用interface:content的基础例子

news2024/11/28 21:44:25

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 snap
  This code is part of the Snapcraft example tour at
  https://developer.ubuntu.com/snapcraft-getting-started

grade: stable
confinement: strict
base: core20

parts:
  data:
    plugin: dump
    source: ./env/



slots:
  content:
    interface: content
    content: example-content
    read:
      - $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 snap
  This code is part of the Snapcraft example tour at
  https://developer.ubuntu.com/snapcraft-getting-started

grade: stable
confinement: strict
base: core20

parts:
  data:
    plugin: dump
    source: ./consumer-data/

apps:
  print-cli:
    command: print.sh

plugs:
  content:
    interface: content
    content: example-content
    target: $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.coloradmin.cn/o/402136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为机试题:HJ90 合法IP(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

ICASSP 2023论文模型开源|语音分离Mossformer

人类能在复杂的多人说话环境中轻易地分离干扰声音,选择性聆听感兴趣的主讲人说话。但这对机器却不容易,如何构建一个能够媲美人类听觉系统的自动化系统颇具挑战性。 本文将详细解读ICASSP2023本届会议收录的单通道语音分离模型Mossformer论文&#xff0…

EXCEL职业版本(3)

Excel职业版本(3) 公式与函数 运算符 算数运算符 关系运算符 地址的引用 相对引用:你变它就变,如影随形 A2:A5 绝对引用:以不变应万变 $A$2 混合引用:识时务者为俊杰,根据时…

tkinter实现悬浮文字

悬浮文字效果如下图:不可点击,不可选中,任务栏不显示图标,文字背景完全透明。 实现方法: root.wm_overrideredirect(True) wm_overrideredirect方法,在Windows平台下,这个函数的作用&#xff…

项目规模估算如何精准 4大注意事项

项目报价,需要首先进行项目规模估算,如何估算更精准,6大注意事项。 1、项目范围规划 在项目估算前,需要对项目范围进行规划,这包括所有活动以及开发可交付产品所需的流程。范围规划是前提,它明确定义了项目…

操作系统内核与安全分析课程笔记【1】链表、汇编与makefile

文章目录链表循环双向链表哈希链表其他链表汇编内联汇编扩展内联汇编makefile链表 链表是linux内核中关键的数据结构。在第二次课中,重点介绍了循环双向链表和哈希链表。这两种链表都在传统的双向链表的基础之上进行了针对效率的优化。(ps:这部分可以通…

smp_init过程解析

当你看到这样的log,会不会很慌张?竟然由CPU没有启动成功,除了什么故障?本文将结合我遇到的一个问题,将启动过程中bringup secondary cpu的过程分析一下。smp_init代码如下:602 void __init smp_init(void) …

合肥工业大学密码学课设-RSA

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :课设-密码学课设-RSA 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台&#…

牛客刷题第一弹

1.异常处理 都是Throwable的子类: ①.Exception(异常):是程序本身可以处理的异常。 ②.Error(错误): 是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需…

百丽时尚×优维科技×道客战略启动「云原生一体化项目」

3月7日,由百丽时尚集团(以下简称:百丽时尚)联合优维科技、道客共同举办的「云原生一体化项目启动会」在深圳百丽国际大厦圆满落幕,项目合作三方齐聚一堂,就云原生一体化建设战略方案达成合作共识&#xff0…

【LeetCode每日一题】——783.二叉搜索树节点最小距离

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目注意】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 深度优先搜索 二【题目难度】 简单 三【题目编号】 783.二叉搜索树节点最小距…

Hands-on C++ Game Animation Programming阅读笔记(九)

Chapter 12: Blending between Animations This fade is usually short—a quarter of a second or less. (动画之间的fade一般很快,0.5s甚至更短) 本章重点: 两个Pose的Blending不同Animations的CrossFading,会有一个cross fade controller…

OpenCV入门(六)快速学会OpenCV5图像处理基础(二)像素处理

OpenCV入门(六)快速学会OpenCV5图像处理基础(二) 像素是图像构成的基本单位,像素处理是图像处理的基本操作,可以通过位置索引的形式对图像内的元素进行访问、处理。 1.二值化操作 需要说明的是&#xff…

2023年上半年北京杭州/广州深圳软考中/高级报名入口

软考是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成…

【人脸识别】ssd + opencv Eigenfaces 和 LBPH算法进行人脸监测和识别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言ssd opencv Eigenfaces 和 LBPH算法进行人脸监测和识别1. ssd 目标监测2.opencv的三种人脸识别方法2.1 Eigenfaces2.2 LBPH前言 ssd opencv Eigenfaces 和 LB…

hadoop的补充配置与常用脚本

目录 历史服务器的配置: 添加配置: 分发集群: 日志聚集功能的配置: 添加配置: 分发配置给集群其他服务器: 集群的启动与停止: 整体启动和停止hdfs: 整体启动/停止YARN 启动…

微服务为什么要用到 API 网关?

本文介绍了 API 网关日志的价值,并以知名网关 Apache APISIX 为例,展示如何集成 API 网关日志。 作者程小兰,API7.ai 技术工程师,Apache APISIX Contributor。 原文链接 什么是微服务 微服务架构(通常简称为微服务&a…

Promise.all、Promise.race、Promise.allSettled、Promise.any区别

1.Promise.all Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 const p Promise.all([p1, p2, p3]); p的状态由p1,p2,p3 决定,分成两种情况。 (1)只有p1、p2、p3的状态都变成fulfilled&#xff0c…

LeetCode - 42 接雨水

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 42. 接雨水 - 力扣(LeetCode) 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1 输入&…

金融交易行为监测方法——利用 CNN 模型实现行为识别

背景介绍在证劵交易所领域,曾经发生用户证券账号被盗事件,导致客户资产损失,例如:黑客获得了用户A的证券账号密码,利用多次的低买高卖将资产转移。本文中针对此类对敲欺诈的场景,采用将用户交易数据转换为图…