如何知道软件是否有 KDE 或 GNOME 依赖项?

如何知道软件是否有 KDE 或 GNOME 依赖项?

我了解到桌面独立应用程序和桌面相关应用程序。

在 Fedora 论坛主题中Gnome 与 KDE 应用程序有这个:

请记住“KDE 应用程序”和“Qt 应用程序”以及“GNOME 应用程序”和“GTK+ 应用程序”之间的区别。其实很简单。GTK+ 和 Qt 分别是与 GNOME 和 KDE 相关的图形工具包(嗯,主要是;如今,两者都已经在这个领域之外萌发了不少功能)。一个应用程序仅有的使用 GTK+ 提供的资源是 GTK+ 应用程序,而不是 GNOME 应用程序;您无需安装任何适当的 GNOME 即可安装或使用它。Qt 和 KDE 也是如此 - 您可以编写一个应用程序,使其仅有的使用 Qt 工具包,但不使用任何 KDE 功能,因此它是一个 Qt 应用程序,而不是 KDE 应用程序。

实际上,任何“GNOME 应用程序”也是“GTK+ 应用程序”,任何“KDE 应用程序”也是“Qt 应用程序”,但反之则不然。在 GNOME 上运行 Qt 应用程序或在 KDE 上运行 GTK+ 应用程序不太可能导致任何功能缺失,并且与在 GNOME 上运行 KDE 应用程序或在 KDE 上运行 GNOME 应用程序相比,资源使用量的增长会更低。在 KDE 上运行 GTK+ 应用程序尤其常见,尤其是因为所有 Fedora 配置工具和 PackageKit 都是 GTK+ 应用程序。

它还指出:

有些人喜欢只安装他们运行的桌面上的应用程序,以确保他们不会意外使用非原生应用程序、占用额外内存或错过功能等。这实际上是一种个人偏好问题,取决于你对“另一边”应用程序的依赖程度。

我可能就是其中之一。因此,我需要知道软件是否具有特定的 KDE 或 GNOME 桌面环境依赖项在安装之前

我发现KDE 应用程序如何在 GNOME 下运行?为 GNOME 编写的程序将使用libgdklibgtk,而为 KDE 编写的程序将使用libQtCorelibQtGui

在安装程序之前,如何才能轻松知道程序是否具有这些依赖项?

有没有更好的解决方案来了解程序是否有任何特定的 DE 依赖项?

答案1

这是一个可能有用的小脚本:

#!/bin/bash

echo "enter Package"
read Package

apt-cache depends --no-pre-depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances $Package | grep -E "(qt|gtk|kde)"

我叫它討厭并将其保存到〜/箱在我的$PATH 并使其可执行。如果你没有〜/箱在你的$PATH,您可以使用$HOME/path/to/script/zzxx(并为其创建别名)。

示例输出:

$ zzxx
enter Package
chromium-browser
  Depends: libgtk-3-0
$ zzxx
enter Package
evince
  Depends: libgtk-3-0
$ zzxx
enter Package
firefox
  Depends: libgtk-3-0
$ zzxx
enter Package
lxappearance
  Depends: libgtk2.0-0
$ zzxx
enter Package
qterminal
qterminal
  Depends: libqt5core5a
  Depends: libqt5dbus5
  Depends: libqt5gui5
  Depends: libqt5widgets5
  Depends: libqt5x11extras5
  Depends: libqtermwidget5-0
$ zzxx
enter Package
vlc
  Depends: vlc-plugin-qt
$ 

第一个链接中描述为“桌面独立”的程序,例如自由办公室运行脚本时可能会出现空白。

$ zzxx
enter Package
libreoffice
$

笔记:

  • 您需要使用适当的大小写(大多数是小写)输入正确的包名称,这apt search有利于此目的。

  • 该脚本显然只对您启用的存储库中可用的软件起作用。

  • 我使用apt-cache depends而不是apt depends来避免出现常规消息:“警告:apt 没有稳定的 CLI 界面。在脚本中请谨慎使用。”

  • 例如,该脚本不能代替查看整个输出,但apt show firefox它可以提供更多信息。

  • 该脚本可能会因“过渡包”而失败。

相关内容