Linux用の真に統一されたパッケージマネージャーがないのはなぜですか?


31

なぜエンドユーザーとその下の低レベルのパッケージマネージャ(の間のインタフェースとして機能する統一されたパッケージマネージャが存在しないaptyastpacman、など)?

実行するのは難しく、したがって実用的ではありませんか、それとも実行を不可能にする真の障害がありますか?


14
私の推測では、私たちが取得することで統一場理論を、我々は統一パッケージマネージャを取得する前に...長い


2
まったく同じ理由で、単一のディストリビューションは必要ありません-私のディストリビューションのやり方が好きです。そうでない場合は、別のものを自由に使用したり、独自に作成したりできます。それを知る前に、あなたはプログラマーと同じ数のパッケージマネージャーを持っています。
new123456

2
低レベルパッケージマネージャーのrpm、dep、sourceを意味しませんか?リストしたものは、それ自体がフロントエンドです。
frogstarr78

回答:


35

まず第一に、あります。問題は、統合パッケージマネージャーが存在しないことではなく、10個あることです。

私のお気に入りを見てみましょうpoldek。パッケージ管理用のユーザーフロントエンドであり、いくつかの異なるディストリビューションで実行し、いずれかrpmまたはdebパッケージを管理できます。Poldekはrpmが行うことを行いません(それをrpmに任せます)。ユーザーがすべての混乱を理解する必要なく、正しいコマンドを送信するだけです。

しかし、問題はそれだけではありません。ユーザーフロントエンドがどのように見えるか、どのように機能するか、どのオプションを公開するかについては、誰もが異なる考えを持っています。それで、他の人々は彼ら自身を書きました。実際、今日一般的なディストリビューションで使用されているパッケージフロントエンドマネージャーの多くは、複数のバックエンドを処理できます。

しかし、結局のところ、問題(または利点)は、物事が好きなように機能することを好む人々であり、すべての人を本当に満足させようとするだけでは満足させようとしないメタスタイルではありません。これが、そもそも無数の膨大な数のディストリビューションがある理由です。それが私たちが非常に多くの異なるデスクトップ環境とウィンドウマネージャーを持っている理由です(そして実際、それらは実際にはまったく異なる種類のものです)。

ユニバーサルパッケージを書く方法や、それらすべてを理解するマネージャー、または相互に変換するためのAPIを持つ方法については、まだ優れた提案があります...しかし、最終的には、Unixはその哲学に従って使用する場合に最適です...各ツール1つのことをしてうまくやる

複数のことを行おうとするツールがあるときはいつでも、そのうちの1つが得意ではありません。たとえば、poldekdebパッケージの依存関係の処理が面倒です。


1
私が言っていたことのほとんど。そして率直に言って、(LSB規格に準拠するなどして)内部で適切に相互運用する限り、問題はあまり見られません。
シャドゥール

10
++の場合、「UNIXが最適なのは...各ツールが1つのことを実行し、適切に実行する場合」。時々、あまりにも多くのツールがその道から外れていると思う
...-ktf

リンクを張ってpoldek.pld-linux.org 2005年に最後の更新を持っていた何かを調査するために有用である可能性---
ソリン

10

つまり、各ディストリビューションはパッケージ管理に異なるアプローチを使用しているためです。それらは単に互換性がありません。Ubuntuに最適な管理戦略は、Archなどではほとんど意味がありません。「ユニバーサル」(ディストリビューションに依存しない)パッケージマネージャーは、ユーザーインターフェースの追加レイヤーにすぎず、各ディストリビューションの特定のマネージャーと同じようには機能しません。

したがって、自分の言葉を使用するのは難しく、したがって実用的ではありません -また、だれもそれから利益を得ることはほとんどないからです。


パッケージ管理ソリューションは、他のシステムに移植可能です。iveはdebianのPortageを見ました。ただし、ゲームの名前は、ユーザーに役立つものを見つけることです。Portageをubuntuのデフォルトにすることはあまり意味がありません。とにかくこれまでのところかなりうまくやっているようです。
シルバーファイア

8

主に歴史的な理由。同じ時期にいくつかのパッケージ管理システムが確立されました-特に.rpmと.deb。それぞれに信奉者がいて、それぞれが十分に優れているため、単一のパッケージマネージャーに魅力的な利点はありません。ディストリビューターは、システムを完全に再構築して別のパッケージマネージャーを実装することには意味がありません。

また、システム内の各パッケージ(debianの場合は10,000個)を再構築する必要があります。また、システムのユーザーが古いパッケージマネージャーから新しいパッケージマネージャーに移行できるように、スムーズな移行システムを実装する必要があります。移行の努力は実行不可能なほど大きく、移行をテストするために指数関数的に大きくなるため、ほぼ確実に多くの破損が発生します。これは多くの怒り狂ったパンターを生み出します。

各ディストリビューションは、そのリリース用に構築されたものに基づいて、独自の依存関係セットを維持します。依存関係の競合はほぼ確実に発生するため、ユニバーサルパッケージリポジトリはディストリビューション間で調整するのが困難です。したがって、とにかく実際には統合パッケージ管理システム(ユニバーサルパッケージ)の実際の利点を実現することは不可能です。

最後に、誰がユニバーサル標準パッケージマネージャーを選択できますか?OPのコメントで参照されているXKCDコミックは、この種の演習における通常の失敗モードを要約しています。この種のことを標準化することは非常に政治的であり、使い物にならないものになる可能性が高いか、または重大な欠陥が発生する可能性が高いため、当事者がまったく合意に達することができれば、標準に関する別のラウンドがさらに発生します。

したがって、基本的には、政治的すぎる、難しすぎる、危険すぎる、そしてそれを実行しても利益が得られないということになります。


8

あなたが説明したこと、

エンドユーザーと基盤となる低レバーパッケージマネージャーとの間のインターフェイスとして機能します

私に PackageKitのように聞こえます。つまり

PackageKitは、コンピューターへのソフトウェアのインストールと更新を簡単にするために設計されたシステムです。主な設計目標は、さまざまなディストリビューションで使用されるすべてのソフトウェアグラフィカルツールを統合し、PolicyKitなどの最新のテクノロジーを使用してプロセスの負荷を軽減することです。

編集: サポートされているバックエンドのリストについては、こちらをご覧ください。 Edit2:無駄な発言を削除しました。


6

まず、「Linux」はオペレーティングシステムではないことを理解してください。カーネルです。パッケージマネージャーはOSレベルの概念であり、カーネルレベルの概念ではありません。したがって、Linux用の統合パッケージマネージャーを求めることは、あまり意味がありません。

ただし、Linuxカーネルを使用するさまざまなオペレーティングシステムに互換性のあるパッケージマネージャーがない理由を尋ねる場合、WindowsおよびMacに互換性のあるパッケージマネージャーがない理由を尋ねることもできます。または、他の2つのオペレーティングシステム。

さまざまなOSがさまざまなユーザーのニーズに対応しており、パッケージマネージャーもその一部です。すべてのLinuxディストリビューションに同じウィンドウマネージャーがないのはなぜですか?または、すべて同じプリインストールソフトウェアが付属していますか?

回答:異なる人々のための異なるストローク。


1
「「Linux」はオペレーティングシステムではない」ための+1
Silverfire
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.