Ответы:
Боюсь, нет стандартизированного способа проверить это. Кажется, у каждого дистрибутива есть свой способ объявить свою версию. Вы можете попробовать:, cat /etc/*releaseэто может работать на нескольких системах. Также /etc/issueможет содержать информацию о распространении.
lsb_release -a должен работать на большинстве дистрибутивов.
lsb_release -i -sработает на большинстве систем, которые у меня есть, только чтобы получить идентификатор поставщика. К сожалению, lsb_release не является частью базовой установки на моих небольших / встраиваемых системах, поэтому сначала нужно проверить ее.
lsb-releaseпакете, который, действительно, не по умолчанию. Его отсутствие - сильный индикатор Debian. :-)
lsb_releaseне существует в некоторых новых производных RHEL6, таких как Scientific Linux 6.1 или Fedora Linux 16.
uname -o
Двоичный файл uname встречается почти во всех системах Linux, а флаг -o делает все возможное, чтобы вернуть вам операционную систему. lsb_release тоже работает, но не так вездесущ.
uname -o, а затем, если это возвращается просто как GNU / Linux, run lsb_release -i -sработает во всех моих системах.
Если вы используете -aфлаг uname, он должен работать большую часть времени. Например, на моей текущей машине Ubuntu uname -aпечатает:
Linux clark-laptop 2.6.35-25-generic #43-Ubuntu SMP Thu Jan 6 22:25:21 UTC 2011 x86_64 GNU/Linux
cat /etc/*releaseи/etc/issueдайте мне точную информацию, которая мне нужна.