パッケージマネージャーにユーザーごとのインストールとレジストリがないのはなぜですか?


23

私の知る限り、Linuxディストリビューションで最も人気のある2つのパッケージ管理スキームであるAptとDNF / Yumはどちらも、パッケージのシステム全体のインストールのみをサポートします。rootが所有するファイル、バイナリが入り(/usr)?/s?bin、設定が入ります/etc

ただし、ルート権限を持たない複数の個別ユーザーがいるシステムでは、常にではないにしても、ユーザーがそのディストリビューションで利用可能なアプリやユーティリティをインストールしたいことがよくあります。そして、彼/彼女は個人的なインストールで大丈夫であり、多くの/すべてのユーザーに一般的ではありません。

現在、インストール時に、異なるルートディレクトリまたはルートディレクトリのセットを使用してパッケージを適応できるようにすることは、ユーザーがこれを行えるように、大げさな、または信じられないほど複雑な考えではありません。また、インストールされたパッケージのユーザー固有のレジストリを管理することも、個々のユーザーが独自のパッケージDBを持っているかどうかに関係なく、大きな問題ではありません。

この機能がこれらの一般的なパッケージ管理システム/スキームに追加されていない理由は何ですか?

注:これは有益な質問です。つまり、私は人々この機能についてどう思うかではなく、過去について何を知っているについて尋ねています。


3
提供されていれば、スーパーユーザー権限を持たないコンピューター上のソースからソフトウェアをコンパイルする時間を大幅に節約できたでしょう。私は答えを知りたいと思っています。
ウェイジュン周

1
確かに、これに関する私の知識は最大ではありませんが、ユーザーが個人的にインストールしたソフトウェアの依存関係でハードドライブをいっぱいにすることを防ぐために行われた可能性があります。aptがルートとして実行されない場合、システムライブラリを更新できないため、ユーザーはシステムよりも新しいバージョンを使用できるようになります。すべてのユーザーと、古い小型のハードドライブが非常に速くいっぱいになるまで繰り返します。
テグス

1
@Thegs:これが考慮事項だったとは思いません。「これを行うとディスクドライブがいっぱいになる」などの考慮事項のため、重要な機能を回避するソフトウェアプロジェクトはほとんどありません。何らかのセキュリティリスクであれば、おそらく。また、マルチユーザーシステムでは、クォータがあります。とにかくこれを使用する人はほとんどいません。プラスこれはすべて憶測です...
einpoklum -モニカ復活

2
要するに、ユーザーデータを台無しにするのはシステムパッケージマネージャーの仕事ではありません。〜/ bin、〜/ libなどは、システムのPOVからの「ユーザーデータ」です。
cas

1
私は、を介して配布いくつかのパッケージを見てきたpipnpmgopkg-部分的に、彼らがしているディストリビューションに依存しないため、部分的に、彼らは一般的にユーザー固有のインストールを許可するため。
ボブ

回答:


15

一般的なパッケージマネージャーはこのユースケースに対応していませんが、いくつかのプロジェクトがあります。

パッケージメンテナーがパッケージが動的インストールディレクトリを正しくサポートするように注意する必要があるため、従来のパッケージマネージャーがこのユースケースに対応していない理由について、私の最善の推測は、パッケージの構築とインストールプロセスを大幅に複雑にしていることです。実際、RPMなどの多くの一般的なパッケージ形式は動的インストールディレクトリをサポートしますが、追加のオーバーヘッドが大きいため、パッケージの構築時にこの機能を利用するメンテナはほとんどいません。


RPMはこれをサポートしていますが、たとえばdpkgはサポートしていませんか?
アインポクルム-モニカを復活させる

1
.debパッケージをビルドしたことがないので、dpkgが正直であるとは知りません。dpkgは動的インストールディレクトリをサポートしていると思いますが、多くの.debパッケージメンテナがサポートしているとは思えません。
jayhendren

別のこと...これらは通常、ゼロから構築するか、ブートストラップするか、システム全体のレベルでインストールされているものに依存し続けますか?
アインポクルム-モニカを復活させる

1
システム全体のパッケージ管理では、インストールしていない場合は何も使用できないと想定しているため、ファイルに関する依存関係の検索は、それらのファイルを含むインストール済みパッケージに関する依存関係の検索と同等です。ただし、セカンダリパッケージマネージャーには、システム全体のパッケージ/ファイルとユーザー固有のパッケージ/ファイルがあります。パッケージマネージャーは通常、ダウンロードしたものやビルドしたものだけに依存していますか?
アインポクルム-モニカを

2
依存します。HomebrewやEmergeなどのソースからコンパイルするものは、通常、多くの依存関係の追跡なしでパッケージをビルドしようとします。他のものは、パッケージに依存関係をバンドルします(これは、ほとんどのApp Storeスタイルのツール、およびFlatpakとSnapの動作です)。Zero Installのような他のものは、すべての依存関係を個々のユーザーレベルパッケージとしてインストールします。
jayhendren

6

この機能がこれらの一般的なパッケージ管理システム/スキームに追加されていない理由は何ですか?

必要以上にシステムを管理する複雑さが増すためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.