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

どのようにして自分が実行しているLinuxのバージョンを知ることができますか?

どのLinuxシステムでも動作するLinuxのバージョン(ディストリビューションとカーネルのバージョンだと思いますが)を(コマンドラインから)知る方法はありますか?

回答 (9)

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

カーネルは uname で普遍的に検出されます:

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

どのディストリビューションとバージョンを使用しているかを判断するクロスディストリビューションの方法は本当にありません。これを一貫性のあるものにしようとする試みがありますが、残念ながら最終的には異なります。LSB ツールはこの情報を提供しますが、皮肉にもデフォルトではどこにでもインストールされているわけではありません。Ubuntu 9.04 システムに lsb-release パッケージがインストールされている場合の例:

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

その他の場合、最も広く利用できる方法は /etc/something-release ファイルをチェックすることです。これらのファイルは、ほとんどの一般的なプラットフォームとその派生物(例: Red Hat と CentOS)に存在しています。

いくつかの例を紹介します。

Ubuntu は /etc/lsb-release:

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

しかし Debian は /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora、Red Hat、CentOS は:

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

私は今のところ利用可能な SUSE システムを持っていませんが、私はそれが /etc/SuSE-release であると信じています。

Slackwareは/etc/slackware-releaseおよび/または/etc/slackware-versionを持っています。

Mandrivaは/etc/mandriva-releaseを持っています。

その後、人気のあるディストリビューションのほとんどのために、

$ cat /etc/*{release,version}

は最も頻繁に動作します。

さらに、この情報を自動的に取得するために、OhaiFacter の 2 つのサードパーティプログラムを使用することができます。

多くのディストリビューションでは、/etc/issue/etc/motd にこの種の情報が含まれていますが、セキュリティポリシーや ベストプラクティス によれば、これらのファイルにはアクセス通知バナーが含まれているはずです。

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

また、以下のようにしてみてください:

$ cat /etc/issue

通常は(常にではありませんが)どのディストリビューションを使用しているかを教えてくれます。

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

カーネル: uname -a

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

Ubuntu, Fedora, OpenSUSE では最低でも動作しますが、OS X では少なくとも 10.9 (Mavericks) までは動作しません。代わりに sw_vers を使ってください。

OpenSUSE は 13.1 まで cat /etc/SuSE-release を持っていましたが、OS-release のために非推奨になっています。

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

lsb_release -aがあると便利です。

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

cat /proc/versionは共有VPSでRed Hatを見つけてくれました。

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

カーネル: uname -r

ディストロ: lsb_release -a

これらはほとんどの Linux システムで動作します。

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

ワンライナー

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

この問題は、** Python with the platform module **:

platform()関数の使用:

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

上記のコマンドは、可能な限り多くの有用な情報を含む、基礎となるプラットフォームを識別する単一の文字列を返します。 _

または uname() 関数の使用:

python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')

上記のコマンドは _007、namedtuple()systemnodereleaseversionmachineprocessor の 6 つの属性を含む dist() を返します。 _

または &007関数を使う:

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

最後のコマンドは Linux OSのディストリビューション名を決定しようとしますが、Python 3.5からdeprecatedされており、Python 3.8では削除される予定です。

関連する質問

6
10
7
5
2