Sapphire: Trình quản lý gói mới được phát triển bằng Rust thách thức vị thế thống trị của Homebrew trên macOS

BigGo Editorial Team
Sapphire: Trình quản lý gói mới được phát triển bằng Rust thách thức vị thế thống trị của Homebrew trên macOS

Sapphire, một trình quản lý gói thử nghiệm mới được viết bằng Rust, đã xuất hiện như một giải pháp thay thế tiềm năng cho trình quản lý gói phổ biến Homebrew trên macOS. Mặc dù vẫn đang trong giai đoạn alpha, dự án này đã tạo ra cuộc thảo luận đáng kể trong cộng đồng lập trình viên về tương lai của việc quản lý gói trên nền tảng của Apple và những ưu điểm của việc viết lại các công cụ đã được thiết lập bằng các ngôn ngữ hiệu suất cao hơn.

Động lực đằng sau Sapphire

Người tạo ra Sapphire, với biệt danh alexykn trong các cuộc thảo luận, ban đầu bắt đầu xây dựng công cụ này cho mục đích sử dụng cá nhân. Mục tiêu chính của họ không nhất thiết là cạnh tranh với Homebrew mà là tạo ra nền tảng cho một giải pháp quản lý gói và hệ thống khai báo cho macOS. Nhà phát triển đã bày tỏ sự thất vọng với hiệu suất của Homebrew khi bao bọc các lệnh của nó, điều này đã thúc đẩy họ xây dựng Sapphire từ đầu bằng Rust.

Tôi muốn và vẫn muốn xây dựng một giải pháp quản lý gói + hệ thống khai báo trên nền tảng đó. Ý tưởng là để làm quen với rust thông qua dự án này. Việc có nền tảng được viết bằng cùng một ngôn ngữ thay vì bao bọc các lệnh cũng mang lại nhiều tính linh hoạt hơn.

Điều này làm nổi bật một mô hình phổ biến trong cộng đồng mã nguồn mở, nơi các nhà phát triển thường tạo ra các công cụ để giải quyết nhu cầu cụ thể của họ trước khi những công cụ đó phát triển thành các giải pháp rộng lớn hơn.

Cân nhắc về hiệu suất và phương pháp tiếp cận kỹ thuật

Nhiều người bình luận tập trung vào so sánh hiệu suất giữa Sapphire và Homebrew. Mặc dù các thao tác của Homebrew đôi khi có thể cảm thấy chậm chạp, một số người dùng và thậm chí cả người bảo trì Homebrew đã chỉ ra rằng các điểm nghẽn không nhất thiết liên quan đến Ruby như ngôn ngữ triển khai. Thay vào đó, chúng xuất phát từ các quyết định về kiến trúc và những hạn chế có chủ đích.

Một người bảo trì Homebrew giải thích rằng tải xuống song song không được triển khai trong Homebrew không phải vì hạn chế kỹ thuật mà do lo ngại về việc làm quá tải các nguồn tải xuống với quá nhiều yêu cầu đồng thời. Cân nhắc này trở nên ngày càng quan trọng khi lượng người dùng của trình quản lý gói tăng lên.

Sapphire hiện đang triển khai tải xuống và cài đặt song song, điều này góp phần tạo nên lợi thế về tốc độ được cảm nhận. Dự án chủ yếu tập trung vào hỗ trợ cài đặt bottle (các gói đã được biên dịch sẵn) và casks (ứng dụng), bao gồm phần lớn các trường hợp sử dụng cho người dùng macOS.

Phản hồi từ cộng đồng và yêu cầu về tính năng

Phản ứng của cộng đồng đối với Sapphire là sự kết hợp giữa nhiệt tình và hoài nghi. Nhiều người dùng bày tỏ sự thất vọng với thuật ngữ của Homebrew, sử dụng các thuật ngữ liên quan đến bia như casks, kegs và cellars thay vì thuật ngữ quản lý gói tiêu chuẩn hơn. Một số người bình luận đã thúc giục nhà phát triển Sapphire áp dụng các quy ước đặt tên rõ ràng hơn.

Độ dài tên lệnh là một điểm tranh cãi khác, với nhiều người dùng cho rằng sapphire quá dài so với brew và đề xuất một phương án ngắn hơn để cải thiện trải nghiệm người dùng.

Một số người dùng cũng yêu cầu các tính năng mà Homebrew hiện thiếu, chẳng hạn như hỗ trợ nhiều người dùng tốt hơn, cài đặt cho từng người dùng và cách tiếp cận khai báo hơn đối với việc quản lý gói. Những yêu cầu này làm nổi bật các lĩnh vực mà một trình quản lý gói mới có thể tạo ra sự khác biệt so với Homebrew.

