web-dev-qa-db-ja.com

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

エンドユーザーと基礎となる低レベルパッケージマネージャー(aptyastpacmanなどの間のインターフェースとして機能する統合パッケージマネージャーがないのはなぜですか? 。)?

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

31
vonPetrushev

まず、あります。問題は、統一されたパッケージマネージャーがないことではなく、10個あるということです。

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

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

ただし、結局のところ、問題(または利点)は、すべての人を満足させようとしても本当に満足させようとするメタファッションではなく、希望どおりに機能するものが好きな人です。これが、そもそも私たちが何十億兆ものディストロを持っている理由です。それが、私たちが非常に多くの異なるデスクトップ環境とウィンドウマネージャーを持っている理由です(そして、事実、これらは実際にはまったく異なる種類のものです)。

普遍的なパッケージを書く方法、またはそれらをすべて理解するマネージャーを持つ方法、または一方をもう一方に変換するためのAPIを持つ方法については、未解決の提案がまだありますが、最終的にはUnixが最適ですその哲学によれば...各ツールは1つのことを行い、それをうまく行います

複数のことを実行しようとするツールがあるときはいつでも、そのうちの1つではそれほど上手くいきません。たとえば、poldekはdebパッケージの依存関係を処理するのが面倒です。

35
Caleb

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

だから、あなた自身の言葉を使うと、それは行うのが難しいため、実用的ではありません-また、誰からも恩恵を受けることはほとんどないからです。

10
rozcietrzewiacz

あなたが説明したこと、

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

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

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

Edit:サポートされているバックエンドのリストについては、こちらを参照してください。Edit2:役に立たない発言を削除しました。

8
sr_

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

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

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

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

つまり、基本的には、政治的すぎる、難しすぎる、リスクが高すぎる、そしてそれを実行してもメリットがないということです。

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

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

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

回答:人によってストロークが異なります。

6
jwd