有没有一个获取 GNOME 版本的权威方法,只要我有一个正在运行的 GNOME 桌面(任何版本)?几个这些建议在我的系统上不起作用,要么是因为可执行文件和/或包根本不存在,要么菜单项不可用。
答案1
对于GNOME 4
,他们使用gnome-shell
版本。如果我们看一下源代码我们可以看到他们在>面板中将版本报告gnome-shell
为“GNOME 版本” :Settings
Info
static char *
get_gnome_version (GDBusProxy *proxy)
{
g_autoptr(GVariant) variant = NULL;
const char *gnome_version = NULL;
if (!proxy)
return NULL;
variant = g_dbus_proxy_get_cached_property (proxy, "ShellVersion");
if (!variant)
return NULL;
gnome_version = g_variant_get_string (variant, NULL);
if (!gnome_version || *gnome_version == '\0')
return NULL;
return g_strdup (gnome_version);
}
现在有一场争论这是否是正确的做法,请参阅
信息概述:将“GNOME 版本”重命名为“GNOME Shell 版本”
请注意该讨论的介绍证实了我一直在说的话:
GNOME 版本和 GNOME Shell 版本不是一回事......
如果他们将来再次改变它,我不会感到惊讶。在那之前,获取 Gnome DE 版本意味着获取 gnome-shell 版本,因此请使用
gnome-shell --version
或者
busctl --user get-property org.gnome.Shell /org/gnome/Shell org.gnome.Shell ShellVersion
在 中GNOME 3
,版本存储在该文件中:
/usr/share/gnome/gnome-version.xml
内容(在我的系统上):
<?xml version="1.0" encoding="UTF-8"?>
<gnome-version>
<platform>3</platform>
<minor>6</minor>
<micro>2</micro>
<distributor>Arch Linux</distributor>
<date>2012-11-13</date>
</gnome-version>
该文件是上游包的一部分,名为gnome-desktop
(请注意,某些发行版将其分成几个包,因此在您的发行版上,该文件可能最终会出现在具有不同名称的包中......)
GNOME
开发商使用此文件获取DE版本号并显示在System Settings
(又名gnome-control-center
)。所以获取GNOME
版本“官方方式”意味着解析所述文件并提取platform
,minor
和micro
值。
如果您使用该文件,您可以立即看到结果:)
GNOME 2
在有问题的文件中是:
/usr/share/gnome-about/gnome-version.xml
Gnome 2
(尽管这个文件在某些旧版本 IIRC上可能会丢失)
请注意,对于 GNOME v.2 和 v.3 命令,如gnome-session --version
、gnome-shell --version
等gdm --version
可能会返回令人困惑的数字。这些是 GNOME 桌面成分,它们是独立的软件包(具有不同的代码、历史/变更日志和维护者),因此它们的版本可能不同。他们会报告正确的GNOME
版本仅当它们具有相同版本时作为gnome-desktop
(情况并非总是如此)。
答案2
如果启动,gnome-system-monitor
它会在对话框中显示版本:
% gnome-system-monitor
我老化的 Fedora 14 盒子
乌班图12.04
答案3
$ apt-cache show gnome-shell | grep Version
(生动或狡猾)
答案4
为了非常新的 Gnome 系统(>40ish),建议的文件 @don_crissti 的回答不再在这里了:
~$ cat /usr/share/gnome/gnome-version.xml
cat: /usr/share/gnome/gnome-version.xml: No such file or directory
我认为更安全的方法是遵循官方 GNOME 建议:
在我的系统中,给出: