Иногда бывает так, что получаешь доступ по ssh к судалённому компьютеру, но не знаешь, с каким дистрибутивом имеешь дело...
Есть два простых способа получить эту информацию, cамый простой и универсальный способ, это посмотреть на вывод gcc:
$ gcc --v
Тут всё правильно. Debian и Gentoo. А вот с форком дистрибутива Slackware - Zenwalk не всё так гладко:
С виду это Slackware. А различий у них достаточно. Хотя бы тот же пакетный менеджер netpkg. Да и другие детали. Хотя, что знает основной дистрибутив, конечно не потеряется и в форке. Но лучше быть готовым и знать, с чем конкретно имеешь дело.
Поэтому, этим не ограничимся. По выводу gcc мы лишь предварительно можем представить себе платформу. Теперь посмотрим на способ посложнее. Чтобы более точно узнать название дистрибутива, нужно в консоли выполнить нижеследующее:
grep -ihs "buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus" /etc/{issue,*release,*version}
Ну вот, теперь и версии дистрибутив показывает, и более точно выводит название дистрибутива:
Это действительно Zenwalk 5.2.
Многие дистрибутивы так же можно идентифицировать командой lsb_release:
lsb_release -a Distributor ID: Debian Description: Debian GNU/Linux unstable (sid) Release: unstable Codename: sid
Но многие, это не все.
Комментариев: 8 RSS
1vovans17-01-2010 21:56
Забавно, однако. Захотел я проверить по ssh, на чём же у хостера сервак крутится, где этот сайт расположен. И второй способ ничего не вывел! Наверно припрятали инфу )) но gcc --v врать не любит ))) Выдал всё с потрохами :-P
Знаю, что есть много других способов узнать дистр, но один из этих двух точно выведет требуемую информацию. Не надо особо мудрить и копаться в системе :)
2AUNA18-01-2010 00:55
Знаю, что есть много других способов узнать дистр
Хозяина взять за грудки и потрясти, хорошенько! Всё расскажет! :)
3vovans18-01-2010 18:17
не всегда хозяин известен или доступен )) Да и попроще способы есть )))))
кстати, недавно озадачился, не только как название дистрибутива узнать, но нужно было выяснить 32 или 64 бита оный... В общем, помог только gcc --v. Вот x64:
4Twin26-02-2011 17:02
Еще как вариант можно посмотреть в папке etc
К примеру, у меня CentOS (форк Redhat насколько я понял), в папке /etc/ лежит файл redhat-release
gcc --v вернул что это RedHat 4.1.2-48
Далее:
Еще как вариант:
Еще вариант:
5vovans26-02-2011 17:22
Не всегда есть доступ к /etc.
Одно дело, если у вас на работе какая-то машина не понятно с чем, крутится и крутится, уже все забыли, что там.
А вот если на хостинге определить, что за зверь? :) Кто вас пустит в /etc? :)
6Twin26-02-2011 17:53
У меня простая ситуация, взял у хостера тариф с виртуальной машиной - как результат я там рут. Вариант с etc мне подошел.
7Дима Гуров02-11-2011 16:08
8usermint19-08-2012 13:20
Kaspersky Rescue CD (KRD) и Dr.Web Live CD построены на базе Gentoo (при начальной загрузке видно). Многие команды не принимаются KRD, в том числе и man, не говоря о gcc --v. Что делать в таких случаях? Кстати, кто-нибудь знает список рабочих команд в консоли KRD (на сайте Kaspersky не нашла)?