идентификация релиза (дистрибутива)

Детальный разбор дистрибутивов и других UNIX-like ОС

Модераторы: Olej, bellic, adminn, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

идентификация релиза (дистрибутива)

Непрочитанное сообщение Olej » 08 дек 2012, 23:56

Об этом писали много здесь, но время проходит, дистрибутивы меняются... да и раскидано оно по разным углам...

Как адекватно + наилучшим образом (наиболее точно) диагностировать версию-релиз в котором выполняется какое-то действие?

Способов много, хорошо бы их сгруппировать как-то

1. общеупотребимо:

Код: Выделить всё

bash-4.2$ uname -a
Linux notebook 3.5.2-1.fc17.i686.PAE #1 SMP Wed Aug 15 16:30:14 UTC 2012 i686 i686 i386 GNU/Linux
Но это версия ядра и + другая сопутствующая информация (hostname etc.) - очень полезно, но к дистрибутивам отношения не имеет.

2. дистрибутиво зависимые способы в /etc - что-то типа:

Код: Выделить всё

[olej@nvidia VB]$ cat /etc/fedora-release 
Fedora release 15 (Lovelock)

Код: Выделить всё

bash-4.2$ cat /etc/fedora-release 
Fedora release 17 (Beefy Miracle)

Код: Выделить всё

olej@debian:~$ cat /etc/debian_version 
wheezy/sid
3. дистрибутиво независимый способ в связи ;-) с systemd:

Код: Выделить всё

bash-4.2$ cat /etc/system-release 
RFRemix release 17 (Beefy Miracle)
Деятели от systend пообещали: "у кого не будет /etc/system-release - у того не заработает systend" ;-)

4. это работает везде?

Код: Выделить всё

bash-4.2$ lsb_release -a
LSB Version:	:core-4.1-ia32:core-4.1-noarch:cxx-4.1-ia32:cxx-4.1-noarch:desktop-4.1-ia32:desktop-4.1-noarch:languages-4.1-ia32:languages-4.1-noarch:printing-4.1-ia32:printing-4.1-noarch
Distributor ID:	RFRemix
Description:	RFRemix release 17 (Beefy Miracle)
Release:	17
Codename:	BeefyMiracle
Что ещё?

И покажите как это выглядит в ваших дистрибутивах! Скидывайте сюда диагностику из разных дистрибутивов.

cema
Писатель
Сообщения: 246
Зарегистрирован: 14 июн 2012, 06:01
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение cema » 09 дек 2012, 09:29

Насколько я знаю, для всех дистрибутивов Linux существует файл issue, который находится в каталоге /etc. В нем будет запись о дистрибутиве в виде типа :
Debian GNU/Linux wheezy/sid

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение Olej » 09 дек 2012, 14:56

cema писал(а):Насколько я знаю, для всех дистрибутивов Linux существует файл issue, который находится в каталоге /etc. В нем будет запись о дистрибутиве в виде типа :
Debian GNU/Linux wheezy/sid

Код: Выделить всё

bash-4.2$ cat /etc/issue
RFRemix release 17 (Beefy Miracle)
Kernel \r on an \m (\l)
А что это было во 2-й строке?

cema
Писатель
Сообщения: 246
Зарегистрирован: 14 июн 2012, 06:01
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение cema » 09 дек 2012, 17:58

Olej писал(а):
cema писал(а):Насколько я знаю, для всех дистрибутивов Linux существует файл issue, который находится в каталоге /etc. В нем будет запись о дистрибутиве в виде типа :
Debian GNU/Linux wheezy/sid

Код: Выделить всё

bash-4.2$ cat /etc/issue
RFRemix release 17 (Beefy Miracle)
Kernel \r on an \m (\l)
А что это было во 2-й строке?
Информация находится на этом же сайте, где и форум :-) http://rus-linux.net/nlib.php?name=/MyL ... 03-07.html
В файле issue могут присутствовать определенные последовательности символов, предназначенные для отображения различной информации. Все управляющие последовательности, указываемые в файле issue, состоят из обратного слеша (\), за которым идет один их символов, приведенный ниже (так \d, присутствующий в файле /etc/issue, будет вставлять текущую дату)
r Вставка номера релиза ядра, например, 2.6.11.12.

