Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

ディストリビューションをスクリプトで分ける(os-releaseの値について)

$
0
0

とりあえずコード

if[[-f /etc/os-release ]];then
    source /usr/lib/os-release
    case$IDin
        debian )echo"Debian";;
        ubuntu )echo"Ubuntu";;arch)echo"ArchLinux";;
          rhel )echo"Red Hat Enterprise Linux";;
        centos ) echp "CentOS";;
        fedora )echo"Fedora";;
      opensuse )echo"OpenSUSE";;*)echo"Other";;esacelse
    echo"/etc/os-release is not exist."fi

解説

ほとんどのLinuxディストリビューションには/etc/os-releaseというディストリビューションごとの内容を表示したファイルがあります。
これをsourceで読み込み、IDという変数に「〜〜系」のディストリビューションというのが載っています。
この部分のIDをcaseで分けています。
IDという変数を変えることで様々な分類分けができます。

よくある値

今回はDebianを例に見ていきます。

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

PRETTY_NAME

ディストリビューションの固有名です。
バージョンやコードネームなど一般向けの正式名です。
スクリプトではあまり使用しないですね。(パターンが多すぎるため)

NAME

ディストリビューションの総称です。バージョン名は含まれていない場合が多いです。
スクリプトで使うのはIDやID_LIKE、VERSION_IDくらいですかね。

VERSION_ID

バージョン情報です。コードネームなどは無く、数字だけの場合が多いです。

VERSION

コードネームなども含めたバージョン情報です。

ID

ディストリビューションのIDです。NAMEと似たようなものですが、スクリプト向けに簡略化されています。

ID_LIKE

Debianにはありませんが他の殆どのディストリビューションにあります。
互換性のあるディストリビューションや大本のディストリビューションのIDが書かれています。

例:ManjaroではID_LINE=arch、UbuntuではID_LIKE=Debianなど

HOME_URL

ディストリビューションの公式サイトです。

SUPPORT_URL

サポートページのURLです。フォーラムなどへのリンクの場合もあります。

BUG_REPORT_URL

バグレポートページへのURLです。フォーラムなどへのリンクの場合もあります。

参考記事

Linuxのバージョンの確認方法
各ディストリビューションのos-releaseの値が書いてあったので助かりました。


Viewing all articles
Browse latest Browse all 2722

Trending Articles