Snapcraft¶
Snapcraft is the command-line build tool for packaging and distributing software and apps in the snap container format.
The tool packages apps across many supported languages, build tools, and frameworks, such as Python, C and C++, Rust, Node, and GNOME. Snaps can be tested, debugged, and locally shared before being published to the global Snap Store and private stores. It uses simple commands to manage and monitor releases at a granular level.
It solves the problems of dependency management and architecture support by bundling all of a software’s libraries into the container itself, and provides a way to package any app, program, toolkit, or library for all major Linux distributions and IoT devices.
Snapcraft is for developers, package maintainers, fleet administrators, and hobbyists who are interested in publishing snaps for Linux and IoT devices.
In this documentation¶
Tutorial |
Define the package information • Define the target platforms • Define the main part • Pack the snap • Test the snap • Connect the interfaces • Secure the snap |
Installation and setup |
System requirements • Set up Snapcraft • Select a build provider |
Vocabulary and syntax |
|
Platform compatibility |
Bases • Specify a base • Architectures • Select architectures • Advanced grammar |
Software integration |
Integrations • Parts • Plugins • Package repositories • Manage dependencies • Extensions |
Sandboxing and access control |
|
Snap migration |
Change from core18 to core20 • Change from core20 to core22 • Change from core22 to core24 |
Debugging |
|
Distribution |
Channels • Register a snap • Publish a snap • Manage revisions and releases |
How this documentation is organized¶
The Snapcraft documentation embodies the Diátaxis framework.
The tutorial is a lesson that steps through the main process of packaging a snap.
How-to guides contain directions for crafting and debugging snaps.
References describe the structure and function of the individual components in Snapcraft.
Explanations aid in understanding the concepts and relationships of Snapcraft as a system.
Project and community¶
Snapcraft is a member of the Canonical family. It’s an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.