如果我要以 snap 和 APT 的方式安装同一个应用程序,我该如何分别调用它们,又如何知道哪个应用程序正在运行?
我还不完全相信 snap 是否最适合最终用户,并且想比较一下几个软件包的性能。
答案1
分别调用每一个
您可以通过提供可执行文件的完整路径名来启动应用程序的特定版本。例如,使用 APT 安装的 Firefox 将通过 启动/usr/bin/firefox
。Snap 应用程序的可执行文件位于 下/snap/bin/
,因此/snap/bin/firefox
将启动 Snap 版本。
输入firefox
将启动 APT 版本,因为/usr/bin
它在搜索路径中比/snap/bin
默认 Ubuntu 安装中列出的更早。默认 PATH 是:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
当您简单地输入 时firefox
,系统会搜索每个连续的目录(文件夹),直到firefox
找到具有名称的可执行文件。如果安装了 APT 版本,它会在/usr/bin
搜索 之前找到 中的可执行文件/snap/bin
,因此搜索将停止并启动该可执行文件。
您可以了解将使用命令启动哪个可执行文件which
。
$ which firefox
/usr/bin/firefox
您可以使用以下命令了解已安装的可执行文件whereis
:
$ whereis firefox
firefox: /usr/bin/firefox /usr/lib/firefox /etc/firefox /snap/bin/firefox /usr/share/man/man1/firefox.1.gz
这里同时安装了APT和Snap版本的firefox。
知道哪一个正在运行
正在运行的进程
该命令ps ax
列出所有正在运行的进程。因此:
ps ax | grep firefox
将列出所有名为“firefox”的进程。输出包括可执行文件的完整路径名。
特定窗口的创建者
还可以识别特定窗口的创建者,以了解打开的窗口是来自 APT 还是 snap 版本。但是,这相当复杂,而且并不总是可靠的。请参阅 Unix & Linux Stackexchange 问题什么过程创建了这个 X11 窗口?和哪个进程创建了这个没有关联 PID 的窗口?。
答案2
使用 gnome-calculator 的示例,许多人都有 deb 和 snap 格式:
如何分别调用每一个:让我们找到完整的路径。
$ which -a gnome-calculator # -a keeps searching after the first hit /usr/bin/gnome-calculator /snap/bin/gnome-calculator $ whereis -b gnome-calculator # -b returns binaries only gnome-calculator: /usr/bin/gnome-calculator /snap/bin/gnome-calculator
如何确定哪一个正在运行。在此示例中,两个都在运行。差异显而易见。
$ ps -x | grep gnome-calculator 69445 ? Sl 0:05 /snap/gnome-calculator/748/usr/bin/gnome-calculator 69549 pts/0 Sl 0:01 gnome-calculator 69727 pts/0 S+ 0:00 grep --color=auto gnome-calculator $ pgrep -af gnome-calculator 69445 /snap/gnome-calculator/748/usr/bin/gnome-calculator 69549 gnome-calculator