web-dev-qa-db-ja.com

.debおよび.rpmとは何ですか。また、それらは.msiとどのように異なりますか?

これらのファイル形式とは何ですか?Windowsの.msi形式とどのように異なりますか?また、これらのパッケージ管理スキームの長所と短所は何ですか?

33
deathholes

.deb.rpmなどのファイルは、.Zipファイルに似ています。それらは、特定のアプリケーションやファイルのライブラリに関連するファイルを含むファイルおよびサブディレクトリのディレクトリツリーです。

ディストリビューション

.debファイルは、Debianから派生したLinuxディストリビューション(Ubuntu、Linux Mintなど)を対象としています。 .rpmファイルは、主にRedSベースのディストリビューション(Fedora、CentOS、RHEL)から派生したディストリビューションと、openSuSEディストリビューションで使用されます。

それらの何が特別なのですか?

これらのファイルには、.Zipファイルとは異なる特別な特性が1つあります。これらのファイルには、これらのファイルのいずれかをインストールするシステムで実行されているパッケージマネージャーソフトウェアに追加のタスクを実行するように指示するルールを含む仕様を含めることができます。これらのタスクには、次のようなものが含まれます。

  • システムにユーザーアカウントを作成する
  • 実際に.debまたは.rpmファイルに含まれていない構成ファイルを作成/変更する
  • インストール後にファイルの所有権/権限を設定する
  • パッケージをインストールするシステムでrootとしてコマンドを実行します
  • 依存関係。どちらの形式にも、インストール前にシステムに存在する必要がある名前、パッケージ、サービス名を含めることができます。

.msiファイルはどうですか?

.msiファイルは.debおよび.rpmファイルに似ていますが、おそらくさらに洗練されています。 .msiファイルはWindowsインストーラーによって利用され、次のような追加機能を提供します。

  • GUIフレームワーク
  • アンインストールシーケンスの生成
  • それ自体のフレームワーク-サードパーティのインストーラーが使用
  • ロールバック
  • 広告
  • ユーザーインターフェース
  • 等.

より詳細な説明が必要な場合は、これらのテーマに関するさまざまなウィキペディアのページをご覧になることをお勧めします。

参考文献

43
slm

他の回答では、.debと同様の.rpmおよび.msiの品質に触れます。それらはすべて、いくつかの特別なことができる圧縮形式のソフトウェアを含んでいます。すでに述べた追加事項には、ユーザーの追加、インストール前およびインストール後のタスク、システムへのプログラムの登録(Windowsレジストリ、xdg-dirs、OpenRC/systemd initなど)が含まれていました。

フォーマットを区別する(そして巨大なプロである)のは依存関係です。 .debファイルと.rpmファイルの両方で、必須ソフトウェアとしてインストールする必要のある他のプログラムの名前とバージョンをリストできます。これ自体は単なる情報ですが...

通常、.debファイルの場合とは異なり、.rpmおよび.msiファイルを直接操作することはありません。実際、前述のように、.debは通常、特定のディレクトリレイアウトに含まれるファイルを含むxzで圧縮された単なるアーカイブ(arまたはtar)です。代わりに、dpkgrpmなどのツールを使用して、これらのファイルを操作します。

dpkgおよびrpmは、.debおよび.rpmファイルの内容をインストールし、すべての必須ソフトウェアがインストールされていることを確認します。これらのプログラムを実行することは、.msiファイルをクリックすることに似ています。ただし、ユーザーは通常、dpkgまたはrpmと対話せず、代わりにapt-getおよびyumを使用してパッケージをインストールします。これらのツールは、ウィンドウ上で正確な類似物を持っていません。

apt-getyumはどちらも、リモート(またはローカル)リポジトリからファイルをフェッチし、.debおよび.rpmファイルに格納されている依存関係情報を使用して、前提条件が満たされていません。これらのツールを使用すると、他に必要なソフトウェアを知ったり心配したりする必要はありません。apt-get install chromiumを指定するだけで、apt-getがgtk +、alsa、特定のXライブラリなどをインストールしていることを確認できますこれらの.debおよび.rpmファイルを手動で検索してインストールする必要はありません。

