Snapcraft¶
Snapcraft is the tool for packaging software into the snap container format.
It builds and bundles Linux software of all kinds and sources, and is operated through a command-line interface.
Snapcraft is compatible with many languages and frameworks, including Python, Rust, Go, and GNOME. It provides debugging and testing capabilities to ready a snap for publication to the Snap Store or a private store.
Snapcraft is for developers, package maintainers, fleet administrators, and hobbyists who publish software for desktop 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 |
About bases • Specify a base • About platforms • Select platforms • Advanced grammar |
Software integration |
Integrations • About parts • Plugins • Package repositories • Manage dependencies • About extensions |
Sandboxing and access control |
About interfaces • Layouts • Build environment options • Hooks |
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.