61

Is there an authoritative way to get the GNOME version, as long as I have a working GNOME desktop (any version) running? Several of these suggestions don't work on my system, either because the executables and/or packages simply don't exist or the menu item isn't available.

l0b0
  • 51,350

6 Answers6

70

For GNOME 4, they use gnome-shell version. If we look at the source code we can see they are reporting the gnome-shell version as the "GNOME version" in the Settings > Info panel:

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); }

There's a debate right now whether this was the right thing to do, see
info-overview: rename "GNOME Version" to "GNOME Shell Version"
Note the intro to that discussion confirms what I've been saying all the time:

The GNOME version and the GNOME Shell version are not the same thing...

It wouldn't surprise me if they change it again in the future. Until then, to get the Gnome DE version means to get the gnome-shell version so use either

gnome-shell --version

or

busctl --user get-property org.gnome.Shell /org/gnome/Shell org.gnome.Shell ShellVersion

In GNOME 3, version is stored in this file:

/usr/share/gnome/gnome-version.xml

content (on my system):

<?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>

The file is part of the upstream package called gnome-desktop (note that some distros split it into several packages so on your distro the file may end up in a package with a different name...)

GNOME developers use this file to get the DE version number and display it in System Settings (aka gnome-control-center). So getting GNOME version "the official way" means parsing the said file and extracting platform, minor and micro values.

If you play with that file you can instantly see the results :)

enter image description here

In GNOME 2 the file in question is:

/usr/share/gnome-about/gnome-version.xml

(though this file might be missing on some older Gnome 2 versions IIRC)


Note that for GNOME v.2 & v.3 commands like gnome-session --version, gnome-shell --version, gdm --version etc might return confusing numbers. Those are GNOME desktop components, they are separate packages (with different code, history/changelog and maintainers) and as such their version may be different. They'll report the right GNOME version only if they have the same version as gnome-desktop (which is not always the case).

don_crissti
  • 82,805
  • 1
    A friendly update: as of this writing, Debian Stretch (Testing) seems to provide file /usr/share/gnome/gnome-version.xml in package gnome-desktop3-data . To see installation history, on Debian: zgrep " installed" /var/log/dpkg.log* | grep "gnome-desktop3-data" | cut -d':' -f2- | sort -r – iokevins May 30 '16 at 18:36
  • 1
    @iokevins - possible... but I'm not using debian/ubuntu/derivatives and my post isn't distro-specific: upstream, there is only one package and that is gnome-desktop; some distros may chose to split the package and call the parts whatever. I'll edit my post to be more specific. – don_crissti May 30 '16 at 19:39
  • I see it now--appreciate the clarification; thank you! – iokevins Jun 02 '16 at 21:57
  • here is a bash example using xmlstarlet to query the XML in the files to which @don_crissti points. – TomRoche Feb 07 '17 at 03:44
  • 1
    Thanks, @don_crissti. Here is a Python 3 script to retrieve the info from that XML: gnome-version.py – Luciano Ramalho Apr 30 '17 at 01:45
3

If you launch gnome-system-monitor it shows the version in the dialog:

% gnome-system-monitor

My aging Fedora 14 box

            ss of monitor dialog fedora

Ubuntu 12.04

             ss of monitor dialog ubuntu

slm
  • 369,824
1
$ apt-cache show gnome-shell | grep Version

(Vivid or Wily)

Michael Mrozek
  • 93,103
  • 40
  • 240
  • 233
Brad
  • 27
0

For very new Gnome systems (>40ish), the file suggested in @don_crissti's answer is not here anymore:

~$ cat /usr/share/gnome/gnome-version.xml                          
cat: /usr/share/gnome/gnome-version.xml: No such file or directory

I think that the safer way is to follow the official GNOME suggestion:

enter image description here

Which, in my system, gives:

enter image description here

Rmano
  • 3,425
  • 1
    they changed the way they report the gnome version, it's now the same as the shell version. I've updated my post. – don_crissti Jan 08 '23 at 19:43
0

Try gnome-session --version. There is a man page for it on my Debian (namely GNOME-SESSION(1)) but the --version option is not listed. Well, for me it says gnome-session 3.4.2.1.

You can run it in the console

DISPLAY=":0" gnome-session --version

(possibly having to change the display).

Emanuel Berg
  • 6,903
  • 8
  • 44
  • 65
  • This reports 3.2.1, and gnome-system-monitor reports 3.4.2, so it doesn't look right. And my distro is fully up to date. – l0b0 Apr 22 '13 at 05:33
  • See don_crissti's answer. On my system, /usr/share/gnome/gnome-version.xml has 3.4.2 in it. gnome-session --version reports 3.4.2. gnome-system-monitor reports 3.4.1. based on that and a rough morning I'd say gnome-system-monitor is junk. Further exploring shows that the gnome-system-monitor version (not the gnome version) is 3.4.1.... so that's what that's reporting. Further exploration in my package manager, shows that I have, even with an up-to-date system, a mixture of 3.4.0 (gnome-common), 3.4.1 (gnome-shell) and 3.4.2(gnome-desktop3, gnome-session etc.) components. – SuperMagic Apr 22 '13 at 11:47
  • @SuperMagic: Those numbers are fairly consistent, although it is irritating not to be able to get a definite answer. My /usr/share/gnome/gnome-version.xml says 3.4.2, but gnome-session --version says 3.4.2.1 so that's sort of correct (?). Maybe the morale of all of this is that the version isn't holy; it is just a number. – Emanuel Berg Apr 22 '13 at 22:39
-5

"gnome-shell --version" is showing 3.28.3 in my terminal window.

sjurk
  • 1
  • 2
    I want to call your attention to another answer which says "no, you shouldn't use commands like gnome-session --version, gnome-shell --version, gdm --version etc. Those are GNOME desktop components, they are separate packages (with different code, history/changelog and maintainers) and as such their version may be different." – Jeff Schaller Jul 18 '21 at 15:50
  • Thx. I see what you mean, my xml; 3.28.2 and by command: 3.28.3. – sjurk Jul 18 '21 at 16:06