2009-12-08 11 views
15

Movido a https://superuser.com/questions/80251/how-to-know-which-linux-distribution-im-using¿Cómo saber qué distribución de Linux estoy usando?

¿Cómo saber qué distribución de Linux estoy usando?

uname -a da Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp # 1 SMP Vie Ago 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux ¿Cómo puedo saber esto es Ubuntu/Debian/Fedora o Redhat?

I utiliza reinicio /etc/init.d/serviced para reiniciar serevices, parece que no es familiar Redhat

Actualización:

[~]$ cat /etc/issue 
cat: /etc/issue: No such file or directory 
[~]$ cat /etc/issue.net 
cat: /etc/issue.net: No such file or directory 
[~]$ lsb_release -a 
-sh: lsb_release: command not found 
[~]$ cat /etc/*-release 
cat: /etc/*-release: No such file or directory 
[~]$ cat /etc/*-version 
cat: /etc/*-version: No such file or directory 
[~]$ cat /etc/*release 
cat: /etc/*release: No such file or directory 
[~]$ cat /etc/*_release 
cat: /etc/*_release: No such file or directory 
[~]$ cat /etc/*version 
cat: /etc/*version: No such file or directory 
[~]$ 
+0

estás conectando por terminal? – pcp

+0

Esto debe estar en el superusuario o serverfault. No es una pregunta de programación. – marcc

+0

Si está buscando una forma confiable de hacer que su programa se comporte según una distribución determinada, le sugiero que actualice su pregunta antes de migrarla. –

Respuesta

28

Prueba esto:

cat /etc/*-release 

Usted podría también intente/etc/* - versión

+1

[itflux] [~] $ cat/etc/* - release cat:/etc/* - release: Ningún archivo o directorio [itflux] [~] $ cat/etc/* - versión cat:/etc/* - versión: Ningún archivo o directorio –

+1

'cat/etc/* [_-] release' sería mejor: algunas distribuciones usan guiones bajos, no guiones. –

11

/etc/issue o /etc/issue.net dar una buena pista. Las distribuciones más nuevas proporcionan/etc/lsb-release que facilita la determinación de cadenas exactas de forma progmática, es decir, nombre de distribución/principal & versión secundaria/sitio web, etc.

En ausencia de/etc/lsb-release, es mucho más difícil, de ahí la creación de lsb-release.

Como dijo Alok, parece que estás en un sistema bastante antiguo (o extremadamente escaso). No creo que este sea un caso que pueda (de manera fiable) determinar de manera progmática con unas pocas líneas de código.

Si todo lo demás falla, verifique qué tipo de gestor de paquetes está en uso (apt/rpm/otros), verifique si /etc/init.d es un enlace simbólico (rpm/RH distros) o un directorio (distribuciones basadas en Debian) ... y tiene una buena pista sobre lo que puede esperar estar presente en el sistema de archivos raíz en cuanto a estructura.

Usted puede no a gusto de todos :)

+0

Debian y derivados (Ubuntu) también tienen/etc/lsb-release. También tienen el programa lsb_release que le dará información específica (no es necesario analizar el archivo de texto). – MichaelM

+0

@MichaelM: Está leyendo un archivo en ambos sentidos ... ya sea directamente abriendo/etc/lsb-release o raspando el resultado de lsb_release (de cualquier manera, todavía está leyendo un archivo, incluso si es stdout). Si lo hace de forma progmática, es mejor analizar el archivo usted mismo (imho) ... menos partes móviles que pueden estar presentes o no :) –

+0

[itflux] [~] $ cat/etc/issue cat:/etc/issue : No existe dicho archivo o directorio [itflux] [~] $ cat /etc/issue.net cat: /etc/issue.net: Ningún archivo o directorio [itflux] [~] $ lsb_release -a -sh : lsb_release: comando no encontrado –

18

Si tiene lsb_release comando,

lsb_release -a 

le dirá (o simplemente utilizar lsb_release -i).

lsb_release está en Linux Standard Base Core Specification.

Editar: parece que estás en un sistema de Red Hat. Una búsqueda de Google en su uname salida suggests so. Esto no es programático, por supuesto!

+2

$ lsb_release -a - sh: lsb_release: comando no encontrado –

+0

A juzgar por esta y sus otras respuestas, parece que tiene un reall y viejo sistema de Linux. –

+0

lsb_relase fue creado para aliviar el dolor de determinar la distribución fácilmente desde dentro de un programa. Muchos sistemas en la naturaleza y todavía en uso carecen de esto por completo. –

1

EL significa Enterprise Linux en este caso, entonces creo que RedHat o un clon (como CentOS). No conozco una buena forma de averiguar programáticamente en qué distro estás; hay algunas pistas diferentes para cada uno.

cat /etc/redhat_release 
cat /etc/debian_version 

es un buen comienzo. (Tenga en cuenta que Ubuntu no modifica /etc/debian_version cuando extraen cambios de Debian, por lo que mi sistema Ubuntu Karmic tiene squeeze/sid en debian_version.)

Editar: se olvidó de lsb. Buena llamada, Tim Post y Alok. El objetivo de LSB es dar formas independientes de distro para hacer cosas.

+0

[itflux] [~] $ cat/etc/redhat_release cat:/etc/redhat_release: Ningún archivo o directorio [itflux] [~] $ cat/etc/debian_version cat:/etc/debian_version: Ningún archivo –

+0

EL podría ser también SuSE Enterprise Linux, aka sles.Utiliza RPM como RedHat. No recuerdo cómo buscarlo. –

+0

Oh, sí, Suse tiene algunos comandos en la parte superior de las rpm. Si tiene yast2 o yum, está en SuSE. Mire en/etc/for * suse * o * novell *. –

5

parece que aquí hay algo de información:

> cat /etc/issue 
Welcome to SUSE LINUX Enterprise Server 9 (i586) - Kernel \r (\l). 

> uname -a 
Linux boxname 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686 athlon i386 GNU/Linux 

> cat /etc/*-release 
SUSE LINUX Enterprise Server 9 (i586) 
VERSION = 9 
PATCHLEVEL = 3 
+0

Whohooo alguien no le gusta la respuesta, escuchemos su opinión ... Tengo bastante menudo tratado de averiguar lo que está corriendo en una caja, estas son algunas de las cosas que miro, le indica la versión del núcleo, a veces incluso el nombre de una distribución ... – stefanB

+0

[itflux] [~] $ cat/etc/issue cat:/etc/issue: No existe el fichero o directorio [itflux] [~] $ cat cat /etc/issue.net : /etc/issue.net: No existe el fichero o directorio [itflux] [~] $ lsb_release -a -sh: lsb_release: comando no encontrado [itflux] [~] $ cat/etc/* - release cat:/etc/* - release: Ningún archivo o directorio [itflux] [~] $ cat/etc/* - versión cat:/etc/* - Versión: No existe el fichero o directorio [itflux] [~] $ –

+0

bien lo que tiene Linux no tan estándar, que no es nada nuevo, pero supongo que al menos 'uname se dan -a' alguna respuesta ... – stefanB

2

Una lista de los nombres de archivo de la versión de las distribuciones más comunes: Release files

y una función que podría ayudarle a: Shell script

Cuestiones relacionadas