
有沒有一個取得 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 建議:
在我的系統中,給出: