Como se identifica a distro linux em uso?

3

O que eu normalmente faço para, pelo menos, ter uma ideia de qual ramo estamos falando, eu tento executar apt-get , pacman , yum e todos os outros gerenciadores de pacotes comuns que eu consigo lembrar da minha cabeça, mas tenho certeza que há uma maneira melhor, então: Existe uma maneira simples de, usando apenas o shell, identificar em qual distribuição linux você acabou de entrar?

    
por Jarmund 19.06.2015 / 01:27

4 respostas

3

Depende da distro.

Debian e parentes usam

     lsb_release -a
     cat /etc/lsb-release

qualquer um deve estar bem. Mas, apesar de isso estar relacionado ao LSB (Linux Standard Base), nem todas as distribuições o possuem. Se você não receber resposta dos comandos acima, você deve tentar

      ls /etc/*release

e depois olhe dentro do arquivo que você encontrou. Você deve ter cuidado com isso: enquanto o RedHat tem o / etc / redhat-release, outros, como o Arch Linux, possuem um arquivo vazio / etc / arch-release, e o que contém as informações você está procurando por / etc / os-release .

Então, YMMV.

    
por 19.06.2015 / 08:46
2

Pode não ser infalível, mas /proc/version deve, pelo menos, dar-lhe uma estimativa:

Redhat derivative:

# cat /proc/version 
Linux version 2.6.18-92cp (builder@Lnx30BccCmp5) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Wed Apr 8 17:12:19 IDT 2015

Ubuntu:

$ cat /proc/version
Linux version 3.13.0-24-generic (buildd@panlong) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014

Debian:

$ cat /proc/version 
Linux version 3.2.0-4-amd64 ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.65-1+deb7u1      

Centos:

# cat /proc/version 
Linux version 2.6.18-400.el5xen ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)) #1 SMP Thu Dec 4 13:29:23 EST 2014
    
por 19.06.2015 / 01:35
0
uname -a

Deve fazer o truque. Ele exibirá as informações do sistema na distro em que você está conectado.

cat /etc/lsb-release 

Também deve exibir o nome e a versão da distribuição.

    
por 19.06.2015 / 01:38
0

No moderno Fedora e Debian (e Arch, CentOS, CoreOS, Mageia, openSUSE, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu e outros) a maneira mais fácil é olhar para /etc/os-release ou executar hostnamectl status .

Em um script, você pode simplesmente fazer

#!/bin/sh
source /etc/os-release
echo $PRETTY_NAME

Por exemplo:

$ source /etc/os-release
$ echo $PRETTY_NAME
Fedora 25 (Workstation Edition)

...

$ source /etc/os-release 
$ echo $PRETTY_NAME
Debian GNU/Linux 8 (jessie)

Claro, se você precisar identificar versões antigas ou distribuições não-systemd também, você pode simplesmente começar com essa abordagem se /etc/os-release existir e, se isso não acontecer, voltar a procurar lsb_release , /etc/redhat-release , tentando descobrir a partir de /proc/version ou alguma outra heurística.

Veja Detectando nome e versão de distribuição do Linux na Documentação de estouro de pilha para mais.

    
por 13.01.2017 / 16:48