web-dev-qa-db-fra.com

Comment identifier la distribution Linux en cours d'exécution?

Nous avons du nouveau matériel dans notre bureau qui exécute son propre système d'exploitation Linux personnalisé.

Comment puis-je déterminer la distribution sur laquelle elle est basée?

76
mrTomahawk

Une question très proche de celle-ci a été publiée sur Unix.Stackexchange ICI Giles a un assez complet | réponse cool pour la façon dont il décrit.

# cat /proc/version

Linux version 2.6.32-71.el6.x86_64 ([email protected]) (gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Fri May 20 03:51:51 BST 2011  
# uname -a 
 
 Linux system1.doofus.local 2.6.32-71.el6.x86_64 # 1 SMP ven 20 mai 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/issue

CentOS Linux release 6.0 (Final)
Kernel \r on an \m

cat /proc/config.gzcat /usr/src/linux/config.gzcat /boot/config*

Bien que j'aie fait quelques vérifications et ce n'était pas très fiable sauf sur SUSE.

# zcat /proc/config.gz | grep -i kernel 
 CONFIG_SUSE_KERNEL = y 
 # CONFIG_KERNEL_DESKTOP n'est pas défini 
 CONFIG_LOCK_KERNEL = y

Libérer des fichiers dans /etc ( d'Unix.com )

  • Novell SuSE --->/etc/SuSE-release
  • Red Hat --->/etc/redhat-release,/etc/redhat_version
  • Fedora ->/etc/Fedora-release
  • Slackware --->/etc/slackware-release,/etc/slackware-version
  • Ancienne Debian --->/etc/debian_release,/etc/debian_version
  • Nouveau Debian --->/etc/os-release
  • Mandrake --->/etc/Mandrake-release
  • Chien jaune ->/etc/yellowdog-release
  • Sun JDS --->/etc/Sun-release
  • Solaris/Sparc --->/etc/release
  • Gentoo --->/etc/gentoo-release

Il y a aussi un script bash sur le lien Unix.com que quelqu'un a écrit pour automatiser la vérification.

Déterminer quel gestionnaire de paquets vous avez est un bon indice.

rpmyumapt-getzypper + beaucoup plus

Bien que cela ne soit en aucun cas infaillible car le vendeur peut utiliser tout ce qu'il veut. Cela vous donne vraiment un point de départ.

# dmesg | moins 
 
 Linux version 2.6.32.12-0.7-default (geeko @ buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux)) # 1 SMP 2010- 05-20 11:14:20 +0200

à peu près les mêmes informations que cat /proc/version & uname

106
2bc

Vous voudrez utiliser:

$ cat /etc/*-release

Vous obtiendrez une réponse similaire à ceci:

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu 11.10"
33
rwc

En premier lieu, essayez lsb_release -a. Par exemple. sur un système Arch Linux, il donne

Version LSB: n/a
ID du distributeur: archlinux
Description: Arch Linux
Version: roulante
Nom de code: n/a

Cependant, cela pourrait échouer, alors vous devrez fouiller /etc (il se trouve très probablement dans un fichier dont le nom se termine par -release). Aussi cat /etc/issue pourrait aider.

18
Renan