Canonical Snapcraft
Menu Close menu
  • Snap Store
  • About Snapcraft
  • Learn
    • Blog
    • Build
    • Docs
    • Tutorials
  • IoT
  • Forum
  • My account
    • My published snaps
    • My validation sets
    • My stores
    • Account details
    • Sign out
  • Sign in
Toggle side navigation
Toggle side navigation

Snap documentation

Using snaps

  • Snap tutorials
    • Get started
    • Install the daemon
      • AlmaLinux OS
      • Arch Linux
      • Debian
      • Elementary OS
      • Fedora
      • Linux Mint
      • Manjaro Linux
      • Raspberry Pi OS
      • openSUSE
      • Pop!_OS
      • Rocky Linux
      • Ubuntu
  • Snap how-to guides
    • Work with snaps
      • Manage updates
      • Connect interfaces
      • Configure snaps
      • Apps and aliases
    • Manage snaps
      • Create data snapshots
      • Use resource quotas
      • Disk space awareness
      • Set system options
      • Control services
      • Using components
      • Configure snaps with confdb
      • Validation sets
      • Snap deltas
      • Use the REST API
    • Fix common issues
      • Test snapd fixes
      • Debug snaps
  • Snap reference
    • Operations
      • Glossary
      • System options
      • System architecture
      • Interfaces
        • Hardware interfaces
        • Media interfaces
        • Network interfaces
        • Security interfaces
        • System interfaces
        • Super-privileged interfaces
    • Administration
      • Network requirements
      • Distribution support
    • Development
      • Environment variables
      • REST API
        • snapd REST API
        • Error responses
      • YAML schemas
        • The snap format
        • The gadget snap
        • The kernel snap
    • Release notes
  • Snap explanation
    • How snaps work
      • Refresh awareness
      • Channels and tracks
      • Revisions
      • Transactional updates
      • Snap components
      • Snap performance
    • Interfaces
      • All about interfaces
      • Interface auto-connection
      • Interface hooks
    • Security
      • Security policies
      • Snap confinement
      • Classic confinement
      • Assertions
      • Snapd release process

