Как получить версию GNOME?

Как получить версию GNOME?

Естьавторитетный способ получить версию 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);
}

Сейчас идут споры о том, было ли это правильным решением, см.
info-overview: переименовать «Версию GNOME» в «Версию оболочки GNOME»
Обратите внимание, что вступление к этой дискуссии подтверждает то, о чем я говорил все это время:

Версия 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>

Файл является частью пакета upstream, который называетсяgnome-desktop(обратите внимание, что некоторые дистрибутивы разбивают его на несколько пакетов, поэтому в вашем дистрибутиве файл может оказаться в пакете с другим именем...)

GNOMEРазработчикииспользуйте этот файл, чтобы получить номер версии DE и отобразить егов System Settings(aka 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 desktopкомпоненты, это отдельные пакеты (с разным кодом, историей/журналом изменений и сопровождающими), и поэтому их версии могут отличаться. Они сообщат правильную GNOMEверсиютолько если у них одинаковая версиякак gnome-desktop(что не всегда так).

решение2

При запуске gnome-system-monitorв диалоговом окне отображается версия:

% gnome-system-monitor

Мой старый корпус Fedora 14

            ss монитора диалога fedora

Убунту 12.04

             ss диалога монитора ubuntu

решение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:

введите описание изображения здесь

Что в моей системе дает:

введите описание изображения здесь

Связанный контент