Moblin と Maemo の合併に関して、さまざまなフォーラムやニュースグループでこの件について多くの騒ぎがあったことは知っています。これについてstackoverflow-fellowsがどう思うか知りたいです。RPM パッケージングが DEB よりも MeeGo にとってより良い選択となる利点は何ですか?
5 に答える
Linux Standard Baseのパッケージ形式として、RPMが指定されています。
..。
確かに、私にとっても、それは答えを求めて伸びています。RPMパッケージとDEBパッケージの両方の基本的な目的にそれほど大きな違いはありません。それぞれに独自の機能がありますが、最終的にはファイルとメタデータの両方のバッグになります。
MoblinとMaemoについては何も知りませんが、多くのソフトウェア パッケージングを行ってきました。選択できるオペレーティング システムでファイル形式を選択する場合は、deb よりも rpm を選択することをお勧めします。rpm 用のaptが存在する前は、redhat から派生したシステムよりも debian を大いに好んでいました。yumはaptとほぼ同じです。両方のパッケージングシステムを学んだので、 debよりもrpmを配信したいと思います。
rpmとdebの比較:
(1) Binary Dataの場合、rpmはcpioを使用し、debはarを使用します。cpioは、デフォルトの POSIX アーカイバとして選択されている、よりクロス プラットフォームの選択肢です。arは伝統的なアーカイバです。
(2)ソース データの場合、srpm (特殊なタイプの rpm) は、 rpmの構築プロセスを自動化する単一の特殊ファイルでcpioを使用し、任意のrpmがソースから正しく構築されたときに生成されます。一方、 debは、元のソース ベンダーの入力形式がサポートされているため、多数の圧縮システムを使用します。オプションで、一連のパッチ ファイルと、それぞれ異なるファイル形式の 3 つのマジック ファイルも使用できます。
(3)私の経験では、 debファイルを作成するよりも、機能するrpmパッケージを作成する方がかなり簡単です。
(4) rpmベースのシステムで機能的なchrootを作成するのは標準のrpmコマンドですが、debベースのシステムではdebootstrapと呼ばれる特殊なスクリプトです。
debian キャンプのaptだけが、redhat キャンプのyumよりも使いやすいように見えます。アップストリームのすべての QA ツールは、Redhat キャンプのほうが優れているようです。
rpmを作成することは魔法の芸術ではなく、人々を訓練しなければならないものに過ぎないことをお勧めします。
rpmとdeb QA ツールの比較:
(1) リポジトリビルダー: createrepoは、使いやすく理解しやすいツールです。mini-dinstall、dpkg-scanpackagesまたはdak (Debian アーカイブ キット)またはmini-dakまたはrepreproまたはdebarchiverまたはdebpoolまたは DebMarshalまたはapt-ftparchiveまたはdpkg-scansourcesは、複雑であるか、文書化が不十分であるか、重要な機能が欠落しており、場合によっては3つすべて。
(2) 「ソース deb」は、srpmが単一のファイルのように単一のファイルではないため、それらを移動するには特別なツールが必要です。
(3) サーバーの構築: Kojiはドキュメントで毎日pbuilderに勝っています。ただし、 pbuilderは静かでクールだと言わざるを得ません。
debベースのレポを作成するための明確な最適なツールが存在しないことに驚いています。私が試したものは貧弱です。私が試したものは、createrepoがrpm用であるのとほぼ同じくらい優れています。( repreproは rpm のcreaterepoとほぼ同じくらい優れていますが、1 つのリポジトリで同じパッケージの複数のバージョンを許可しないため、ほとんどの継続的デプロイ システムでは除外されます。
まとめ:rpmとdebの比較
rpmツールチェーンを選ぶ方が良いと思います。チャールズ・スチュワートによる興味深いリンクが重要なツールであると述べたように。
これら 2 つのパッケージ形式には、いくつかの重要な違いがあり、単なる技術的な違いではありません。
第 1 に、deb を作成して使用する APT (Advanced Packaging System) は、従来より依存関係の追跡をより適切にサポートしてきた完全なパッケージング システムです。パッケージをインストールするときに、パッケージが依存する他のパッケージを多数インストールする必要があることが多いため、これは重要です。そうしないと、多くの場合、パッケージが実行されません。このタイプの依存関係の解決は、deb パッケージ形式の強みの 1 つです。rpm はこれに対するサポートが不十分であり、その結果、他のツール (yum、zypper) が成長して、APT が行う高度な依存関係解決を試み、複製するようになりました。
第二に、Debian は一種の「リファレンス」プラットフォームです。「ユニバーサル オペレーティング システム」と自称することはほとんどありませんが、それにはいくつかの真実があります。Debian の社会的契約とフリー ソフトウェアのサポートは、単一のエンティティまたは企業によって管理されていないことを意味します。これは、実装が継続的な改善のために開かれており、ソフトウェアの統合が容易であることを意味します。その結果、OS は 8 チップ アーキテクチャで公式に動作し、他のいくつかは非公式に動作するため、deb パッケージは rpm が動作しないさまざまな種類のハードウェアにインストールされます。Debian は perl プログラミング言語や R 統計プログラミング言語などのリファレンス プラットフォームであるため、deb はシステムに簡単に統合するために必要な依存関係を持つ可能性が高いことを意味します。
これは、deb が技術的に優れていることが多いのは、そのパッケージ仕様のためだけでなく、それがプラグインする開発者のエコシステムのためでもあることを意味します。
Meego や他の同様のものの RPM のために DEB を放棄するという決定は、純粋に政治的かつビジネス的なものでした。技術的な意見は無視されていました。あなたの質問(質問として)は一般的な文脈では有効ですが、Meegoの場合、後ですでに完了したステップを正当化しようとしているように見えます。それにもかかわらず、賛否両論の技術的メリットを知ることは決してありません.Meegoは現在、debとrpmの競合が排除されている別の方法で行われています.