SDB:Определение версии openSUSE

Перейти к: навигация, поиск
В этой статье описываются пути определения версии работающей системы

Путь GUI

Откройте /etc/os-release в предпочитаемом текстовом редакторе.


Путь командной строки

Откройте терминал и выполните команду

cat /etc/os-release


В обоих случаях должно получиться нечто-то похожее:

NAME="openSUSE Leap"
VERSION="42.3"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.3"
PRETTY_NAME="openSUSE Leap 42.3"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.3"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

Дополнительные примеры того, как выглядит этот файл в различных дистрибутивах openSUSE и SUSE Linux, можно найти в статье SDB:SUSE_and_openSUSE_Products_Version_Outputs.


Для скриптов оболочки

Проще всего просто подключите файл и проверить переменные которые он задает, например

. /etc/os-release
if test "$ID" = "opensuse"
then
    ...
elseif test "$ID" = "arch"
then
    ...

Файл _/etc/os-release_ крайне прост в использовании. Использование grep или sed для этих же целей обычно работает медленнее. Тем не менее, в случае когда включение данного файла в ваш скрипт нежелательно (или невозможно), например, для совместимости с POSIX стандартом, устранения потенциального конфликта имён или для более жёсткого контроля далее приведен код для извлечения идентификатора дистрибутива:

osrel=$(sed -n '/^ID=/s/^.*=//p' /etc/os-release);

if test "$osrel" = "opensuse"
then
    ...
elseif test "$osrel" = "arch"
then
    ...

32 и 64 бит

Красивое имя дистрибутива указывающее на его принадлежность к 32- или 64-битной системе включает в себя упоминание в скобках строки i586 или x86-64. Более новые версии не включают эту информацию, так как они имеют поддержку только 64-битных систем. Stackoverflow предлагает использовать _uname -m_ или _getconf LONG_BIT_. Результат первой команды основывается на используемом аппаратном обеспечении, а вторая битность запущенного ПО. То есть для 32-разрядного Linux, работающего на платформе, которая может исполнять как 32, так и 64-разрядные вычислительные операции uname выдаст строку _x86_64_, а getconf — 32.


Примеры

Определение версии SUSE и openSUSE