如何知道一个包是图形应用程序还是命令行应用程序?

如何知道一个包是图形应用程序还是命令行应用程序?

我正在使用 Ubuntu Server,因此我想在安装之前知道软件包是 GFX 还是 CLI。错误安装 GFX 应用程序会导致获取大量依赖项,而且它们无论如何都无法工作(由于缺少 X 服务器)。

答案1

对于已安装的应用程序,您可以关注我的其他答案


无论如何,文件(可执行文件、手册页和其他内容)的位置应该符合文件系统层次标准作为一项规则。

对于未安装的应用程序,我们可以采用上述方法,但我们将使用apt-file命令而不是dpkg

因此我们将采取以下措施:

  1. 安装apt-file

    sudo apt-get install apt-file
    
  2. 更新apt-file缓存:

    sudo apt-file update
    
  3. 使用以下命令列出所有包文件apt-file list(参见man apt-file(详情)并在/bin/sbin/usr/bin、目录/usr/sbin中查找文件/usr/games。因此我们可以使用以下命令:

    $ sudo apt-file list httpcode | grep -E "/bin/|/sbin/|/usr/games/"
    httpcode: /usr/bin/hc
    

    因此我们可以看到,在这个例子中/usr/bin/hc属于包。

  4. 列出所有手册页:

    $ sudo apt-file list httpcode | grep "/man/"
    httpcode: /usr/share/man/man1/hc.1.gz
    

    所以我们可以看到我们可以使用man hc

  5. 对于具有 GUI 的应用程序,我运行搜索*.desktop文件:

    $ sudo apt-file list httpcode | grep ".desktop"
    $
    

    在这种特殊情况下,它不会返回任何内容。

    但如果是真正的 GUI 应用程序(如 GNOME 终端),我们将尝试找到其*.desktop文件

    $ sudo apt-file list gnome-terminal | grep ".desktop$"
    gnome-terminal: /usr/share/applications/gnome-terminal.desktop
    

    我们看到它被找到了,所以它是一个 GUI 应用程序。

  6. 我们也可以使用以下命令检查第一级反向依赖关系

    $ apt-cache rdepends gnome-terminal | grep desktop
    ubuntu-gnome-desktop
    ubuntu-desktop
    ubuntukylin-desktop
    ubuntu-gnome-desktop
    cinnamon-desktop-environment
    ubuntu-desktop
    

    - 因此 GNOME 终端需要通常在 Xorg 上运行的 DE。

对于未安装的软件包,可以访问https://packages.ubuntu.com并使用搜索包目录这里(对于所有版本精选版本),然后点击文件列表表格右栏中的链接:

文件列表链接

并将获得文件列表:

httpcode 包的文件列表

此列表可以手动解释,也可以使用浏览器中的搜索栏进行解释。

相关内容