m Вставка идентификатора архитектуры системы, например, i686.
И с помощью файла issue можно настроить вывод информации при входе в систему, ну там по ссылке все написано, что к чему.

cema
Писатель
Сообщения: 246
Зарегистрирован: 14 июн 2012, 06:01
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение cema » 09 дек 2012, 23:13

Ещё в каталоге /etc есть файл os-release, по крайней мере так он называется в Debian (к примеру в том же LFS его назвали lfs-release), его содержание:

Код: Выделить всё

PRETTY_NAME="Debian GNU/Linux wheezy/sid"
NAME="Debian GNU/Linux"
ID=debian
ANSI_COLOR="1;31"

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение Olej » 09 дек 2012, 23:19

cema писал(а):Ещё в каталоге /etc есть файл os-release, по крайней мере так он называется в Debian (к примеру в том же LFS его назвали lfs-release), его содержание:

Код: Выделить всё

PRETTY_NAME="Debian GNU/Linux wheezy/sid"
NAME="Debian GNU/Linux"
ID=debian
ANSI_COLOR="1;31"

Код: Выделить всё

bash-4.2$ cat /etc/os-release
NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
PRETTY_NAME="Fedora 17 (Beefy Miracle)"
ANSI_COLOR=0;34
Так это зависимый от дистрибутива файл, или нет?

cema
Писатель
Сообщения: 246
Зарегистрирован: 14 июн 2012, 06:01
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение cema » 09 дек 2012, 23:27

Olej писал(а):Так это зависимый от дистрибутива файл, или нет?
Насколько это известно мне, различные типы дистрибутивов поддерживают собственные наборы файлов дистрибутивов.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение Olej » 09 дек 2012, 23:40

cema писал(а):
Olej писал(а):Так это зависимый от дистрибутива файл, или нет?
Насколько это известно мне, различные типы дистрибутивов поддерживают собственные наборы файлов дистрибутивов.
Это понятно, что "различные типы дистрибутивов поддерживают собственные наборы файлов дистрибутивов"(с) ;-)
Но я спрашиваю здесь только о способах (это чуть шире даже чем файлы) иденификации: садитесь вы за терминал неизвестного Linux и нужно выяснить "кто он?".

Есть собственные причуды, которые придумали сборщики своего дистрибутива (как они придумали и дистрибутив). Ио есть общие правила, неизменные, не зависящие от выдумщиков ;-) .

Код: Выделить всё

$ u_n_a_m_e -a
...
- идентифицирует ядро независимо от дистрибутива.

Код: Выделить всё

bash-4.2$ ls /boot/vmlin*
/boot/vmlinuz-3.5.2-1.fc17.i686  /boot/vmlinuz-3.5.2-1.fc17.i686.PAE
- тоже идентифицирует ядро, но это уже не правило, а дань традициям.

Наличие /etc/system-release - это тоже становится обязательным требованием для всех, кто будет использовать systemd ... а вскоре, похоже, это будут - все.

А есть совершенно экзотические, дистрибутивозависимые идентификации, такие как /etc/fedora-release или cat /etc/debian_version.

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение dmitriev » 10 дек 2012, 07:26

Есть собственные причуды, которые придумали сборщики своего дистрибутива (как они придумали и дистрибутив). Но есть общие правила, неизменные, не зависящие от выдумщиков.
Это нужно спецификацию POSIX посмотреть.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: идентификация релиза (дистрибутива)

Непрочитанное сообщение Olej » 10 дек 2012, 11:17

dmitriev писал(а):Это нужно спецификацию POSIX посмотреть.
Стандарт сам (точнее группу стандартов) смотрим вот здесь: http://pubs.opengroup.org/onlinepubs/9699919799/
Только стандарт POSIX не регламентирует такие вещи (или такую детализацию).
Даже в такой вещи как общая структура файловой системы POSIX говорит только об иерархической структуре от корня "/":
10. Directory Structure and Devices
Тот же каталог /sys - это совершенно Linux "находка". ;-)
Не говоря уже о последнем /run ...

POSIX толком оговаривает детально:
- интерфейс программных вызовов (API), POSIX.1;
- систему консольных команд, POSIX.2;
Для уровня совместимости/переносимости этого им достаточно.

Ответить

Вернуться в «Дистрибутивы Linux и родственные ОС»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей