2009-07-22 19:20:02 +0000 2009-07-22 19:20:02 +0000
211
211

Comment puis-je savoir quelle version de Linux j'utilise ?

Existe-t-il un moyen de déterminer quelle version (distribution et version du noyau, je suppose) de Linux fonctionne (à partir de la ligne de commande), qui fonctionne sur n'importe quel système Linux ?

Réponses (9)

269
269
269
2009-07-22 19:34:33 +0000

Le noyau est universellement détecté avec uname :

$ uname -or
2.6.18-128.el5 GNU/Linux

Il n'existe pas vraiment de moyen de distribution croisée pour déterminer la distribution et la version sur lesquelles vous vous trouvez. Il y a eu des tentatives pour rendre cela cohérent, mais en fin de compte, cela varie, malheureusement. Les outils LSB fournissent cette information, mais ironiquement, ils ne sont pas installés par défaut partout. Exemple sur un système Ubuntu 9.04 avec le paquet lsb-release installé :

$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty

Sinon, la méthode disponible la plus proche est la vérification des fichiers /etc/something-release. Ceux-ci existent sur la plupart des plateformes communes, et sur leurs dérivés (c'est-à-dire Red Hat et CentOS).

Voici quelques exemples.

Ubuntu a /etc/lsb-release :

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

Mais Debian a /etc/debian_version :

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat et CentOS ont

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

Je n'ai pas de système SUSE disponible pour le moment, mais je crois que c'est /etc/SuSE-release.

Slackware a /etc/slackware-release et/ou /etc/slackware-version.

Mandriva a /etc/mandriva-release.

Pour la plupart des distributions populaires alors,

$ cat /etc/*{release,version}

fonctionnera le plus souvent. Les installations de “serveurs” dépouillés et de “barebones” peuvent ne pas avoir le paquet “release” pour la distribution installée.

De plus, deux programmes tiers que vous pouvez utiliser pour obtenir automatiquement ces informations sont Ohai et Facter . Notez que de nombreuses distributions contiennent ce type d'informations dans /etc/issue ou /etc/motd, mais certaines politiques de sécurité et meilleures pratiques indiquent que ces fichiers devraient contenir des bannières de notification d'accès.

42
42
42
2009-07-22 19:58:38 +0000

Vous pouvez également essayer :

$ cat /etc/issue

Il vous indiquera généralement (mais pas toujours) la distribution que vous utilisez. /etc/issue est le fichier utilisé pour l'écran de connexion.

20
20
20
2009-07-22 19:21:27 +0000

Noyau : uname -a

16
16
16
2014-04-02 22:56:41 +0000
cat /etc/os-release

au minimum pour Ubuntu, Fedora et OpenSUSE.

Ne fonctionne pas pour OS X au moins jusqu'à 10.9 (Mavericks). Utilisez sw_vers à la place.

OpenSUSE avait cat /etc/SuSE-release jusqu'à 13.1 mais est déprécié au profit de os-release.

Redhat 6.1 a cat /etc/redhat-release

14
14
14
2009-07-22 23:48:08 +0000

lsb_release -a, lorsqu'il est disponible, est utile.

12
12
12
2014-06-26 06:59:45 +0000

cat /proc/version m'a trouvé Red Hat sur un VPS partagé.

6
6
6
2015-06-18 17:06:13 +0000

Kernel : uname -r

Distro : lsb_release -a

Ceux-ci fonctionneront sur la plupart des systèmes Linux

5
5
5
2018-01-29 14:51:31 +0000

One-liner

lsb_release -a && uname -r
1
1
1
2019-01-08 07:25:25 +0000

Ce problème peut également être résolu en utilisant * Python avec le module platform ** :

Utilisation de la fonction platform() :

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6

La commande ci-dessus retourne une seule chaîne identifiant la plate-forme sous-jacente avec autant d'informations utiles que possible. La commande ci-dessus _retourne un uname() contenant six attributs : namedtuple(), system, node, release, version, machine, et processor. La dernière commande _essaye de déterminer le nom de la distribution du système d'exploitation Linux, mais elle est dépréciée depuis Python 3.5 et _sera supprimée dans Python 3.8 _.

Questions connexes

6
10
7
5
9