Sapphire: Pengurus Pakej Baharu Berkuasa Rust Mencabar Dominasi Homebrew di macOS

BigGo Editorial Team
Sapphire: Pengurus Pakej Baharu Berkuasa Rust Mencabar Dominasi Homebrew di macOS

Sapphire, pengurus pakej eksperimen baharu yang ditulis dalam Rust, telah muncul sebagai alternatif yang berpotensi kepada pengurus pakej popular Homebrew untuk macOS. Walaupun masih dalam peringkat alfa, projek ini telah mencetuskan perbincangan yang ketara dalam komuniti pembangun mengenai masa depan pengurusan pakej pada platform Apple dan kelebihan menulis semula alatan yang sudah mantap dalam bahasa pengaturcaraan yang lebih berkuasa.

Motivasi Di Sebalik Sapphire

Pencipta Sapphire, yang dikenali sebagai alexykn dalam perbincangan, pada mulanya mula membina alat ini untuk kegunaan peribadi. Matlamat utama mereka bukan semestinya untuk bersaing dengan Homebrew tetapi untuk mencipta asas bagi penyelesaian pengurusan pakej dan sistem deklaratif untuk macOS. Pembangun tersebut menyatakan kekecewaan terhadap prestasi Homebrew apabila membungkus arahannya, yang mendorong mereka untuk membina Sapphire dari awal menggunakan Rust.

Saya mahu dan masih mahu, membina penyelesaian pengurusan pakej + sistem deklaratif di atasnya. Ideanya adalah untuk mempelajari rust dengan itu. Mempunyai asas yang ditulis dalam bahasa yang sama dan bukannya membungkus arahan juga memberikan lebih fleksibiliti di sana.

Ini menunjukkan corak biasa dalam komuniti sumber terbuka, di mana pembangun sering mencipta alat untuk menyelesaikan keperluan khusus mereka sebelum alat tersebut berkembang menjadi penyelesaian yang lebih luas.

Pertimbangan Prestasi dan Pendekatan Teknikal

Ramai pengulas memberi tumpuan kepada perbandingan prestasi antara Sapphire dan Homebrew. Walaupun operasi Homebrew kadangkala terasa perlahan, beberapa pengguna dan juga penyelenggara Homebrew menunjukkan bahawa kekangan tersebut tidak semestinya berkaitan dengan Ruby sebagai bahasa pelaksanaan. Sebaliknya, ia berpunca daripada keputusan arkitektur dan batasan kesopanan.

Seorang penyelenggara Homebrew menjelaskan bahawa muat turun selari tidak dilaksanakan dalam Homebrew bukan kerana batasan teknikal tetapi disebabkan kebimbangan tentang membanjiri sumber muat turun dengan terlalu banyak permintaan serentak. Pertimbangan ini menjadi semakin penting apabila asas pengguna pengurus pakej berkembang.

Sapphire kini melaksanakan muat turun dan pemasangan selari, yang menyumbang kepada kelebihan kelajuannya yang dirasakan. Projek ini memberi tumpuan terutamanya kepada menyokong pemasangan botol (pakej yang telah dikompil) dan casks (aplikasi), yang meliputi majoriti kes penggunaan untuk pengguna macOS.

Sambutan Komuniti dan Permintaan Ciri

Sambutan komuniti terhadap Sapphire adalah campuran antara semangat dan keraguan. Ramai pengguna menyatakan kekecewaan dengan terminologi Homebrew, yang menggunakan istilah berkaitan pembuatan bir seperti casks, kegs, dan cellars berbanding dengan terminologi pengurusan pakej yang lebih standard. Beberapa pengulas menggesa pembangun Sapphire untuk menggunakan konvensyen penamaan yang lebih jelas.

Panjang nama arahan adalah satu lagi titik pertikaian, dengan pelbagai pengguna mencadangkan bahawa sapphire terlalu panjang berbanding dengan brew dan mengesyorkan alternatif yang lebih pendek untuk meningkatkan pengalaman pengguna.

Sesetengah pengguna juga meminta ciri yang kini tiada dalam Homebrew, seperti sokongan pelbagai pengguna yang lebih baik, pemasangan untuk setiap pengguna, dan pendekatan yang lebih deklaratif kepada pengurusan pakej. Permintaan ini menyoroti bidang di mana pengurus pakej baharu berpotensi untuk membezakan dirinya daripada Homebrew.

