4 điểm bởi GN⁺ 2025-04-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Sapphire là trình quản lý gói thế hệ mới được phát triển bằng Rust
  • Lấy cảm hứng từ Homebrew, nó cài đặt và quản lý FormulaeCasks
  • Hiện chỉ hỗ trợ kiến trúc ARM, và hỗ trợ x86 có thể sẽ được bổ sung sau
  • Dự án gồm sapphire-coresapphire-cli
  • Sapphire được phát hành theo giấy phép BSD-3-Clause

Cảnh báo

  • Sapphire là phần mềm thử nghiệm và đang được phát triển tích cực, nên có thể không ổn định
  • Nếu cài lại cask đã cài bằng brew bằng Sapphire, đường dẫn cài đặt sẽ hơi khác và thiết lập người dùng sẽ không được tự động di chuyển

⚙️ Cấu trúc dự án

  • sapphire-core: thư viện lõi, phụ trách lấy gói, giải quyết phụ thuộc, giải nén archive, xử lý artifact, v.v.
  • sapphire-cli: giao diện dòng lệnh, trong đó tệp thực thi sapphire bao bọc thư viện lõi

🚀 Lộ trình

  1. Cập nhật các gói đã cài bằng lệnh upgrade
  2. Dọn dẹp các bản tải xuống cũ, phiên bản cũ và bộ nhớ đệm
  3. Lệnh Reinstall để cài lại nhanh
  4. Prefix isolation hỗ trợ /opt/sapphire với bố cục độc lập
  5. Trình trợ giúp sapphire init để bootstrap môi trường
  6. Tiếp tục sửa lỗi và cải thiện độ ổn định

📦 Cách dùng

  • Hiển thị trợ giúp: sapphire --help
  • Cập nhật metadata: sapphire update
  • Tìm kiếm gói: sapphire search
  • Xem thông tin gói: sapphire info
  • Cài Bottle hoặc Cask: sapphire install
  • Build và cài Formula từ mã nguồn: sapphire install --build-from-source
  • Gỡ cài đặt: sapphire uninstall
  • (Sắp có) sapphire upgrade [--all] , sapphire cleanup, sapphire init

🏗️ Build từ mã nguồn

Điều kiện tiên quyết: bộ công cụ Rust ổn định

  • git clone
  • cd sapphire
  • cargo build --release
  • File nhị phân sapphire nằm tại target/release/sapphire, hãy thêm nó vào PATH

1 bình luận

 
GN⁺ 2025-04-23
Ý kiến trên Hacker News
  • Tác giả nói rằng dự án mình làm không có nhiều điểm vượt trội hơn Homebrew, nhưng đang giải quyết một số vấn đề như thiết lập đường dẫn tương đối

    • Hầu hết việc cài đặt bottle, ngoại trừ Rust, đều hoạt động tốt
    • Các formula build từ source gặp khó khăn do thiếu thông tin trong JSON API
    • Có kế hoạch chuyển các script .rb sang định dạng máy có thể đọc được phổ biến hơn
    • Việc chuyển từ .dmg sang .app và trình cài đặt .pkg hoạt động tốt qua thử nghiệm
    • Trên các máy Mac ARM hiện đại, phần lớn formula đều được cung cấp dưới dạng bottle nên có thể trở thành một trình quản lý gói hoàn chỉnh
    • Vì cảm thấy Ansible là quá nặng cho một máy đơn lẻ, tác giả đang phát triển một trình quản lý gói và hệ thống khai báo cho mac
    • Việc bọc các lệnh Brew quá chậm nên đã dẫn đến việc bắt đầu một dự án mới
    • Tác giả cảm ơn các báo cáo lỗi, issue và pull request mang tính xây dựng
  • Giải thích về hai phần cốt lõi của Homebrew

    • Phía client chủ yếu phục vụ người dùng cài đặt bottle và dùng các nền tảng được hỗ trợ, nên có thể dễ dàng hỗ trợ bằng một trình cài đặt native nhỏ gọn
    • Nhà phát triển, kho lưu trữ và máy CI/CD tạo thành hạ tầng phức tạp của Homebrew, vốn gắn chặt với DSL của formula
    • Homebrew đang cách ly khá tốt phía client khỏi hạ tầng phức tạp đó
    • Việc tải song song bottle và DMG không phải là giới hạn kiến trúc của Homebrew mà là lựa chọn để lịch sự với dịch vụ
  • Đánh giá dự án là thú vị và được làm tốt

    • Chỉ trích việc giữ nguyên thuật ngữ của Homebrew
    • Đề xuất nên dùng các thuật ngữ chuẩn như package và repository thì tốt hơn
  • Đặt câu hỏi về việc lấy mục tiêu ngang bằng với Homebrew

    • Đề xuất thêm các tính năng bổ sung như khóa phiên bản
  • Từng là người dùng MacPorts nhưng giải thích lý do đã chuyển sang Homebrew

    • Cho rằng việc tạo một trình quản lý gói mới sẽ không tạo ra cấu hình tốt hơn
  • Đề xuất thêm mục tiêu, động lực và lý do vào README

    • Cần làm rõ lý do muốn giải quyết các vấn đề của Homebrew
  • Thừa nhận Homebrew vẫn có thể được cải thiện và hoan nghênh các thử nghiệm mới

    • Bày tỏ sự không hài lòng với ý định và cách suy nghĩ của các nhà phát triển và người đóng gói Homebrew
  • Đề xuất đổi tên dự án thành một cái tên ngắn hơn

    • Tên ngắn có thể dễ nhớ hơn và tạo cảm giác nhẹ nhàng hơn
  • Lập luận rằng viết lại phần mềm từ đầu không hiệu quả

    • Đề xuất nên thay thế dần từng thành phần của Homebrew thì tốt hơn
    • Giải thích rằng cái tên Homebrew có tầm quan trọng về mặt văn hóa trong các nhóm hacker