uname -a
完全なシステム名と詳細などが表示されることを知っています。しかし、uname gcc
私が実行しているgccのバージョンを確認した結果が返されましたLinux
。それはどういう意味ですか?
Ubuntu86: $ uname gcc
Linux
これは私が使用している機械です(古いことがわかっています)。
Ubuntu86: $ uname -a
Linux ubuntu86 2.6.8.1-3-386 #1 Tue Oct 12 12:41:57 BST 2004 i686 GNU/Linux
このコンピュータで実行されているgccのバージョンを確認するには?
次のように入力してインストールしました。
Ubuntu86: $ sudo apt-get install gcc
だから私はgccバージョンがインストールされていることを知っていますが、どのバージョンなのかわかりません。
答え1
最初の質問の場合:uname
オプションが渡されない場合、それに対応するオプションがシステムにuname -s
表示されます。Linux
渡された引数gcc
はオプションではないため(ハイフンで始まらない)、コマンドはそれを無視します。
答え2
uname
使用しているオペレーティングシステムの名前を表示します。パラメータを無視して一般的な操作を実行します。インストールされているソフトウェアのバージョンは表示されません。
ほとんどのコマンド -gcc
サポート--version
パラメータが含まれているため、gcc --version
現在のGCCバージョンが表示されます。
答え3
2番目の質問に対する答えは次のとおりです。gcc -v
プリントの最後の行で、gcc
システムにインストールされているバージョンを見つけることができます。
答え4
dpkg -l
Ubuntu を含む Debian ベースのシステムでは、(I または one ではない ell) を使用して、インストール状態とインストールされているパッケージのバージョン (パッケージ名がわかっている場合) を確認できます。この操作は読み取り専用操作なので、通常はルートアクセスは必要ありません。
特定のファイルを所有するパッケージを見つけるには、を使用しますdpkg -S
。つまり、ルートアクセスは不要です。
2つを組み合わせると、次のような結果が得られます。
$ dpkg -S $(which gcc)
gcc: /usr/bin/gcc
$ dpkg -l gcc
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================-=============-=============-=======================================
ii gcc 4:4.7.2-1 amd64 GNU C compiler
$
4:4.7.2-1
これは、特定のシステムで、そのアーキテクチャのパッケージバージョンが完全にインストールおよび構成(状態)されたことを示しています。gcc
amd64
ii
コマンドが必要な場合は、dpkg -l $(dpkg -S $(which gcc) | awk -F: '{print $1}')
上記のコマンド例と同じ出力が表示されますdpkg -l gcc
。ここでは awk を使用してデータを分割し、:
出力の最初の部分を返します。
パッケージのバージョンがプログラム自体によって報告されたバージョンを必ずしも反映するわけではありません。私が考える限り、gcc --version
これはgcc (Debian 4.7.2-5) 4.7.2
すべての実用的な目的に「十分に近い」です。ただし、表示している動作がバグかどうかを判断する場合は異なる場合があります。
より一般的には、プログラムに任意の引数を渡すべきではありません。そして、仕事がうまくいくと思います(「仕事」の定義に従って)。特定の状況ではuname
無害ですが、プログラムが実際にやりたくないタスクを簡単に実行でき、一部のタスクは潜在的に危険な可能性があります。関連コマンドのマニュアルページを調べて、そのコマンドが許可するパラメーターとその意味を確認してください。 (多くのコンソールアプリケーションは、引数なしでバイナリ名のみを使用して呼び出すと非常に安全なタスクを実行します。多くのコンソールアプリケーションは、引数なしで実行されたときにバージョンと著作権情報を表示します。