Trạng thái phát triển và lộ trình

Sapphire được gắn nhãn rõ ràng là phần mềm alpha, với cảnh báo của nhà phát triển rằng nó mang tính thử nghiệm, đang trong quá trình phát triển mạnh mẽ và có thể không ổn định. Khả năng hiện tại của dự án bao gồm cài đặt và gỡ bỏ bottle, quản lý cask, tải xuống và cài đặt song song, tự động giải quyết phụ thuộc và triển khai ban đầu của việc xây dựng công thức từ mã nguồn.

Lộ trình bao gồm triển khai các lệnh nâng cấp và dọn dẹp, thêm tính năng cài đặt lại, hỗ trợ cô lập tiền tố và tạo trình trợ giúp khởi tạo. Nhà phát triển đã minh bạch về tiến độ của dự án, lưu ý rằng tiến trình có thể chậm vì họ chủ yếu làm việc trên dự án này vào cuối tuần bên cạnh công việc toàn thời gian.

Mặc dù Sapphire hiện có thể xử lý nhiều tác vụ cài đặt gói, nhưng nó phải đối mặt với những thách thức đáng kể trong việc sao chép đầy đủ chức năng của Homebrew, đặc biệt là về việc xây dựng các gói từ mã nguồn. Nhà phát triển thừa nhận rằng một trình chuyển đổi Ruby sang Rust đầy đủ sẽ nằm ngoài phạm vi, cho thấy họ có thể chọn phương án phát hiện hệ thống xây dựng tự động dựa trên cấu trúc lưu trữ thay thế.

Tình trạng hiện tại của Sapphire

  • Cài đặt và gỡ bỏ chai
  • Cài đặt và gỡ bỏ thùng
  • Tải xuống và cài đặt song song để tăng tốc độ
  • Tự động giải quyết và cài đặt các phụ thuộc
  • Triển khai ban đầu của việc biên dịch công thức từ mã nguồn
  • Chỉ hỗ trợ ARM (hỗ trợ x86 có thể được thêm vào sau này)

Cấu trúc dự án

  • sapphire-core: Thư viện cốt lõi để tìm nạp, giải quyết phụ thuộc, giải nén tập tin, v.v.
  • sapphire-cli: Giao diện dòng lệnh bao bọc thư viện cốt lõi

Lộ trình

  1. Lệnh Upgrade để cập nhật các gói đã cài đặt
  2. Cleanup cho các bản tải xuống cũ, phiên bản, bộ nhớ đệm
  3. Lệnh Reinstall để rót lại nhanh chóng
  4. Cô lập tiền tố: hỗ trợ cho /opt/sapphire như một bố cục độc lập
  5. Trình hỗ trợ sapphire init để khởi động môi trường
  6. Sửa lỗi liên tục và cải thiện tính ổn định

Bối cảnh rộng lớn hơn của quản lý gói

Cuộc thảo luận xung quanh Sapphire làm nổi bật sự phát triển liên tục của việc quản lý gói trên macOS. Bản thân Homebrew đã thay thế các giải pháp trước đó như MacPorts và Fink bằng cách cung cấp những gì nhiều người coi là trải nghiệm người dùng tốt hơn, bất chấp những đánh đổi về mặt kỹ thuật.

Một số người bình luận lưu ý rằng trình quản lý gói lý tưởng sẽ kết hợp các lợi ích về hiệu suất của các ngôn ngữ biên dịch như Rust với tính linh hoạt và dễ dàng đóng góp mà hệ thống công thức dựa trên Ruby của Homebrew cung cấp. Những người khác chỉ ra các cách tiếp cận thay thế như Nix hoặc pkgx (một trình quản lý gói khác dựa trên Rust đang được phát triển bởi người tạo ra Homebrew ban đầu).

Khi macOS tiếp tục phát triển, đặc biệt là với sự chuyển đổi sang Apple Silicon, rõ ràng có nhu cầu về các giải pháp quản lý gói có thể thích ứng với những thay đổi này đồng thời giải quyết các vấn đề tồn tại lâu dài.

Mặc dù Sapphire vẫn đang trong giai đoạn đầu và phải đối mặt với những thách thức đáng kể trước khi có thể thực sự thay thế Homebrew, sự phát triển của nó đại diện cho hệ sinh thái lành mạnh của đổi mới giúp các công cụ phát triển tiếp tục phát triển. Cho dù cuối cùng nó thành công như một sự thay thế cho Homebrew hay chỉ đơn giản là giới thiệu những ý tưởng cải thiện bối cảnh quản lý gói rộng lớn hơn, các dự án như Sapphire đóng vai trò quan trọng trong việc thúc đẩy sự phát triển của công nghệ.

Tham khảo: Sapphire