Mengapa tidak ada manajer paket yang benar-benar terpadu untuk Linux?

31

Mengapa tidak ada manajer paket terpadu yang bertindak sebagai antarmuka antara pengguna akhir dan mendasari manajer paket tingkat rendah ( apt, yast, pacman, dll)?

Apakah itu sulit dilakukan dan karenanya tidak praktis, atau adakah hambatan yang tulus sehingga tidak mungkin dilakukan?

vonPetrushev
sumber
14
Dugaan saya adalah bahwa kita akan mendapatkan teori medan terpadu jauh sebelum kita mendapatkan manajer paket terpadu ...
2
Untuk alasan yang sama persis kami tidak ingin distribusi tunggal - Saya suka cara distro saya melakukannya. Jika tidak, maka Anda bebas menggunakan yang lain atau menulis milik Anda sendiri. Sebelum Anda menyadarinya, Anda memiliki manajer paket sebanyak yang Anda lakukan programmer.
new123456
2
bukankah maksud Anda manajer paket tingkat rendah rpm, dep, sumber? Yang Anda daftarkan adalah, sendiri frontend.
frogstarr78

Jawaban:

35

Pertama-tama, ada. Masalahnya bukan bahwa tidak ada manajer paket terpadu, masalahnya ada sepuluh dari mereka - serius.

Mari kita favorit saya: poldek. Ini adalah ujung depan pengguna untuk manajemen paket yang dapat berjalan di beberapa distro yang berbeda dan mengelola salah satu rpmatau debpaket. Poldek tidak melakukan hal-hal yang dilakukan rpm (ia membiarkannya ke rpm) dan hanya mengirimkan perintah yang tepat tanpa pengguna harus mencari tahu semua kekacauan itu.

Tapi masalahnya tidak berhenti di situ. Setiap orang memiliki ide yang berbeda tentang seperti apa tampilan ujung pengguna dan bagaimana fungsinya dan opsi apa yang harus diekspos. Jadi orang lain sudah menulis sendiri. Sebenarnya banyak manajer front-end paket yang digunakan orang-orang di distro umum saat ini mampu menangani lebih dari satu backend.

Namun, pada akhirnya, masalahnya (atau keuntungan) adalah orang-orang menyukai hal-hal berfungsi persis seperti yang mereka inginkan, bukan dalam mode meta yang mencoba memuaskan semua orang, tetapi gagal untuk benar-benar membuat orang bahagia. Ini adalah alasan kami memiliki sekian banyak distro gazillion di tempat pertama. Itulah alasan kami memiliki begitu banyak Lingkungan Desktop dan Pengelola Jendela yang berbeda (dan faktanya hal-hal itu sebenarnya berbeda).

Masih ada proposal luar biasa untuk cara menulis paket universal atau memiliki manajer yang memahami semuanya atau memiliki api untuk mengkonversi satu ke yang lain ... tetapi pada akhirnya Unix terbaik jika digunakan sesuai dengan filosofi ... setiap alat melakukan satu hal dan melakukannya dengan baik .

Setiap kali Anda memiliki alat yang mencoba melakukan lebih dari satu hal, itu akhirnya menjadi tidak sebaik di salah satu dari mereka. Misalnya, poldekpayah menangani dependensi paket deb.

Caleb
sumber
1
Cukup banyak apa yang akan saya katakan. Dan terus terang, selama barang-barang beroperasi dengan baik di bawah tenda (katakanlah, dengan mengikuti standar LSB) maka saya tidak benar-benar melihat masalahnya.
Shadur
10
++ untuk "UNIX adalah yang terbaik ketika ... setiap alat melakukan satu hal dan melakukannya dengan baik". Kadang-kadang saya pikir terlalu banyak alat jauh dari jalan itu ...
ktf
Pasang tautan ke poldek.pld-linux.org --- dapat berguna untuk menyelidiki sesuatu yang memiliki pembaruan terakhir pada tahun 2005.
sorin
10

Singkatnya: karena setiap distribusi menggunakan pendekatan berbeda untuk manajemen paket. Mereka tidak kompatibel. Strategi manajemen yang berfungsi paling baik untuk Ubuntu akan memiliki sedikit akal pada Arch dll. Seorang manajer paket "universal" (distribusi-independen) hanya akan menjadi lapisan tambahan dari antarmuka pengguna, yang tidak akan pernah bekerja sebaik manajer khusus setiap distribusi.

