snap打包初步了解

本文介绍了Snap、Flatpak和Appimage三种Linux应用打包方式,重点讲解了Snap的使用和打包流程。通过安装snapd,使用snapcraft创建并打包一个简单的Hello World应用,并分享了打包过程中可能遇到的问题及解决建议。尽管Snap的文档不足,但其权限管理和物联网支持相对完善。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

和snap比较类似的有三种打包方式:

Snap Flatpak appimage

Appimage是将所有的资源打包在一起,以一个类似与独立exe的方式执行,虽然简单使用,但是解压资源和本地缓存数据都比较麻烦。

Flatpak和snap十分类似,但是他却需要桌面GUI才能使用,不能在云服务上执行。

Snap目前来看最为全面,除了开源性让人诟病,支持的权限管理和物联网方面的都还可以。

 

Snap打包的基础入门步骤 

安装snap管理器:

sudo apt install snapd

重启linux:

之后查看环境:

sudo systemctl status snapd

可以看到:

 这样就运行起来snap

到这里和做包是没有关系的,但是想要安装snap包到你的电脑,就必须安装该管理器。

做包工具

snapcraft:

安装:

sudo snap install snapcraft --classic

这里基础使用,不打算进行上传到snap的唯一官方商店,就不尝试进行注册账号了。

新建一个文件夹,然后:

snapcraft init

可以看到该文件夹下出现了一个snap文件,里面是一个yaml文件,将yanl文件修改为:

name: hello-world-cli
version: "0.1"
summary: Hello World
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:
  hello:
    plugin: dump
    source: ./bin/
  
apps:
  hello-world-cli:
    command: hello

这里除了parts上面的是包的基础信息之外,还包含parts来指定hello的二级制文件的位置,apps部分是来exprots出命令来提供给安装的用户使用。

当前的目录如下:

 执行make.sh:

snapcraft  --use-lxd

等待编译出:

hello-world-cli_0.1_amd64.snap

注意:这里可能会有各式各样的问题,推荐虚拟机安装ubuntu20.04进行打包尝试来避免一些问题。

安装测试:

snap install --dangerous ./hello-world-cli_0.1_amd64.snap

然后调用:

hello-world-cli就可以看到自己的打印。

吐槽:这个官网连个完整的例子都没有,文档也是坑人的很,使用起来资料匮乏,哎好难!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值