将 Linux 软件打包成 Snap 软件包

简介:

在 Linux 分发应用不总是那么容易。有各种不同的包格式、基础系统、可用库,随着发行版的一次次发布,所有的这些都让人头疼。然而,现在我们有了更简单的东西:Snap。

Snap 是开发者打包他们应用的新途径,它相对于传统包格式,如 .deb,.rpm 等带来了许多优点。Snap 安全,彼此隔离,宿主系统使用了类似 AppArmor 的技术,它们跨平台且自足的,让开发者可以准确地将应用所需要的依赖打包到一起。沙盒隔离也加强了安全,并允许应用和整个基于 snap 的系统,在出现问题的时候可以回滚。Snap 确实是 Linux 应用打包的未来。

创建一个 snap 包并不困难。首先,你需要一个 snap 基础运行环境,能够让你的桌面环境认识并运行 snap 软件包,这个工具叫做 snapd ,默认内置于所有 Ubuntu 16.04 系统中。接着你需要创建 snap 的工具 Snapcraft,它可以通过一个简单的命令安装:

 
  1. $ sudo apt-get install snapcraft

这个环境安装好了之后就可以 snap 起来了。

Snap 使用一个特定的 YAML 格式的文件 snapcraft.yaml,它定义了应用是如何打包的以及它需要的依赖。用一个简单的应用来演示一下,下面的 YAML 文件是个如何 snap 一个 moon-buggy 游戏的实际例子,该游戏在 Ubuntu 源中提供。

 
  1. name: moon-buggy
  2. version: 1.0.51.11
  3. summary: Drive a car across the moon
  4. description: |
  5. A simple command-line game where you drive a buggy on the moon
  6. apps:
  7. play:
  8. command: usr/games/moon-buggy
  9. parts:
  10. moon-buggy:
  11. plugin: nil
  12. stage-packages: [moon-buggy]
  13. snap:
  14. usr/games/moon-buggy

上面的代码出现了几个新概念。第一部分是关于如何让你的应用可以在商店找到的信息,设置软件包的元数据名称、版本号、摘要、以及描述。apps 部分实现了 play 命令,指向了 moon-buggy 可执行文件位置。parts 部分告诉 snapcraft 用来构建应用所需要的插件以及依赖的包。在这个简单的例子中我们需要的所有东西就是来自 Ubuntu 源中的 moon-buggy 应用本身,snapcraft 负责剩下的工作。

在你的 snapcraft.yaml 所在目录下运行 snapcraft ,它会创建 moon-buggy1.0.51.11amd64.snap 包,可以通过以下命令来安装它:

 
  1. $ snap install moon-buggy_1.0.51.11_amd64.snap

原文发布时间为:2016-06-09

本文来自云栖社区合作伙伴“Linux中国”

目录
打赏
0
0
0
0
325
分享
相关文章
|
6月前
|
Linux系统中的软件管理工具主
Linux系统中的软件管理工具主
90 7
|
6月前
|
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
277 5
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
55 4
在Linux上,有许多软件可以下载和安装
在Linux上,有许多软件可以下载和安装
226 67
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
450 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
2024 年 16 个适用于 Linux 的开源云存储软件 (上)
2024 年 16 个适用于 Linux 的开源云存储软件 (上)
354 2
2024 年 16 个适用于 Linux 的开源云存储软件 (上)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
208 0
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
|
5月前
|
Linux - 如何编译源码安装软件
源码编译安装通常包括三个步骤:1) `./configure` 检测平台特征和依赖项,生成 Makefile;2) `make` 编译源码,生成可执行文件;3) `make install` 将可执行文件安装到指定目录并配置环境变量。
162 0
Linux 软件安装与卸载
在Linux上,学习安装和卸载软件是基础。以网络监控工具iftop为例,安装涉及下载源码(`wget`),解压(`tar -zxf`),配置(`./configure`),安装依赖(如`libpcap-devel`),再执行`make`和`make install`。另外,可以通过RPM或YUM(在CentOS中可能是DNF)管理软件,如`rpm -ivh`安装,`rpm -e`卸载,`yum install`或`dnf install`同样用于安装。了解这些命令能提升Linux系统的管理效率。
103 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等