Status Pembangunan dan Pelan Tindakan

Sapphire secara jelas dilabelkan sebagai perisian alfa, dengan pembangun memberi amaran bahawa ia adalah eksperimen, masih dalam pembangunan intensif, dan mungkin tidak stabil. Keupayaan semasa projek termasuk pemasangan dan nyahpasang botol, pengurusan cask, muat turun dan pemasangan selari, penyelesaian kebergantungan automatik, dan pelaksanaan awal pembinaan formula dari sumber.

Pelan tindakan termasuk melaksanakan arahan naik taraf dan pembersihan, menambah ciri pemasangan semula, menyokong pengasingan awalan, dan mencipta pembantu inisialisasi. Pembangun telah bersikap telus tentang kadar projek, menyatakan bahawa kemajuan mungkin perlahan kerana mereka bekerja terutamanya pada hujung minggu di samping pekerjaan sepenuh masa.

Walaupun Sapphire kini boleh mengendalikan banyak tugas pemasangan pakej, ia menghadapi cabaran besar dalam meniru sepenuhnya fungsi Homebrew, terutamanya dalam membina pakej dari sumber. Pembangun mengakui bahawa transpiler Ruby-ke-Rust yang lengkap akan berada di luar skop, mencadangkan mereka mungkin memilih untuk pengesanan sistem pembinaan automatik berdasarkan struktur arkib sebagai gantinya.

Status Terkini Sapphire

  • Pemasangan dan pembuangan botol
  • Pemasangan dan pembuangan tong
  • Muat turun dan pemasangan selari untuk kelajuan
  • Penyelesaian dan pemasangan kebergantungan secara automatik
  • Pelaksanaan awal pembinaan formula dari sumber
  • Sokongan ARM sahaja (sokongan x86 mungkin akan ditambah pada masa akan datang)

Struktur Projek

  • sapphire-core: Perpustakaan teras untuk pengambilan, penyelesaian kebergantungan, pengekstrakan arkib, dan lain-lain.
  • sapphire-cli: Antara muka baris arahan yang membungkus perpustakaan teras

Pelan Tindakan

  1. Arahan Upgrade untuk mengemaskini pakej yang dipasang
  2. Cleanup untuk muat turun lama, versi, cache
  3. Arahan Reinstall untuk tuangan semula yang cepat
  4. Pengasingan awalan: sokongan untuk /opt/sapphire sebagai susun atur kendiri
  5. Pembantu sapphire init untuk memulakan persekitaran
  6. Pembaikan pepijat berterusan dan penambahbaikan kestabilan

Konteks Lebih Luas Pengurusan Pakej

Perbincangan mengenai Sapphire menyoroti evolusi berterusan pengurusan pakej pada macOS. Homebrew sendiri menggantikan penyelesaian terdahulu seperti MacPorts dan Fink dengan menawarkan apa yang dianggap oleh ramai orang sebagai pengalaman pengguna yang lebih baik, walaupun ada pertukaran teknikal.

Beberapa pengulas menyatakan bahawa pengurus pakej yang ideal akan menggabungkan manfaat prestasi bahasa yang dikompil seperti Rust dengan fleksibiliti dan kemudahan sumbangan yang disediakan oleh sistem formula berasaskan Ruby oleh Homebrew. Yang lain menunjuk kepada pendekatan alternatif seperti Nix atau pkgx (pengurus pakej berasaskan Rust yang lain yang sedang dibangunkan oleh pencipta asal Homebrew).

Apabila macOS terus berkembang, terutamanya dengan peralihan kepada Apple Silicon, jelas terdapat minat terhadap penyelesaian pengurusan pakej yang boleh menyesuaikan diri dengan perubahan ini sambil menangani titik kesakitan yang telah lama wujud.

Walaupun Sapphire masih dalam peringkat awal dan menghadapi cabaran besar sebelum ia benar-benar boleh menggantikan Homebrew, pembangunannya mewakili ekosistem inovasi yang sihat yang memastikan alat pembangun terus berkembang. Sama ada ia akhirnya berjaya sebagai pengganti Homebrew atau hanya memperkenalkan idea yang meningkatkan landskap pengurusan pakej yang lebih luas, projek seperti Sapphire memainkan peranan penting dalam memajukan keadaan seni.

Rujukan: Sapphire