f

2015-10-10

How to check Linux version

Linuxのバージョン情報の確認方法をまとめた。

Linuxのバージョン情報には以下の2種類が存在する。

  • カーネルのバージョン
  • ディストリビューションのバージョン

カーネルのバージョン情報はディストリビューション共通で以下のどちらかの方法で確認できるようだ。

cat /proc/version
Linux version 3.13.0-65-generic (buildd@lgw01-26) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #106-Ubuntu SMP Fri Oct 2 22:08:27 UTC 2015
uname -a # 全情報を表示
uname -r # カーネルのリリース番号のみ表示
Linux senooken-ThinkPad-Edge-E440 3.13.0-65-generic #106-Ubuntu SMP Fri Oct 2 22:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
3.13.0-65-generic

ディストリビューションのバージョン情報を確認する方法はいくつかある。以下の順番でオススメだ。

  1. lsb_releaseコマンドか/etc/lsb-release
  2. /etc/os-release
  3. /etc/ディストリビューション名-release
  4. /etc/issues

また上記とは別に,Debianから派生したディストリビューション(UbuntuやLinux Mintなど)では,/etc/debian_versionに派生したDebianのバージョンが書かれているとのこと。

以下で1-4のディストリビューションのバージョン情報の確認方法について説明していく。

lsb_releaseコマンド

lsb_releaseコマンドが使えるならこの方法が一番よい。lsb_releaseコマンドを使えば,これ単体でコードネームやバージョン番号だけを出力することができる。そのため,シェルスクリプトなどでコードネームやバージョン情報が必要なときに組み込みやすい。

例えば以下のコマンドで必要な情報を出力できる。

lsb_release -a # ディストリビューションの情報を全て表示
lsb_release -cs # コードネーム(trustyなど)だけ表示
lsb_release -rs # バージョン番号(14.04など)だけ表示

出力:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty

trusty
14.04

lsb_releaseコマンドは/etc/lsb-releaseファイルの内容を元に情報を出力している模様。

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"

なお,もしlsb_releaseコマンドがなければ,以下のコマンドでインストールできる。

apt-get install lsb-release
yum install redhat-lsb

/etc/os-release

このファイルはほぼ全てのディストリビューションに搭載されているらしい。Ubuntu 14.04とCentOS 7で存在を確認できた。

/etc/os-releaseには/etc/lsb-releaseと同じくらい詳しいバージョン情報が書かれている。欠点としては,バージョン番号やコードネームだけを単独で抽出するのに自分でパイプ処理などを挟む必要があり,手間がかかる点だ。

/etc/os-releaseには例えば以下のような内容が書かれている。

cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

/etc/ディストリビューション名-release

ディストリビューションごとに/etc/ディストリビューション名-releaseというファイルが存在しており,このファイルを見ることで詳細なバージョン情報を知ることができる。

/etc/*-releaseのディストリビューションごとのファイル名
ディストリビューション ファイル名
CentOS redhat-release,centos-release
Fedora fedora-release
Gentoo gentoo-release
Vine Linux vine-release
OpenSUSE SuSE-release
Turbo Linux turbolinux-release
Arch Linux arch-release(中身は空)

/etc/issue

/etc/issueは全ディストリビューションに共通で存在する。SSHでログインしたときやFTPでログインしたときなどに使われるファイルとのこと。しかし,バージョン情報については十分に記載されていない。例えば,Ubuntu 14.04では以下の出力となる。

cat /etc/issue
Ubuntu 14.04.3 LTS \n \l

このように表示される内容はディストリビューション名とバージョン番号くらいで,コードネームは表示されない。

また,CentOS 7では以下の内容となりディストリビューションに関する情報が記載されていない。

\S
Kernel \r on an \m

そのため,バージョン情報を確認するにはよい方法ではない。

Reference

以下のサイトがこの順番で参考になった。

  1. Linuxのディストリビューションとバージョンの確認方法をまとめてみた http://note.kurodigi.com/linux-version/
  2. ディストリビューションを確認する方法 - それマグで! http://takuya-1st.hatenablog.jp/entry/20100915/1284535635
  3. Ubuntu/コマンドでUbuntuのコードネームを調べる方法 - Linuxと過ごす http://linux.just4fun.biz/Ubuntu/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7Ubuntu%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%E6%96%B9%E6%B3%95.html

0 件のコメント:

コメントを投稿