This feature is called 'Parallel Installs' by Snap developers: you can install multiple versions of a software. The result is you can run different versions simultaneously (e.g. for reviewing or comparing purpose). It is supported since snapd 2.36. For any GNU/Linux users you just need to update your snapd to 2.36 or later in order to enjoy this awesome feature. For that purpose, we will try to install two versions of Inkscape on Ubuntu on LiveCD. I will use 0.92.4 and 1.0alpha, the most recent ones today. This example can be used for other programs as well. Enjoy!

Subscribe to UbuntuBuzz Telegram Channel to get article updates directly.

See also Snap Beginner's Guide | Inkscape review (using Snap on LiveCD)

See you snapd version


Users of Ubuntu 16.04 and 18.04 by default need to upgrade their snapd. 
$ snap --version

(Ubuntu 18.04 by default brings snapd 2.32 and it doesn't able to do parallel installs)

If it is below 2.36, you need to upgrade it to 2.36 or later.

Upgrade snapd version first


To upgrade snapd, run this command:
$ snap refresh core

Then check your snapd version again:
$ snap --version

 (Upgraded snapd today gives version 2.37 and this is okay)

Identifier or "key"


Parallel installs is basically making a copy of current installed version. To do so, of course the newly created copy should have different name (called "identifier" or "key"). Nothing special, just like you rename something inside a folder. You may choose any name you like. The format of command and identifier are like below.

Command examples:
$ snap install [package_name] [package_copy_key] 
$ snap install inkscape inkscape_alpha
$ snap install vlc vlc_latest123

Identifier format:
- Alphanumeric characters
- Lowercase
- Up to 10 characters only

Install Inkscape in parallel


Please note that in Snap terminology, the term 'refresh' means 'upgrade'.

What you really need to do is basically install any version first and then copy that version (make a parallel version) and then upgrade that copy to another version. That's parallel installs. That way, you will have two Snaps with different versions you can run simultaneously. Again, without worrying about dependencies and broken system. In this exercise, because Snap gives us two versions of Inkscape "stable" and "edge", I will install stable version first and then install edge version.

First, enable experimental feature:
$ sudo snap set system experimental.parallel-instances=true

Second, install Inkscape whatever version it is:
$ snap info inkscape
$ snap install inkscape

You need to know what versions are available from the output. See there are stable channel and edge channel (representing version 0.92.4 and version 1.0alpha, respectively). What we will do below is to install both stable and edge versions.
channels:
  stable:    0.92.4   2019-01-24 (4693) 182MB -
  candidate: 0.92.4   2019-01-16 (4693) 182MB -
  beta:      ^                                
  edge:      1.0alpha 2019-01-30 (4818) 161MB -

Third, create a parallel copy named "inkscape_alpha" of the installed one:
$ snap install inkscape inkscape_alpha

Finally, upgrade the parallel copy to different version:
$ snap refresh --edge inkscape_alpha

See there are two different versions of Inkscape installed:
$ snap list | grep inkscape

Run two Inkscape versions at once:
$ snap run inkscape &
$ snap run inkscape_alpha &

See, everything is easy to understand.

(Left: Inkscape 0.92.4, right: Inkscape 1.0alpha; both are Snaps)

One More Example


If you feel example above is not enough, alright, let's try several versions of VLC Media Player as addition. The steps to do are the same: install any version first, make a parallel copy, and upgrade that parallel copy.

Know the versions available. Like above, in VLC, we also will install both stable and edge versions.
$ snap info vlc
channels:
  stable:    3.0.6                   2019-01-10 (770) 212MB -
  candidate: 3.0.6                   2019-01-10 (770) 212MB -
  beta:      3.0.6-46-g135e7ff       2019-01-30 (809) 212MB -
  edge:      4.0.0-dev-6326-gb18a63a 2019-01-30 (808) 246MB -

Install VLC as is:
$ snap install vlc

Make a parallel copy named "vlc_alpha" of the installed one:
$ snap install vlc vlc_alpha

Upgrade the parallel copy to different version:
$ snap refresh --edge vlc_alpha 

Check all versions installed:
$ snap list | grep vlc 
vlc                   3.0.6                    770   stable    videolan✓   -
vlc_alpha             4.0.0-dev-6326-gb18a63a  808   edge      videolan✓   -

Run two versions at once:
$ snap run vlc &
$ snap run vlc_alpha &

See, it is very simple.

(Left: VLC 3.0.6, right: VLC 4.0.0; both are Snaps also)

Common Error


If you get error like below:
error: cannot install "inkscape", "inkscape_stable": experimental feature
       disabled - test it by setting 'experimental.parallel-instances' to true 

then it means you didn't do the "set true" command above. Do it and try again:
$ sudo snap set system experimental.parallel-instances=true


Happy working!

References



, , , , , , , ,