If I were to install the same application both as a snap and using APT, how would I be able to call each one separately and how would I know which one was running?
I am not yet fully convinced that snap is best for the end-user and want to compare the performance of a few packages.
Call each one separately
You can start a specific version of an application by providing the full path name of the executable. Firefox, e.g., installed using APT will be launched by
/usr/bin/firefox
. The executables of snap applications are under/snap/bin/
so/snap/bin/firefox
will launch the snap version.Typing
firefox
will launch the APT version, because/usr/bin
is listed earlier in the search path than/snap/bin
in a default Ubuntu install. The default PATH is:When you simply type
firefox
, the system searches each of the consecutive directories (folders) until an executable with the namefirefox
is found. If the APT version is installed, it will find the executable in/usr/bin
before searching/snap/bin
, so the search will be stopped and that executable will be launched.You can learn which executable will be launched with the command
which
.You can learn which executables you have installed with the command
whereis
:Here, both the APT and the snap version of firefox are installed.
Know which one is running
Running processes
The command
ps ax
lists all running processes. Thus:will list all processes with the name "firefox". The output includes the full pathname of the executable.
Creator of a specific window
It is also possible to identify the creator of a specific window, to learn whether the open window is from the APT or the snap version. However, this is rather complicated and not always reliable. See the Unix & Linux Stackexchange questions What process created this X11 window? and What process created this window with no PID associated?.
Examples using gnome-calculator, which many folks have in both deb and snap formats:
How to call each one separately: Let's find full paths.
How to determine which one is running. In this example, BOTH are running. The difference is readily apparent.