在 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 编写的程序将使用libgdk
和libgtk
,而为 KDE 编写的程序将使用libQtCore
和libQtGui
。
在安装程序之前,如何才能轻松知道程序是否具有这些依赖项?
有没有更好的解决方案来了解程序是否有任何特定的 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
它可以提供更多信息。该脚本可能会因“过渡包”而失败。