Snapcraft build-tool

  • Snapcraft tutorials
    • Create a new snap
  • Snapcraft how-to guides
    • Snapcraft overview
    • Quickstart
      • Installation and setup
      • How snapcraft builds a snap
      • Basic snapcraft.yaml example
      • Intermediate snapcraft.yaml example
      • Build and publishing example
    • Create a snap
      • Build a checklist
      • Start snapcraft.yaml
      • Add global metadata
      • Build apps with parts
      • Use extensions
      • Add dependencies
      • Platforms and architectures
      • Define a command
      • Define a service
      • Add interfaces
      • Add configuration options
      • Use external metadata
      • Map files with layouts
      • Exclude data from snapshots
      • Add desktop menu support
      • Build snaps remotely
      • Linting classic snaps
      • Linting libraries
      • Iterate over a build
      • Troubleshoot snap building
      • Using craftctl
      • Classic confinement
    • Craft a snap
      • Cross-compile an autotools project
      • Example pre-built app
      • Example Python app
      • Example C or C++ app
      • Example Java app
      • Example Go app
      • Example Rust app
      • Example Node app
      • Example Ruby app
      • Example GTK4 app
      • Example GTK3 app
      • Example GTK2 app
      • Example Qt5 KDE app
      • Example Flutter app
      • Example Electron app
      • Example .NET app
      • Example MOOS app
      • Example ROS 2 app
      • Example ROS 1 app
      • Other platforms
    • Publish a snap
      • Upload your snap
      • Access the Snap Store
      • Create a Store listing
      • Publish to a branch
      • Progressive releases
      • Manage releases
      • Upload deltas
      • Snapcraft authentication
      • View usage metrics
      • Control data with epochs
      • Build from a private repository
      • GitHub workflow from a private repository
      • Use gdb and gdbserver
    • Robotics
      • ROS quickstart
      • ROS2 quickstart
      • Build with GitHub Actions
      • Access shared memory
      • ROS with no extensions
  • Snapcraft reference
    • Build configuration
      • snapcraft.yaml schema
    • Supported plugins
      • core24
        • Autotools
        • Ant
        • CMake
        • Colcon
        • Conda
        • Dump
        • Flutter
        • Golang
        • Make
        • Matter-SDK
        • Maven
        • Meson
        • Nil
        • NPM
        • Python
        • Rust
        • Scons
      • core22
        • .NET/dotnet
        • Ant
        • Autotools
        • CMake
        • Colcon
        • Conda
        • Crystal
        • Dump
        • Flutter
        • Golang
        • Make
        • Matter-SDK
        • Maven
        • Meson
        • Nil
        • NPM
        • Python
        • Rust
        • Scons
      • core20
        • Ant
        • Autotools
        • Catkin tools
        • Catkin plugin
        • CMake
        • Colcon
        • Conda
        • Crystal
        • Dump
        • Golang
        • NPM
        • Meson
        • Nil
        • Python
        • Qmake
        • Rust
      • core18
        • .NET/dotnet
        • Ant
        • Ament
        • Autotools
        • Catkin tools
        • Catkin plugin
        • CMake
        • Conda
        • Crystal
        • Flutter
        • Golang
        • Godeps
        • Gradle
        • Gulp
        • KBuild
        • Kernel
        • Make
        • Maven
        • Meson
        • Node.js
        • Ruby
        • Rust
        • Python
        • Qmake
        • Scons
        • WAF
    • Extensions
      • env-injector
      • Qt5 and KDE Frameworks
      • Flutter
      • ROS 1 Noetic
      • ROS 1 Noetic Content Sharing
      • ROS2 Foxy
      • ROS2 Foxy Content Sharing
      • ROS2 Humble
      • ROS2 Humble Content Sharing
      • ROS2 Jazzy
      • ROS2 Jazzy Content Sharing
      • GNOME
    • Environment variables
    • Package repositories
    • Platforms and architectures
    • Build options
    • Build providers
    • Snapcraft linters
    • Classic confinement
    • Release notes
  • Snapcraft explanation
    • Parts lifecycle
    • Architectures
    • Advanced grammar
    • Migrate between bases
      • Migrate to core24
      • Migrate to core22
    • Hooks
    • Using snapctl
    • Robotics
      • ROS troubleshooting
      • ROS architectures

Contribute to our docs

Installing snap on Raspberry Pi OS

Snap can be installed on a Raspberry Pi running the latest version of Raspberry Pi OS by opening a terminal and typing a couple of commands.

The default terminal, also known as a command line, is called LXTerminal and it’s launched from its icon on the desktop. Take a look at the official Raspberry Pi documentation if you’re unfamiliar with the terminal.

Enter the following into the terminal:

$ sudo apt update
$ sudo apt install snapd

You will also need to reboot your device. This can be accomplished from the terminal (and from the desktop), but make sure you save any open documents first:

$ sudo reboot

After this, install the core snap in order to get the latest snapd.

$ sudo snap install core
core 16-2.45.2 from Canonical✓ installed

:information_source: Note: some snaps require new snapd features and will show an error such as snap "lxd" assumes unsupported features" during install. You can solve this issue by making sure the core snap is installed (snap install core) and it’s the latest version (snap refresh core).

To test your system, install the hello-world snap and make sure it runs correctly:

$ snap install hello-world
hello-world 6.3 from Canonical✓ installed
$ hello-world
Hello World!

Snap is now installed and ready to go! If you’re using a desktop, a great next step is to install the Snap Store app.

Ubuntu Core on the Raspberry Pi:



Snap is an integral part of Ubuntu Core, which can be installed as the native Raspberry Pi operating system. Ubuntu Core provides more permissive access to the Raspberry Pi, and may enable functionality not easily mirrored when snap is installed from Raspberry Pi OS. A good example of this is low-level access to a Raspberry Pi’s GPIO pins.


Last updated 2 years ago.

Help improve this document in the forum.

Back to top

© 2025 Canonical Ltd.

Ubuntu and Canonical are registered trademarks of Canonical Ltd.
Powered by Charmed Kubernetes

Join the forum, contribute to or report problems with, snapd, Snapcraft, or this site.

  • Terms of Service
  • Data privacy
  • Manage your tracker settings
  • Service status
  • Other functions
  • Share on Twitter
  • Share on Facebook
  • Share on YouTube