26

ときどき、Linux (または別の Unix ライクな SO) を実行しているサーバーにアクセスする必要がありますが、サーバーで使用されているディストリビューションを確認する方法がわかりません(サーバーの「責任者」でさえ、知りません)。

それを発見するための簡単で信頼できる方法、つまりそれらすべてで均一で一貫した方法はありますか?

4

12 に答える 12

29

lsb_release -iあなたのために働くかもしれません。

詳細については、lsb_release -a

http://etbe.coker.com.au/2007/08/30/identifying-the-distribution-of-a-linux-system/での議論

于 2008-11-05T03:48:49.980 に答える
28
cat /etc/*release

ほとんどのディストリビューションは、通常、ディストリビューションのバージョン番号を含むリリース ファイル/etc/( /etc/redhat-release、など) を配置します。/etc/gentoo-release

于 2008-11-05T03:52:12.330 に答える
8

厄介なことに、これは見かけよりも難しい問題です。

Linux システムの場合は、lsb_release を使用します。

$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 8.04.1
Release:        8.04
Codename:       hardy
$ lsb_release -i
Distributor ID: Ubuntu

これには、lsb_release が Linux リリースでのみ機能するという制限があります。

すべての Unix システムで、uname を解析することもできます。

$ uname -a
Linux blue-laptop 2.6.24-21-generic #1 SMP Tue Oct 21 23:43:45 UTC 2008 i686 GNU/Linux

システムとディストリビューションに関する情報は、una​​me ウィキペディアのページにあります。

于 2008-11-05T04:17:04.883 に答える
3

どのディストリビューションが使用されているかを本当に知る必要があるかどうかを自問する必要があります (おそらく、このディストリビューションに固有のパッケージをビルドしたいため)。他の多くの場合、必要な機能がそこにあるかどうかをテストして確認する方がはるかに良い考えです。すべての機能を 1 つずつテストする必要があるため、これはより多くの作業のように見えるかもしれませんが、このようにして、ソフトウェアははるかに柔軟になります。

于 2008-11-05T05:25:24.997 に答える
1

/etc/issue には通常、使用中のディストリビューションに関する情報が含まれていることがわかりました。

しかし、すべてのディストリビューションで利用できるかどうかはわかりません。

于 2008-11-05T05:03:10.953 に答える
1

私の.cshrc中で私は持っています

setenv DISTRO `sed -e 's/.*(//' -e 's/)).*//' /proc/version`

ksh / Bashユーザーの場合、次のように変換されると思います

export DISTRO=`sed -e 's/.*(//' -e 's/)).*//' /proc/version`

もちろん、これはお気に入りのディストリビューションでは機能しない場合があります。( Oracle の Unbreakable Linuxが Redhat に似たものを提供するという問題がありましたが、私の目的には十分でした。)

2016 年 8 月の更新しばらくの間、この方法で Linux を使用していません (2008 年はずっと前のことです)。これは、現在使用しているシステムでは機能しないようです。

于 2008-11-05T04:01:49.690 に答える
1

proc ファイル システム: すべてのハードウェア レベル情報を含む Linux のディレクトリ。タイプするだけ

cd /proc/

そこには、システムに関するすべての任意の情報について、テキスト ファイルに格納された情報の宝庫があります。

于 2010-06-17T10:28:00.063 に答える
0

ネオフェッチ

... は、必要なすべての情報が含まれているはずの非常に専門的なBASH スクリプトです。

免責事項:私はそれと提携していません)

使用法

neofetch --stdout | grep '^OS: ' | sed -e 's/OS:[[:space:]]\+//'

与えるかもしれません:

Debian GNU/Linux 11 (ブルズアイ) x86_64

しかし、もっと多くの情報があります。

インストール

オプション:

  1. システムパッケージneofetch

  2. それが利用できない場合は、公式のインストール手順を参照してください

  3. またはハックな1回限りの使用のために-信仰とインターネット接続があれば-次を使用できます:

    wget 'https://raw.githubusercontent.com/dylanaraps/neofetch/master/neofetch' \
        && bash neofetch --stdout \
        && rm neofetch
    
于 2019-07-10T09:31:42.650 に答える
0

「uname」を使用できます:

[anton@localhost ~]$ uname -a
Linux localhost 2.6.26-ARCH #1 SMP PREEMPT Tue Aug 26 21:15:43 UTC 2008 i686 AMD Athlon(tm) 64 Processor 3000+ AuthenticAMD GNU/Linux
于 2008-11-05T03:44:48.520 に答える
0
uname -r

現在実行中のカーネルのバージョンを表示する必要があります (少なくとも、Linux の場合は表示されます。*BSD やその他の場合と同じかどうかはわかりません)。これはディストリビューションと同じではありませんが、「2.6.27-gentoo-r1」などのようにカスタマイズされている場合、カーネル バージョンにはしばしばディストリビューション名が含まれます。

init は起動時に何かを出力することがよくありますが、実行中はあまり良くありません。

そうでなければ、私の知る限り、普遍的なものは何もありません。

于 2008-11-05T03:46:47.393 に答える
-1

試すuname -a

于 2008-11-05T03:43:33.890 に答える