apt-getyumは大きな2つのパッケージマネージャーです。emergepacmanもあり、基本的なメカニズムは異なりますが同じジョブを実行します。

31
casey

WindowsのMSIファイルとまったく同じ機能を持っています。

  • ソフトウェアをレジストリに登録し、
  • そのパッケージでインストールされているファイルを登録します。

Linuxでは、他のパッケージ間の依存関係も管理します。

このパッケージ管理形式は他にも多くのことを行いますが、これが主な機能です。

4
Vinz

.rpmファイルはRPMパッケージであり、Red HatおよびRed Hatから派生したディストリビューション(Fedora、RHEL、CentOSなど)で使用されるパッケージタイプを指します。 .debファイルはDEBパッケージです。これは、DebianおよびDebian派生(Debian、Ubuntuなど)で使用されるパッケージタイプです。

ダウンロードすると、通常、関連するディストリビューションのrpmおよびdpkgコマンドを介してそれぞれインストールされます。言い換えると、これらは、自分自身をインストールする実行可能ファイルである.msiまたは.exeセットアップファイルではなく、rpmおよびdpkgによってインストールされるファイルです。

RPMおよびDEBパッケージは、いくつかの点でMSIと異なります。

  • 上記のように、これらはインストールに他のツール(つまり、rpmおよびdpkg)を必要とするファイルです。
  • インストールされると、それらはデータベースに追加されますが、これはMSIファイルには当てはまりません。 MSIファイルはプログラムをレジストリにリストしますが、コントロールパネルによるアンインストールでは、ディスクからインストール済みファイルallを完全に削除することはほとんどありません。したがって、RPMおよびDEBパッケージがアンインストールされると、すべてのファイルが完全に削除されます。
  • 通常、直接ダウンロードしてインストールするのではなく、それぞれyumaptitudeなどのパッケージマネージャーを介して行います。関連するシステム用にコンパイルされたパッケージを提供する、いわゆるリポジトリがあり、パッケージマネージャーがインストールされます。リポジトリ内のデータから自動的にすべての依存関係。
  • インストールされたパッケージは通常、いくつかの構成ツールを実行します。たとえば、すでにLightDMがインストールされているシステムにGDMをインストールする場合、ツールはLightDMのGDMを使用するかどうかを尋ねます。
  • パッケージをインストールするとき、依存関係以外のいくつかのパッケージが提案されます。これは、パッケージが必須ではないことを示しますが、ユーザーにとって役立つ場合があります。
2
Davidson Chua

どちらも .debおよび.rpmは、GNU/Linuxディストリビューション用のソフトウェアパッケージで、ソフトウェア(プログラム、アプリケーションなど)と、ソフトウェア自体に関する「* installer *」ソフトウェアの情報と、何をどこにインストールするかについての説明が含まれています。正しく。

  • .debDebian Software Package 、Debian(ベース)ディストリビューション。例: apt/aptitude(コマンドライン)、またはgraphically "Synaptic" "Ubuntu Software Center"、 "Gdebi "、…
  • .rpmRed Hat Package Manager :Fedora/Red Hat(ベース)Linuxディストリビューション。例: yum(コマンドライン)、またはgraphicallyyumex
  • .msi is→ Microsoft Installer :Microsoft Windows OSの場合、上記とまったく同じ

インストーラー自体も、パッケージのメンテナンス、更新、削除を処理できます。また、ここで、「installer」は、このタスクを正しく実行するためのソフトウェアを意味します。もちろん、ユーザー自身が前述の情報を提供して、そのようなことを実行しますタスクを手動で。

1
erch

.deb:Ubuntu、Linux MintなどのDebianベースのLinuxディストリビューションに使用されるDebianパッケージ。

.rpmrpm RHEL、Fedora、CentOSなどのRed HatベースのLinuxディストリビューション用のインストーラー

.msi:Windowsプラットフォーム用のバイナリインストーラー

1