O kernel é detectado universalmente com uname
:
$ uname -or
2.6.18-128.el5 GNU/Linux
Não existe realmente uma forma de distribuição cruzada para determinar em qual distribuição e versão você está. Houve tentativas de tornar isso consistente, mas no final varia, infelizmente. As ferramentas LSB fornecem essas informações, mas ironicamente não são instaladas por padrão em todos os lugares. Exemplo em um sistema Ubuntu 9.04 com o pacote lsb-release
instalado:
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
Caso contrário, o método mais próximo disponível é a verificação de /etc/something-release
arquivos. Eles existem na maioria das plataformas comuns e em seus derivados (ou seja, Red Hat e CentOS).
Aqui estão alguns exemplos.
O Ubuntu tem /etc/lsb-release
:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"
Mas o Debian tem /etc/debian_version
:
$ cat /etc/debian_version
5.0.2
Fedora, Red Hat e CentOS têm:
Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)
Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)
newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
Gentoo:
$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1
Eu não tenho um sistema SUSE disponível no momento, mas acredito que seja /etc/SuSE-release
.
O Slackware tem /etc/slackware-release
e / ou /etc/slackware-version
.
O Mandriva tem /etc/mandriva-release
.
Para a maioria das distribuições populares,
$ cat /etc/*{release,version}
na maioria das vezes funciona. Desmontado e as instalações do "servidor" barebones podem não ter o pacote 'release' para a distribuição instalada.
Além disso, dois programas de terceiros que você pode usar para obter essas informações automaticamente são Ohai e Facter .
Observe que muitas distribuições têm esse tipo de informação em /etc/issue
ou /etc/motd
, mas algumas políticas de segurança e melhores práticas indicam que esses arquivos deve conter banners de notificação de acesso.
Relacionado: Como descobrir a versão do pacote de software instalado no nó? , puppet .