2016-09-17 13 views
1

新しいAWS EC2インスタンス(Amazon Linux AMI)を開始しました。私はそうのようなマシン上でJava 1.8.0をインストールすることができます。私も、このコマンドを使用してインストールすることができます'yum install java-1.8.0'はエイリアスのようなものですか?

sudo yum install java-1.8.0 

sudo yum install java-1.8.0-openjdk 

同じパッケージとの依存関係は、両方のケース内に設置されています。私は次のことを実行すると、私は「該当パッケージを一覧表示しないように」受け取る:私は次のことを実行すると

yum info java-1.8.0 

、「Javaの-1.8.0は、」のみ「のjava-1.8.0、リストには表示されません。 -openjdk ":

yum search java-1.8.0 

私の関連質問は以下のとおりです。

  1. はなぜ "sudoのyumのは、java-1.8.0" の仕事をインストール? yum repoのエイリアスですか?
  2. これが本当にエイリアスであれば、どのように存在するのでしょうか?エイリアスを検索またはリストする方法はありますか?
+1

'yum list java-1.8.0'を試してみてください。 – px06

+0

このコマンドは、「一致するパッケージがリストにない」という結果になります。 'yum list java-1.8.0-openjdk'を実行すると期待される結果が得られます。 – shaunb

答えて

1

"yum install"で指定された名前のパッケージが見つからない場合、その名前の機能を提供するパッケージが検索されます。 yumのマニュアルページのインストールセクションから:

名前がパッケージと一致しない場合は、パッケージ "provide"が検索されます(例: "_sqlite-cache.so()(64bit)")。ファイルリスト(例: "/ usr/bin/yum")。

「java-1.8.0」は、Java-1.8.0-openjdk RPMの機能としてリストされています。これは、「yum install java-1.8.0-openjdk」によってインストールされた理由です。 yumにその機能を提供する他のパッケージがあった場合は、代わりにそれらの1つを簡単に取得できます。 yumが同じ機能を提供する複数のパッケージの間でどのように選択するかはわかりませんが、アプリケーションの特定のフレーバー/バージョンがまったく重要であれば、私が頼りにするものではありません。

yum-utilsをインストールすると、repoqueryコマンドでパッケージ機能に関する情報を表示できます(他にも多数あります)。たとえば、repoquery --provides java-1.8.0-openjdkは、そのパッケージによって提供されるすべての機能をリストします。 java-1.8.0機能を提供するすべてのパッケージを検索するには、repoquery --whatprovides java-1.8.0またはyum provides java-1.8.0のいずれかを使用できます。 yumでは、 "whatprovides"は "provide"と同じであることに注意してください。両方とも、指定された機能を提供するパッケージを検索します。指定されたパッケージ内の機能を使用する場合は、再検索を使用する必要があります。 (rpmコマンドはクエリーしたいパッケージを既にインストールしていたり​​、ダウンロードしている場合でも動作します)

+0

偉大な答え。ありがとうございました。 – shaunb

関連する問題