如果我同时通过 snap 和 APT 安装了一个应用程序,我如何知道当前正在运行的是哪个应用程序?

Ste*_*ria 13 snap

如果我要安装相同的应用程序作为 snap 和使用 APT,我如何能够分别调用每个应用程序以及我如何知道哪个正在运行?

我还不完全相信 snap 最适合最终用户,并想比较几个软件包的性能。

van*_*ium 12

分别调用

您可以通过提供可执行文件的完整路径名来启动特定版本的应用程序。例如,使用 APT 安装的 Firefox 将由/usr/bin/firefox. snap 应用程序的可执行文件在下面,/snap/bin/因此/snap/bin/firefox将启动 snap 版本。

键入firefox将启动 APT 版本,因为/usr/bin它在搜索路径中比/snap/bin在默认 Ubuntu 安装中更早列出。默认路径是:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Run Code Online (Sandbox Code Playgroud)

当您简单地键入 时firefox,系统会搜索每个连续的目录(文件夹),直到firefox找到具有该名称的可执行文件。如果安装了 APT 版本,它会/usr/bin在搜索之前找到可执行文件/snap/bin,因此将停止搜索并启动该可执行文件。

您可以了解将使用该命令启动哪个可执行文件which

$ which firefox
/usr/bin/firefox
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令了解您安装了哪些可执行文件whereis

$ whereis firefox
firefox: /usr/bin/firefox /usr/lib/firefox /etc/firefox /snap/bin/firefox /usr/share/man/man1/firefox.1.gz
Run Code Online (Sandbox Code Playgroud)

在这里,APT 和 Firefox 的 snap 版本都安装了。

知道哪个正在运行

运行进程

该命令ps ax列出了所有正在运行的进程。因此:

ps ax | grep firefox
Run Code Online (Sandbox Code Playgroud)

将列出名称为“firefox”的所有进程。输出包括可执行文件的完整路径名。

特定窗口的创建者

还可以识别特定窗口的创建者,以了解打开的窗口是来自 APT 还是 snap 版本。然而,这相当复杂并且并不总是可靠的。请参阅 Unix & Linux Stackexchange 问题是什么进程创建了这个 X11 窗口?什么样的过程产生,没有PID此窗口关联?.


use*_*733 8

使用 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
    
    Run Code Online (Sandbox Code Playgroud)
  • 如何确定哪个正在运行。在这个例子中,两者都在运行。区别很明显。

    $ 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
    
    Run Code Online (Sandbox Code Playgroud)