LinuxCommandLibrary

snap

Install, manage, and update software packages

TLDR

Search for a package

$ snap find [query]
copy

Install a package
$ snap install [package]
copy

Update a package
$ snap refresh [package]
copy

Update a package to another channel (track, risk, or branch)
$ snap refresh [package] --channel=[channel]
copy

Update all packages
$ snap refresh
copy

Display basic information about installed snap software
$ snap list
copy

Uninstall a package
$ snap remove [package]
copy

Check for recent snap changes in the system
$ snap changes
copy

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 --channel=beta'.

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.

SEE ALSO

apt(8), dpkg(1), snapcraft(1)

Copied to clipboard