Existe-t-il un moyen de déterminer quelle version (distribution et version du noyau, je suppose) de Linux est en cours d’exécution (à partir de la ligne de commande), qui fonctionne sur n’importe quel système Linux?
la source
Existe-t-il un moyen de déterminer quelle version (distribution et version du noyau, je suppose) de Linux est en cours d’exécution (à partir de la ligne de commande), qui fonctionne sur n’importe quel système Linux?
Le noyau est universellement détecté avec uname
:
$ uname -or
2.6.18-128.el5 GNU/Linux
Il n'y a pas vraiment de moyen de distribution croisée pour déterminer quelle distribution et quelle version vous êtes. Il y a eu des tentatives pour rendre cela cohérent, mais finalement cela varie, malheureusement. Les outils LSB fournissent ces informations, mais paradoxalement, ils ne sont pas installés par défaut partout. Exemple sur un système Ubuntu 9.04 avec le lsb-release
paquet installé:
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
Sinon, la méthode largement disponible la plus proche est la vérification des fichiers. Celles-ci existent sur la plupart des plates-formes communes et sur leurs dérivés (Red Hat et CentOS)./etc/something-release
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 le crois /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}
travaillera le plus souvent. Les installations "serveur" dépouillées et nues ne disposent peut-être pas du package "release" pour la distribution.
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 /etc/issue
ou /etc/motd
, mais certaines politiques de sécurité et meilleures pratiques indiquent que ces fichiers doivent contenir des bannières de notification d'accès.
Connexe: Comment connaître la version du progiciel installé sur le nœud? , marionnette .
Vous pouvez aussi essayer:
Il vous indiquera généralement (pas toujours) la distribution que vous utilisez.
/etc/issue
est le fichier utilisé pour l'écran de connexion.la source
\S[newline]Kernel \r on an \m
Noyau:
uname -a
la source
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éconseillé en faveur de os-release.
Redhat 6.1 a cat / etc / redhat-release
la source
lsb_release -a
, lorsque disponible, est utile.la source
cat /proc/version
m'a trouvé Red Hat sur un VPS partagé.la source
Noyau:
uname -r
Distro:
lsb_release -a
Ceux-ci fonctionneront sur la plupart des systèmes Linux
la source
Bon mot
la source
Ce problème peut également être résolu en utilisant Python avec le
platform
module :Utilisation de la
platform()
fonction:La commande ci-dessus renvoie une chaîne unique identifiant la plate-forme sous-jacente avec autant d'informations utiles que possible.
Ou en utilisant la
uname()
fonction:La commande ci - dessus retourne un
namedtuple()
six attributs contenant:system
,node
,release
,version
,machine
, etprocessor
.Ou en utilisant la
dist()
fonction:La dernière commande tente de déterminer le nom de la distribution du système d'exploitation Linux , mais il est déconseillé depuis Python 3.5 et sera supprimé de Python 3.8 .
la source