[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:64819] Re: ディストリビューションを判別するコマンド


<200002010202.LAA12652 _at_ naka.naka.jaeri.go.jp> の、
   "[linux-users:64793] Re: ディストリビューションを判別するコマンド" において、
   "TAKEDA Nobukazu <ntakeda _at_ naka.jaeri.go.jp>"さんは書きました:

> なにがしか方法はありそうですね。
> とりあえずはTurbolinuxとVineの区別がつけばよいので、
> これで十分です。
> どうもありがとうございました。

うーんっ、個人的には十分なのかもしれませんが…。
せっかくなのでまとめた方がよいかと思います。

現在まとめると…

・間違っている箇所を教えてもらえる。
・他のディストリビューションの情報も教えて貰える。
・後々検索がカンタンになる。
・勝手に CD になるかもしれない。

と、いったウレシイ得点がついてくるようですよ :-)

#!/usr/bin/perl

$VERSION =      "/proc/version";
@DISTRIBUTION = (
                "plamo",        "/usr/lib/setup/plamo-version",
                "slackware",    "/usr/lib/setup/slack-version",
                "debian",       "/etc/debian_version",
                "vine",         "/etc/vine-release",
                "suse",         "/etc/SuSE-release",
                "turbo",        "/etc/turbolinux-release",
                "kondara",      "/etc/kondara-release",
                "redhat",       "/etc/redhat-release",
                );

sub IsLinux {
        open(VER, $VERSION) || return undef;
        while (<VER>) {
                return 1 if (($k_ver[0], $k_ver[1], $k_ver[2], $_)
                        = /^Linux version (\d*)\.(\d*)\.(\d*)\s*(.*)/i);
        }
        return undef;
}

sub Distribution {
        for ($i=0;$i<$#DISTRIBUTION;$i+=2) {
                ($system, $file) = @DISTRIBUTION[$i, $i+1];
                return $system if (<$file*>);
        }
        return undef;
}

#
# Sample Main
#
unless (IsLinux()) {
        printf("not linux system.\n");
        exit(-1);
}
unless ($system = Distribution()) {
        $system = "other";
}
printf("%s linux kernel version=%d.%d.%d\n",
        $system, $k_ver[0], $k_ver[1], $k_ver[2]);

# ディストリビューションのバージョンも付加すれば、初心者さんが質問する
# ときはこのコマンドの結果も添付してねって感じで使えるかもしれません。

--
Masafumi SHIRAIWA
shiraiwa _at_ ksd.co.jp

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: