ビルドがDebianベースかどうかを確認するにはどうすればよいですか?


9

私は、カスタム(小さい)Linuxビルドを搭載したボックスで作業を開始しています。これがDebianベースのビルドかRed Hatベースのビルドかを確認するにはどうすればよいですか?

これは私がこれまでに知っていることです:

$ cat /proc/version
Linux version 2.6.31-2.5 (build@build-desktop) (gcc version 4.4.3 (Broadcom stbgcc-4.4.3-1.2) ) #7

$ apt-get
-sh: apt-get: command not found

$ yum
-sh: yum: command not found

なんでlsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-?実行するだけlsb_release -si

回答:


2

実行uname -aすると、システムに関する一般的な情報が得られます。また、実行しapropos "package manager"たり、同様のキーワードを使用して、パッケージマネージャーの詳細を確認できます。実行中のディストリビューションがどこにあるか/etcという名前のファイルを探します。xyz-releasexyz


これは、una​​me -aを実行したときに得られるものです。$ uname -a Linux 10.0.1.46 2.6.31-2.5#7 Thu Dec 15 19:57:09 CST 2011 mips GNU / Linux
Sparky1

@ Sparky1次に、Linux-MIPSディストリビューションを入手したようです。

7

Debianシステムのテストでは、/etc/debian_version存在するかどうかを確認できます。

if [ -f "/etc/debian_version" ]; then
   # do stuff
fi

Debianとそれに基づくシステム(Ubuntuとその派生物を含む)が含まれている必要がありますが、ない場合もあり/etc/*releaseます。この場合、ファイルを確認できます。

if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then
   # do stuff
fi

どこdebian|buntu|mint(敏感ではない場合)を探すために、ディストリビューション名のリストである-ことができますから、いくつかの一般的な誘導体のアイデアここでは UbuntuのようなDebianの誘導体が、自分のderiativesを持っています


RedHatベースのシステムの場合、派生物はより広い範囲のファイルを使用し、lsb-releaseがインストールされていない可能性があるため、次の方法を適用できます。

  • からリリース名を取得する

    lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
    
  • lsb-releaseファイル内のDISTRIB-IDを確認してください-「最近のシステムではおそらく不要なフォールバックメソッド」。また、ファイルはFedoraで欠落しているようで、OpenSUSEでDISTRIB_IDが含まれていません

  • 次のいくつかの存在を確認します

    • /etc/fedora-releaseおよび/または/etc/redhat-releaseRedHatまたはFedoraの場合
    • /etc/SuSE-release SuSe
    • /etc/mandriva-release mandriva / mageia
  • 後者のdebianと同様の方法を使用します。

    if [ "$(grep -Ei 'fedora|redhat' /etc/*release)" ]; then
    ...
    

私がGoogle Chromeのアップデートcronから入手した最初の3つのポイントなので、詳細を調べるためにそれを調べることができます(パッケージマネージャーも決定します)


より広い範囲のOSについては、SOに関するこの投稿を読んでください。


2

次の出力を確認します。

lsb_release -a

そして:

cat /etc/issue

またrpm、RedHatおよびdpkgDebian 向けの低レバーパッケージコマンドを確認することもできます。


$ dpkgコマンドが見つかりません$ rpm(rpmコマンドのオプションを表示します)。このように見えるのは、赤い帽子ベースのビルドです。助けてくれてありがとう!
Sparky1

2
また、すべてのdebianベースのLinuxディストリビューションに存在する/ etc / debian_versionファイルをチェックすることもできます
Coren

また、インストールapt-get install lsb-releaseされていない場合はを使用してインストールします。
Massood Khaari

1

組み込みデバイス(SoHoルーターなど)の場合、「デスクトップ/サーバー」ディストリビューションにはならないでしょう。デバイスのマニュアル、製造元のWebサイト(GPLライセンスコードのソースが必要)、およびWeb全体を調べてみます。


0

uname -aそして、cat /proc/version読み取り専用スーパーユーザのために)、私の正直な意見では、残りの部分として、この質問に対する唯一の正しい答えている-などがlsb_release/etc/issuecat /proc/sys/kernel/version-あらゆるシステム(いなくても、公式のDebianディストリビューション)に使用することができない/使用できません。また/etc/*releases/etc/*version変更される可能性があるので、を使用しないでください。後者は、すべてのDebianディストリビューションで利用できるわけではありません。

その他のオプションは次のとおりです(私の推奨ではありません)。

  • がリンクされているdashかどうかを確認または確認します(スクリプトを実行するためのデフォルトである必要があります)shdash
  • 実行してパッケージマネージャーを確認します >/dev/null 2>&1 dpkg --version && { ... }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.