web-dev-qa-db-ja.com

yum、apt-get、rpm、。/ configure、&make installの違いは何ですか?

私はLinuxが初めてで、CentOSを実行しています。ソフトウェアをアップデートまたはインストールする方法は4つあります。

これまでのところ、私は見た:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz - > unpack - > ./configure - > make - > make install

最後の問題は、特にプログラムのインストールがワンクリックでNiceインストールウィザードになっている、Windowsから来る、本当に苦痛です。

だから、私の質問は:

  • Linuxでこれを実行する方法が他にもたくさんあります。
  • どちらを使用することをお勧めしますか、そしてそれはなぜですか?
  • Linuxにプログラムをインストールする方法は他にありますか?
120
Saif Bechan

これらのツールはすべてシステムにソフトウェアをインストールしますが、さまざまなレベルで機能しています。

  • ./ configure && make install

    ./configure && make installを実行すると、ソースコードから直接ライブラリまたは実行可能ファイルがビルドおよびインストールされます。

    make installステップは、基本的には最終ファイルをあなたのシステムにコピーするだけです。多くのソースはそれらを再び削除するための特別なmake uninstallルールを持っていますが、これは保証されておらず、もちろんあなたが設定されたソースを持っている限り動作します。また、これは必要な依存関係を処理しません。

    多くの場合、特定のパッケージで利用可能なソースコードしかないので、これが唯一の方法です。また、./configureは通常あなたがあなたのパッケージを調整することを可能にするたくさんのオプションを受け入れます。

    どのソフトウェアがどのファイルをインストールしたかを見つけることができないこと、およびシステムからそれらを削除するための信頼できる方法の欠如は、このアプローチの主な欠点です。

  • RPM(Redhat Package Manager)

    rpmはすでに設定されコンパイルされたソフトウェアをあなたのシステムにインストールします。そしてまたそれを取り除くためにアンインストールされます。パッケージは誰かが作成する必要があります。この担当者は、どの機能を含めるか、およびパッケージをシステムレイアウトに最適に統合する方法をすでに決めています。依存関係のリストも付属しています。

    Rpmは多くのディストリビューションで使用されているので、インストールパス、依存関係、およびその他のハウスキーピングのものがうまく統合されるように、このrpmがディストリビューション用に書かれていることを確認したいことがよくあります。

    Debianシステムでは、同等のパッケージ形式は.debであり、インストールとデータベースはdpkgツールによって処理されます。

  • Yum

    yumrpmを囲む追加のラッパーです。それはあなたのディストリビューションのために利用可能なrpmファイルのそれ自身のデータベースを、一般的にはオンラインのリポジトリに保存します。ほとんどのディストリビューションの安定版では、そのデータベース内のすべてのパッケージは互いにうまく機能します。このデータベースは(例えばyum search some_nameで)検索することができます。

    それはまたあなたのために自動的に依存関係を解決します。パッケージ(およびいくつかの追加の助けを借りてそれらの依存関係)も同様に簡単にアンインストールできます。

    Debianシステムでは、同等のリポジトリと依存関係解決ツールがAptによって提供されています(apt-getaptitude)。

要約すると、単にソフトウェアが必要な場合は、まずyumを試してください。それがそこで利用できない場合、あなたは既存のrpmパッケージを見つけることを試みることができます。何もない場合や特別な要件がある場合は、ソースから構築してください。

109

YumとRPMは、yumがネットから自動的にパッケージを取得し、それらを(rpm -iを使用して)ワンステップでインストールすること以外は同じです。更新を容易にするために可能な限り使用する必要があります。 rpmで検索するパッケージがない場合にのみyumを使用します。使用可能な.rpmパッケージがない場合、またはコンパイル時オプションを変更する必要がある場合にのみmakeメソッドを使用します。

4
marcusw