Ekosistem pengurusan pakej macOS sedang mengalami kebangkitan semula, dengan Kelp muncul sebagai pesaing terbaru dalam bidang alternatif yang semakin berkembang kepada Homebrew yang dominan. Alat berasaskan Go ini bertujuan untuk memudahkan pemasangan pakej binari pada macOS dengan memanfaatkan terus pelepasan GitHub, menangani masalah khusus yang telah mengecewakan pengguna Homebrew.
Kekecewaan Terhadap Homebrew Mendorong Penyelesaian Alternatif
Ramai pembangun telah menyuarakan ketidakpuasan yang semakin meningkat terhadap tingkah laku Homebrew, terutamanya kecenderungannya untuk mengemaskini semua pakej secara automatik ketika memasang satu pakej baharu. Tingkah laku ini telah menyebabkan gangguan yang ketara bagi sesetengah pengguna, dengan seorang pengulas menerangkan bagaimana pemasangan pakej yang mudah mengakibatkan pengemaskinian seluruh sistem selama satu jam diikuti dengan seminggu menyelesaikan masalah untuk memulihkan fungsi normal. Pengalaman ini telah mewujudkan peluang untuk penyelesaian alternatif seperti Kelp, yang menjanjikan pendekatan yang lebih terkawal terhadap pengurusan pakej.
Minggu lepas saya terpaksa memuat turun satu kebergantungan pada Homebrew. Sudah lama saya tidak memuat turun apa-apa kerana peranti peribadi saya stabil untuk jangka masa yang panjang, jadi kebergantungan sudah ketinggalan zaman. Homebrew memutuskan untuk menaik taraf SEMUA sebelum ia memulakan muat turun baharu, semuanya tanpa arahan saya. Sejam kemudian, saya berhadapan dengan peranti yang penuh dengan masalah, dan ia mengambil masa seminggu untuk kembali normal sepenuhnya.
Walaupun sesetengah pengguna telah menemui pemboleh ubah persekitaran seperti HOMEBREW_NO_AUTO_UPDATE=1
dan HOMEBREW_NO_ANALYTICS=1
yang boleh mengurangkan tingkah laku pengemaskinian agresif Homebrew, ramai yang mempersoalkan mengapa ini bukan tetapan lalai. Perbincangan komuniti mendedahkan pemboleh ubah persekitaran tambahan yang boleh menyesuaikan tingkah laku Homebrew dengan lebih lanjut, menunjukkan bahawa konfigurasi lalai alat ini mengutamakan kemudahan berbanding kawalan pengguna.
Pengurus Pakej Alternatif Homebrew Yang Ketara
Alat | Bahasa | Fokus | Ciri-ciri Utama |
---|---|---|---|
Kelp | Go | Keluaran binari GitHub | Konfigurasi JSON ringkas, muat turun binari secara langsung |
MacPorts | TCL | Pakej terkompil | Ekosistem matang, pemasangan terpencil |
Nix/nix-darwin | Nix | Persekitaran boleh ulang | Pakej tidak berubah, sokongan kembali ke versi sebelumnya |
Mise | Tidak diketahui | Pengurusan versi | Kebergantungan khusus projek, pelari |
Pixi | Rust | Pakej Conda | Persekitaran pantas dan terpencil untuk setiap alat |
Bin | Tidak diketahui | Binari GitHub | Pengurusan binari ringkas |
Eget | Tidak diketahui | Binari GitHub | Muat turun binari secara langsung |
Devbox | Tidak diketahui | Persekitaran pembangunan | Berasaskan Nix, pengasingan projek |
Pemboleh Ubah Persekitaran Homebrew Yang Biasa
HOMEBREW_NO_AUTO_UPDATE=1
- Menghalang kemas kini automatikHOMEBREW_NO_ANALYTICS=1
- Menyahaktifkan pengumpulan analitikHOMEBREW_NO_EMOJI=1
- Menyahaktifkan emoji dalam outputHOMEBREW_NO_ENV_HINTS=1
- Menyahaktifkan petunjuk persekitaranHOMEBREW_NO_INSTALL_CLEANUP=1
- Menghalang pembersihan automatikHOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
- Melangkau kemas kini yang bergantung
Bidang Pesaing yang Sesak
Kelp memasuki ruang yang semakin kompetitif. Alternatif yang telah lama wujud seperti MacPorts dan pkgsrc telah disertai oleh pilihan yang lebih baharu termasuk Nix/nix-darwin, Mise, Pixi, Bin, Eget, Devbox, dan Ubi. Setiap satu menawarkan pendekatan berbeza kepada pengurusan pakej, dengan tahap kerumitan dan set ciri yang berbeza-beza.
Nix, khususnya, menerima perhatian yang ketara dalam perbincangan, dengan penyokongnya menekankan katalog pakej yang komprehensif dan keupayaan pengasingan yang berkuasa. Walau bagaimanapun, pengkritik menunjukkan keluk pembelajaran yang curam, sintaks arahan yang kompleks, dan isu keserasian sesekali pada macOS. Ketegangan ini menggambarkan pertukaran asas antara kuasa dan kesederhanaan yang menentukan landskap pengurusan pakej.
Beberapa pengulas menyatakan bahawa alat yang lebih mudah yang fokus pada kes penggunaan tertentu mungkin semakin mendapat daya tarikan. Alat seperti Bin dan Eget khusus menyasarkan pelepasan binari GitHub - ceruk yang sama yang ditangani oleh Kelp. Ini mencadangkan trend ke arah alat yang dibina untuk tujuan tertentu yang cemerlang dalam tugas yang lebih sempit dan bukannya cuba menyediakan penyelesaian komprehensif.
Pendekatan dan Pembezaan Kelp
Kelp membezakan dirinya dengan pendekatan yang mudah untuk pengurusan pakej binari. Daripada menunggu pengemaskinian formula atau menguruskan kebergantungan yang kompleks, ia terus memuat turun binari dari pelepasan GitHub ke lokasi pusat dan menjadikannya tersedia dalam PATH pengguna. Pendekatan ini menawarkan kesegeraan dan kesederhanaan untuk pengguna yang terutamanya bekerja dengan alat binari kendiri.
Alat ini menyokong penentuan versi, memeriksa kemas kini, dan bahkan memasang pakej dari sumber bukan GitHub dengan menyediakan pautan muat turun terus. Konfigurasinya disimpan dalam fail JSON yang mudah, menjadikannya telus dan mudah alih merentasi sistem. Falsafah reka bentuk ini sejajar dengan pengguna yang mencari lebih banyak kawalan dan kebolehramalan dalam persekitaran pembangunan mereka.
Walau bagaimanapun, beberapa pengulas membangkitkan soalan penting tentang keselamatan dan kepercayaan. Tidak seperti formula Homebrew yang dijaga, yang dikekalkan dan disemak oleh komuniti, pendekatan muat turun binari langsung Kelp meletakkan lebih banyak tanggungjawab kepada pengguna untuk mengesahkan kepercayaan pakej. Ini merupakan pertimbangan penting bagi pembangun yang menilai alternatif pengurusan pakej.
Masa Depan Pengurusan Pakej macOS
Penyebaran alat pengurusan pakej mencadangkan pemecahan ekosistem, dengan penyelesaian berbeza yang dioptimumkan untuk aliran kerja dan keutamaan yang berbeza. Kepelbagaian ini mencerminkan keperluan heterogen pembangun macOS dan kerumitan semula jadi dalam menguruskan kebergantungan perisian.
Sesetengah pengguna mengamalkan pendekatan hibrid, menggunakan pelbagai alat untuk tujuan yang berbeza - mungkin Homebrew untuk aplikasi GUI, Nix untuk alat pembangunan, dan pengurus ringan seperti Kelp untuk binari GitHub. Strategi pragmatik ini membolehkan pembangun memanfaatkan kekuatan setiap sistem sambil mengelakkan kelemahan masing-masing.
Ketika landskap terus berkembang, alat yang mencapai keseimbangan yang tepat antara kesederhanaan, fleksibiliti, dan keselamatan berkemungkinan akan mendapat penggunaan. Fokus Kelp untuk menyelesaikan masalah tertentu dan bukannya menggantikan Homebrew sepenuhnya mewakili pendekatan pragmatik yang mungkin mendapat sambutan daripada pembangun yang mencari penambahbaikan tambahan kepada aliran kerja mereka.
Rujukan: kelp