Jadi, menggunakan kata-kata Anda sendiri, itu sulit dilakukan dan karena itu tidak praktis - juga karena hampir tidak ada orang yang mendapat manfaat darinya.

rozcietrzewiacz
sumber
Solusi manajemen paket bersifat portabel untuk sistem lain. ive terlihat portage di debian. Namun nama gim ini adalah untuk menemukan sesuatu yang berfungsi untuk pengguna, misalnya. tidak masuk akal untuk menjadikan portage sebagai default di ubuntu. Kami tampaknya melakukan cukup baik sejauh ini.
Silverfire
8

Alasan historis, terutama. Beberapa sistem manajemen paket dibentuk sekitar waktu yang sama - khususnya .rpm dan .deb. Masing-masing memiliki penganutnya dan masing-masing cukup baik sehingga tidak ada manajer paket tunggal yang memiliki keunggulan menarik. Distributor tentu tidak akan melihat titik dalam membangun kembali sistem mereka untuk mengimplementasikan manajer paket yang berbeda.

Ini juga akan memerlukan setiap paket dalam sistem (10.000 dalam kasus debian) untuk dibangun kembali. Ini juga akan membutuhkan sistem migrasi yang lancar untuk diimplementasikan sehingga pengguna sistem dapat beralih dari yang lama ke manajer paket yang baru. Upaya untuk bermigrasi akan sangat besar, dan secara eksponensial lebih besar untuk menguji migrasi, sehingga Anda hampir pasti akan mendapatkan banyak kerusakan. Ini akan menghasilkan banyak penumpang marah.

Setiap distro mempertahankan set dependensinya sendiri berdasarkan apa yang dibangun untuk rilis itu. Repositori paket universal akan terlalu sulit untuk dikoordinasikan di antara distribusi karena konflik ketergantungan hampir pasti akan muncul. Oleh karena itu manfaat sebenarnya dari sistem manajemen paket terpadu (paket universal) tidak akan mungkin terwujud dalam praktiknya.

Akhirnya, siapa yang bisa memilih manajer paket standar universal? Komik XKCD yang dirujuk dalam komentar pada OP merangkum mode kegagalan biasa dalam jenis latihan ini. Membakukan hal semacam ini akan sangat politis dan kemungkinan menghasilkan sesuatu yang tidak dapat digunakan, atau cacat yang begitu mendalam sehingga hal itu melahirkan putaran lain mengenai standar - jika para pihak dapat mencapai kesepakatan sama sekali.

Jadi, pada dasarnya ia berujung pada: terlalu politis, terlalu keras, terlalu berisiko dan tidak ada manfaat untuk direalisasikan dengan melakukannya.

ConcernedOfTunbridgeWells
sumber
8

Apa yang Anda gambarkan,

yang bertindak sebagai antarmuka antara pengguna akhir dan manajer paket low-lever yang mendasarinya

Kedengarannya seperti PackageKit bagi saya, yaitu ,

PackageKit adalah sistem yang dirancang untuk mempermudah pemasangan dan pemutakhiran perangkat lunak di komputer Anda. Tujuan desain utama adalah untuk menyatukan semua perangkat lunak perangkat lunak grafis yang digunakan dalam distribusi yang berbeda, dan menggunakan beberapa teknologi terbaru seperti PolicyKit untuk membuat proses menyedot lebih sedikit.

Sunting: Lihat di sini untuk daftar backend yang didukung. Sunting2: Menghapus komentar yang tidak berguna.

sr_
sumber
6

Pertama, pahami bahwa "Linux" bukan sistem operasi. Itu adalah kernel. Manajer paket adalah konsep tingkat OS, bukan konsep tingkat kernel. Oleh karena itu meminta manajer paket terpadu untuk Linux tidak terlalu sensual.

Namun, jika Anda bertanya mengapa berbagai sistem operasi yang menggunakan kernel Linux tidak memiliki manajer paket yang kompatibel, Anda juga mungkin bertanya mengapa Windows dan Mac tidak memiliki manajer paket yang kompatibel. Atau dua sistem operasi lainnya.

OS yang berbeda memenuhi kebutuhan pengguna yang berbeda, dan manajer paket adalah bagian darinya. Mengapa tidak semua distro Linux memiliki window manager yang sama? Atau datang dengan semua perangkat lunak pra-instal yang sama?

Jawaban: Stroke berbeda untuk orang yang berbeda.

jwd
sumber
1
+1 untuk '"Linux" bukan sistem operasi'
Silverfire