Snap packages are supposed to make it easier and safer to install software in Linux, independent of the distribution you are using. However, if you open up software center and try to install a snap that way around, you will be greeted by a suspicious looking Ubuntu One login prompt.
While the requirement to login is likely harmless, I see no reason why I would want to log in to Ubuntu One just to install packages. Luckily, we can use the terminal to install snaps.
To install a snap, you can either create a Ubuntu One account, or install the snap via the terminal by entering the sudo snap install [snap name] command. I.e.:
Managing snaps from terminal
There are also other commands. For instance snap find [name] will help you locate a specific package, and snap refresh [name] will update a snap to the latest available version, while snap remove [name] will uninstall a snap. See the below table for more commands.
|snap install [name]||Installs a snap.|
|snap remove [name]||Uninstalls a snap.|
|snap refresh [name]||Update a package to the latest version|
|snap revert [name]||Revert to the previous version of a package, before the last refresh. Useful if a new version turns out to be buggy.|
|snap find [find-OPTIONS]||Find available packages to install. You may need to be logged in to use certain options. I.e.: --private|
|snap list||Get a list of installed snaps.|
|snap disable [name]||Disables a snap in the system, while keeping all of the files and data.|
|snap enable [name]||Enables a previously disabled snap.|
|snap login [email]||Logs in to the store. You can create an account at: https://login.ubuntu.com|
|snap logout||Logs the current user out of the store. (Goodbye)|
Snaps vs traditional packaging
Snaps should in theory make it easier to install and manage software for the user, as well as easier to distribute for the developers. However, they (as of August 2017) still suffer from minor display bugs.
The GUI in programs distributed in snap packages may appear similar to the old Windows 9x theme. Gray and ugly. Below is how the GUI in Gimp normally looks (left), and how it looks when installed with snap (right):
With snaps, however, we may avoid conflicting dependencies, as most things will be distributed with the snap package. For example, if x package depend on y version 2, while z package relies on y version 1, updating y could cause x to malfunction.
So which method is better? Well.. I think I currently prefer to stick with apt, because the idea of having the same packages (dependencies) included in multiple snaps just seems wrong to me. The ideal would be to install a certain dependency, and then refer to it from all other packages relying on it. Presumably, snaps will also take up more space as a result.
However, I have run into problems with a certain app, because I had to update a dependency, before installing the latest version. However, doing so would break other programs, which was still relying on the old version. Presumably not because it was incompatible, but more likely because a path was hard-coded into the app, including a version number. Who does that anyway? I mean seriously?!