Estoy tratando de determinar qué sabor del servidor Linux se está ejecutando. No estoy tratando de determinar la versión del kernel, sino evaluar el distribuidor.
gcc está instalado, y en la salida de la versión, dice RedHat
# gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
¿Esto significa que puedo asumir con seguridad que mi servidor es un servidor RedHat? ¿Existe un mejor método 100% a prueba de balas para descubrir esto? También para otros sabores de Linux, ¿no solo este servidor?
Editar: contenido /etc/
en caso de que ayude, pero me gustaría una solución que funcione para otras versiones de Linux también.
# ls /etc/
./ backupmxhosts domainusers host.conf localdomains mailips pam.d/ relayhosts shadow trustedmailhosts
../ bashrc* exim.conf inputrc localtime man.config passwd resolv.conf skipsmtpcheckhosts userdomains
DIR_COLORS cron.deny exim.pl ld.so.cache lynx.cfg mtab profile secondarymx spammeripblocks vimrc
aliases demodomains exim.pl.local* ld.so.conf mail/ my.cnf profile.d/ senderverifybypasshosts sudoers
antivirus.exim demouids group localaliases mailhelo nsswitch.conf protocols services termcap
No tengo *release
ni *version
archivos en/etc/
# ls /etc*release; ls /etc/*version
/bin/ls: /etc/*release: No such file or directory
/bin/ls: /etc/*version: No such file or directory
Probé LSB
# lsb_release -a
LSB Version:
Distributor ID: n/a
Description: (none)
Release: n/a
Codename: n/a
Además, supongo que estoy dentro de un chroot jail
(no estoy seguro de qué es eso), que probablemente podría ser la causa de este problema.
Actualizado:
Creo que esto lo hace por mí. Creo que puedo asumir con seguridad que estoy usando cent-os.
# cat /proc/version
Linux version 2.6.9-103.plus.c4smp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Wed Dec 21 16:17:23 EST 2011
Respuestas:
Ejemplos:
Ubuntu:
Red Hat / CentOS:
Consulte también ¿Cómo saber qué distribución de Linux está utilizando?
fuente
En la mayoría de las distribuciones de Linux modernas, el siguiente comando le dará su información:
fuente
yum install redhat-lsb-core
./etc/issue
podría ser un buen punto de partida.Se podría encontrar más inspeccionando los archivos de información para diferentes distribuciones:
Vea el foro de Unix para más detalles.
fuente
release
oversion
en mietc
directorioSi
/etc/issue
falta, puede haber uno o más/etc/*_release
archivos.Por ejemplo, mi sistema Ubuntu tiene
/etc/lsb-release
:El sistema CentOS de un amigo (basado en Red Hat) tiene
/etc/redhat-release
:No sé cuán universal es esto.
fuente
release
oversion
archivos en mi/etc/
cat / etc / issue podría responder a su pregunta.
Los fabricantes de distro no son amigables contigo aquí. Primero, cada uno piensa que es la única forma verdadera.
Lo más probable es que, en lugar de tratar de olfatear la distribución, debería mirar con más detalle la pregunta particular que realmente necesita responder. Concéntrese en la funcionalidad que está viendo, no en la distribución que la proporciona. Después de todo, una nueva versión de una distribución puede dar la vuelta e ir en la dirección opuesta en cualquier eje en particular.
fuente
/etc/issue
en mi servidor/etc/issue
puede contener secuencias de escape como\n
y\l
. Para ver lo que significan,man 5 issue
yman getty
(el/etc/issue
archivo está destinado principalmente para su uso porgetty
). Por supuesto, el propietario del sistema podría editar/etc/issue
por alguna razón nefasta./etc/issue
sea necesario existir o contener información sobre el proveedor de distribución. Comúnmente lo hace, pero no creo que pueda confiar en ello.Uso
facter
(sí, así es como se deletrea).Facter es un compañero de la marioneta, proporciona variables que pueden consultarse que contienen información sobre el sistema.
Por ejemplo, aquí hay algunas de las docenas de variables que el factor puede devolver
Simplemente puede consultar el hecho de la familia para ver que el servidor está ejecutando RedHat
Consulte la documentación: http://puppetlabs.com/facter
fuente
uname -a
Funciona siempre para cualquier Tux
fuente
No hay una única forma segura de hacer esto. Hice una pregunta similar en unix.se y la mejor manera de obtener esta información es un script que verifica una variedad de fuentes:
La otra opción es usar
gcc --version
, yagcc
que siempre se compila para una distribución particular, será relativamente portátil. Le recomiendo que lea la respuesta aceptada en mi pregunta en U&L que explica muy bien la situación.fuente
Este comando funcionó para distribuciones basadas en Debian y Redhat: usando el filtro tr, convierte el documento al formato de una palabra por línea y luego cuenta la primera línea que contiene el nombre de la distribución.
fuente
Es el mejor método.
fuente
/etc
directorio en la pregunta. Como se discutió en otras respuestas, esta solución no funciona para mí./etc/
el directorio y se puede ver que no hay archivos de allí a finales derelease