snap
Install, manage, and update software packages
TLDR
Search for a package
Install a package
Update a package
Update a package to another channel (track, risk, or branch)
Update all packages
Display basic information about installed snap software
Uninstall a package
Check for recent snap changes in the system
SYNOPSIS
snap [command] [options] [snap-name]
PARAMETERS
install
Installs a snap package.
remove
Removes a snap package.
find [
Searches for snap packages in the Snap Store.
refresh [
Refreshes a snap package to the latest version (or a specific channel).
revert
Reverts a snap package to the previously installed version.
disable
Disables a snap package. It remains installed but doesn't run.
enable
Enables a snap package that was previously disabled.
list
Lists all installed snap packages.
info
Displays detailed information about a snap package.
connect
Connects a snap to an interface, allowing it to access certain system resources.
disconnect
Disconnects a snap from an interface, restricting its access.
interfaces
Lists available interfaces.
--version
Displays the snap version.
--help
Displays the help message.
DESCRIPTION
Snap is a package management system developed by Canonical, primarily for Linux. It allows developers to bundle their applications with all their dependencies into a single, self-contained package called a 'snap'. These snaps can then be easily distributed and installed across a variety of Linux distributions, regardless of the underlying package manager (apt, yum, etc.).
Snap aims to provide a more secure and reliable way to distribute software. Applications installed via snap are containerized, meaning they run in an isolated environment, preventing them from interfering with the system or other applications. This isolation also enhances security by limiting the application's access to system resources.
Snaps are automatically updated in the background, ensuring users always have the latest version of the software and security patches. Snap also supports channels, enabling developers to release different versions of their software (e.g., stable, beta, edge) to different groups of users. Snapcraft is the tool used to build snaps.
CAVEATS
Snaps consume more disk space compared to traditionally packaged applications due to the bundled dependencies. Running snaps can also introduce a slight performance overhead due to the containerization. Some users may find the automatic updates intrusive.
CHANNELS
Channels are used to deliver different release tiers of an application. Common channels include stable, candidate, beta, and edge. Users can choose which channel to track when installing a snap, allowing them to access either the most stable version or more experimental releases. For example: 'snap install
SNAP STORE
The Snap Store is a centralized repository for snap packages. Users can browse and install snaps directly from the store using the 'snap find' and 'snap install' commands. The Snap Store also provides a platform for developers to publish and distribute their snaps to a wider audience.
HISTORY
Snap was initially developed by Canonical and first released in 2014 as part of Ubuntu Touch. It was later adopted for Ubuntu desktop and subsequently promoted as a cross-distribution package management solution. Snap aimed to address the limitations of traditional package management systems, such as dependency conflicts and the complexity of building packages for multiple distributions. Over time, it has gained adoption from various software vendors and is now used to distribute a wide range of applications.