суббота, 27 июня 2009 г.

Какой дистрибутив установлен linux на компьютер

можно узнать с помощью утилиты lsb_release.
Пример использования

$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
Если этой утилиты в исследуемой системе нет, то версию дистрибутивов, основанных на Debian/RedHat/Gentoo можно узнать так (спасибо Ярославу Шаповалу)
$ cat /etc/*release*
в дистрибутивах, основанных на Slackware
$ cat /etc/slackware-version
в SUSE
$ cat /etc/issue

12 комментариев:

f_andrey комментирует...

А зачем такие сложности uname -a уже не модно?

Sergei Danilov комментирует...

uname -a не показывает версию дистрибутива ,
он показывает версию ядра.
А такая утилита крайне полезная, когда надо узнать автоматом бренд и версию дистра.Интересно откуда она берет данные ??

Владимир Долженко комментирует...

gentoo:
$ lsb_release
bash: lsb_release: команда не найдена
что в общем-то не удивительно.

Quazz комментирует...

arch:
lsb_release -irc
bash: lsb_release: команда не найдена
З.Ы. а даже если б сработало, что оно смогло бы сказать про версию дистрибутива?

EvilFaeton комментирует...

Arch:
$ lsb_release
bash: lsb_release: команда не найдена

Это работает, если не ошибаюсь только в Debian-based дистрибутивах.

А данные берет из /etc/release вроде.

Князь комментирует...

Команда работает в основанных на Debian или Red Hat дистрибутивах. Самосборные дистры вроде gentoo или arch естественно идут лесом.
Информация, по крайней мере в Ubuntu, берётся из файла /etc/lsb-release.

f_andrey комментирует...

2 Князь

Свеженький Деб(Ленни) говорит что не знает такой команды, так что способ совсем плох ;)
Предлагаю все таки объяснить чем плоха
uname -a
тем что для ее понятия надо знать зоть немного?

Князь комментирует...

Для альтернативно одаренных:
$ sudo apt-get install lsb-release

Князь комментирует...

uname -a не выдает информации каким конкретно дистрибутивом (версия, кодовое название и т.п.) вы пользуетесь.

f_andrey комментирует...

> Для альтернативно одаренных

ну в комплекте то ее нет :р

А насчет того что uname не отдает версии дистрибьютива, так это жесть, эх все в этом линуксе не по человечески :)

Ярослав Шаповал комментирует...

Для Debian-, RedHat-, Gentoo-based дистрибутивов посмотреть
$ cat /etc/*release*
для Slackware
$ cat /etc/slackware-version
Для Suse
$ cat /etc/issue
Более универсально, имхо.

bioex комментирует...

lsb-release установлен не всегда, хотя попробовать стоит.

/etc/*release* в дебиане кажется создает только debian-edu-config (ну, еще svn-autoreleasedeb, но он вообще не в тему).

честно говоря, универсальнее чем dmesg | head (или, если dmesg заспамлен сообщениями, head /var/log/dmesg, если нет этого файла то -- /var/run/dmesg.boot) ничего не видел. Это то что реально можно быстро использовать для пользы дела (определить с каким юниксом имеешь дело).

а потом уже можно и release-файлы поискать и sources.list почитать