Mengapa manajer paket tidak memiliki instalasi dan registrasi per pengguna?

23

Baik Apt dan DNF / Yum, dua skema manajemen paket paling populer untuk distribusi Linux sepengetahuan saya, hanya mendukung instalasi seluruh paket sistem: File yang dimiliki oleh root, binari masuk (/usr)?/s?bin, pengaturan masuk /etcdan seterusnya.

Namun, pada sistem di mana terdapat beberapa pengguna individu yang tidak memiliki hak akses root, sangat sering - jika tidak selalu - terjadi bahwa pengguna ingin menginstal beberapa aplikasi atau utilitas yang tersedia untuk distribusi itu; dan dia baik-baik saja dengan instalasi yang bersifat pribadi dan tidak umum bagi banyak / semua pengguna.

Sekarang, ini tampaknya bukan ide yang dibuat-buat atau bahkan sangat rumit untuk paket yang dapat diadaptasi, pada saat instalasi, dengan direktori root yang berbeda atau sekumpulan direktori root, sehingga pengguna dapat melakukan ini. Juga tidak banyak masalah untuk mengelola registri khusus pengguna dari paket yang diinstal (apakah pengguna individu memiliki DB paket sendiri atau tidak).

Jadi apa alasan bahwa fungsi ini belum ditambahkan ke sistem / skema manajemen paket yang umum itu?

Catatan: Ini adalah pertanyaan informatif, yaitu saya bertanya tentang apa yang orang ketahui tentang masa lalu , bukan apa yang dipikirkan orang tentang fitur ini.

einpoklum - mengembalikan Monica
sumber
3
Jika sudah disediakan itu akan menghemat banyak waktu saya mengkompilasi perangkat lunak dari sumber di komputer yang saya tidak punya hak istimewa pengguna super. Saya ingin tahu jawabannya.
Weijun Zhou
1
Memang pengetahuan saya tentang ini bukan yang terbaik, tapi itu bisa dilakukan untuk mencegah pengguna mengisi hard drive dengan dependensi dari perangkat lunak yang mereka instal secara pribadi. Jika apt tidak dijalankan sebagai root, ia tidak dapat memperbarui pustaka sistem, jadi pengguna sekarang memiliki versi yang lebih baru daripada sistem. Ulangi untuk setiap pengguna dan yang lebih tua, hard drive yang lebih kecil akan mengisi cukup cepat.
Thegs
1
@Thegs: Saya ragu bahwa ini adalah pertimbangan. Beberapa proyek perangkat lunak menghindari fitur-fitur signifikan karena pertimbangan seperti "jika orang melakukan ini mereka akan mengisi disk drive mereka". Jika itu semacam risiko keamanan, mungkin. Juga, pada sistem multi-pengguna, akan ada kuota; dan sedikit orang yang akan menggunakannya. Plus ini semua spekulasi ...
einpoklum - mengembalikan Monica
2
Singkatnya: Ini bukan tugas manajer paket sistem untuk mengacaukan data pengguna. ~ / bin, ~ / lib, dll, dari POV sistem, "data pengguna".
cas
1
Saya telah melihat beberapa paket didistribusikan melalui pip, npmdan gopkg- sebagian karena mereka distro-independen dan sebagian karena mereka umumnya mengizinkan instalasi khusus pengguna.
Bob

Jawaban:

15

Sementara manajer paket umum tidak menangani kasus penggunaan ini, ada beberapa proyek yang melakukannya:

Tebakan terbaik saya mengapa manajer paket tradisional tidak menangani kasus penggunaan ini adalah bahwa hal itu sangat mempersulit pembuatan paket dan proses instalasi, karena pengelola paket harus sangat berhati-hati untuk memastikan bahwa paket mereka dengan benar mendukung direktori instalasi yang dinamis. Bahkan, banyak format paket umum seperti RPM mendukung direktori instalasi yang dinamis, tetapi hampir tidak ada pengelola yang memanfaatkan fitur ini ketika membangun paket karena tingginya biaya tambahan.

jayhendren
sumber
Jadi, RPM mendukung ini tetapi, katakanlah, dpkg tidak?
einpoklum - mengembalikan Monica
1
Saya tidak tahu tentang dpkg cukup jujur, karena saya tidak pernah membangun paket deb. Saya kira dpkg mendukung direktori instalasi dinamis, tapi saya ragu banyak pengelola paket deb melakukannya.
jayhendren
Hal lain ... apakah ini biasanya dibuat dari awal, bootstrap, atau tetap mengandalkan apa pun yang diinstal pada level sistem?
einpoklum - mengembalikan Monica
1
Manajemen paket seluruh sistem mengasumsikan tidak ada yang tersedia jika tidak menginstalnya, jadi mencari dependensi dalam hal file sama dengan mencari dependensi dalam hal paket yang diinstal yang berisi file-file itu. Tetapi dengan manajer paket sekunder, ada paket / file seluruh sistem dan paket / file khusus pengguna. Apakah manajer paket biasanya hanya mengandalkan apa yang telah mereka unduh dan / atau bangun?
einpoklum - mengembalikan Monica
2
Tergantung. Yang dikompilasi dari sumber seperti Homebrew dan Emerge umumnya hanya mencoba membangun paket tanpa banyak pelacakan ketergantungan. Yang lain membundel dependensi dengan paket-paket (ini adalah cara sebagian besar alat gaya App Store bekerja, serta Flatpak dan Terkunci). Lainnya seperti Zero Install menginstal semua dependensi sebagai paket tingkat pengguna individu.
jayhendren
6

Jadi apa alasan bahwa fungsi ini belum ditambahkan ke sistem / skema manajemen paket yang umum itu?

Karena itu meningkatkan kompleksitas mengelola sistem di luar apa yang diperlukan.

Elshar
sumber