canonical/snapcraft

GitHub: canonical/snapcraft

Snapcraft 是 Canonical 开发的命令行打包工具,用于将应用程序及其依赖打包成 snap 格式,实现跨 Linux 发行版和 IoT 设备的统一分发与自动更新。

Stars: 1264 | Forks: 514

Snapcraft logo # Snapcraft [![Snapcraft](https://snapcraft.io/snapcraft/badge.svg)][snapcraft-site] [![文档状态](https://readthedocs.com/projects/canonical-snapcraft/badge/?version=latest)][rtd-latest] [![Spread 测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3c48a54784205523.svg)][gha-spread] [![Codecov 状态](https://codecov.io/github/canonical/snapcraft/coverage.svg?branch=master)][codecov-status] [![Ruff 状态](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)][ruff-site] **Snapcraft** 是一款命令行构建工具,用于以 snap 容器格式打包和分发软件及 应用程序。它通过将软件的所有库捆绑到容器本身,解决了依赖项管理和 架构支持的问题,并为开发者提供了一种为 所有主流 Linux 发行版和 IoT 设备打包任何应用、程序、工具包或库的方法。 ## 基本用法 Snap 的构建配置以简单的语言存储在名为 `snapcraft.yaml` 的项目文件中,这使其易于作为新的包格式添加到您现有的代码库中。 从任何软件项目的代码库根目录开始,Snapcraft 会使用以下命令创建一个最小的 `snapcraft.yaml`: ``` snapcraft init ``` 在将项目的所有构建和运行时详细信息添加到项目文件后,使用以下命令将您的项目捆绑成 一个 snap: ``` snapcraft pack ``` 您的项目可以在公共和私有应用商店(包括 Snap Store)上注册: ``` snapcraft register ``` Snap 版本和修订版,包括并行发布,通过以下命令发布到商店: ``` snapcraft upload ``` 如果您有兴趣了解更多关于 Snapcraft 命令以及如何编写 项目文件的信息,请尝试[构建您的第一个 snap](https://documentation.ubuntu.com/snapcraft/stable/tutorials/craft-a-snap)。 ## 安装 Snapcraft 可在所有主流 Linux 发行版、Windows 和 macOS 上使用。 Snapcraft 本身作为 snap 拥有一流的支持。在支持 snap 的系统上,您可以通过命令行安装它: ``` sudo snap install snapcraft --classic ``` 为了完成安装,您需要一个额外的 Linux 容器工具。Snapcraft 也可以 作为传统软件包安装在许多流行的 Linux 仓库中。如果您 需要其中任何一方面的帮助,文档涵盖了如何[设置 Snapcraft](https://documentation.ubuntu.com/snapcraft/stable/how-to/setup/set-up-snapcraft)。 ## 文档 [Snapcraft 文档](https://documentation.ubuntu.com/snapcraft/stable) 提供了关于构建项目文件、调试 snap、解析接口、命令参考等完整过程的指导和学习材料。 ## 许可证和版权 Snapcraft 基于 [GPL-3.0 许可证](LICENSE)发布。 © 2015-2025 Canonical Ltd.
标签:IoT, NIDS, Snap, Snapcraft, YAML, 依赖管理, 包管理器, 安全库, 容器化, 应用商店, 应用程序分发, 开源, 开源框架, 打包工具, 持续集成, 沙盒, 物联网, 统一API, 软件部署, 逆向工具