Hệ sinh thái quản lý gói macOS đang trải qua một cuộc phục hưng, với Kelp nổi lên như một đối thủ mới nhất trong một lĩnh vực ngày càng phát triển của các giải pháp thay thế cho Homebrew đang thống trị. Công cụ dựa trên Go này nhằm đơn giản hóa việc cài đặt gói nhị phân trên macOS bằng cách trực tiếp tận dụng các bản phát hành GitHub, giải quyết các điểm đau cụ thể đã gây khó chịu cho người dùng Homebrew.
Những Bất Mãn Với Homebrew Thúc Đẩy Các Giải Pháp Thay Thế
Nhiều nhà phát triển đã bày tỏ sự không hài lòng ngày càng tăng với hành vi của Homebrew, đặc biệt là xu hướng tự động cập nhật tất cả các gói khi cài đặt một gói mới. Hành vi này đã gây ra những gián đoạn đáng kể cho một số người dùng, với một người bình luận mô tả cách một lần cài đặt gói đơn giản dẫn đến việc cập nhật toàn bộ hệ thống kéo dài một giờ, sau đó là một tuần khắc phục sự cố để khôi phục chức năng bình thường. Những trải nghiệm này đã tạo ra cơ hội cho các giải pháp thay thế như Kelp, hứa hẹn một cách tiếp cận kiểm soát hơn đối với việc quản lý gói.
Tuần trước tôi phải tải xuống một dependency trên Homebrew. Đã lâu rồi tôi không tải xuống bất cứ thứ gì vì thiết bị cá nhân của tôi đã ổn định trong một thời gian dài, vì vậy các dependency đã lỗi thời. Vậy là, Homebrew quyết định nâng cấp TẤT CẢ MỌI THỨ trước khi bắt đầu tải xuống mới, tất cả mà không cần tôi xác nhận. Một giờ sau, tôi gặp phải một thiết bị đầy rẫy vấn đề, và tôi mất cả tuần để hoàn toàn trở lại bình thường.
Mặc dù một số người dùng đã khám phá ra các biến môi trường như HOMEBREW_NO_AUTO_UPDATE=1
và HOMEBREW_NO_ANALYTICS=1
có thể giảm thiểu hành vi cập nhật quá mức của Homebrew, nhiều người đặt câu hỏi tại sao đây không phải là cài đặt mặc định. Cuộc thảo luận cộng đồng tiết lộ các biến môi trường bổ sung có thể tùy chỉnh thêm hành vi của Homebrew, cho thấy rằng cấu hình mặc định của công cụ ưu tiên sự tiện lợi hơn quyền kiểm soát của người dùng.
Các Trình Quản Lý Gói Thay Thế Homebrew Đáng Chú Ý
Công cụ | Ngôn ngữ | Trọng tâm | Tính năng chính |
---|---|---|---|
Kelp | Go | Các bản phát hành nhị phân từ GitHub | Cấu hình JSON đơn giản, tải xuống nhị phân trực tiếp |
MacPorts | TCL | Các gói đã biên dịch | Hệ sinh thái trưởng thành, cài đặt độc lập |
Nix/nix-darwin | Nix | Môi trường có thể tái tạo | Các gói bất biến, hỗ trợ quay lại phiên bản cũ |
Mise | Chưa xác định | Quản lý phiên bản | Các phụ thuộc dành riêng cho dự án, trình chạy |
Pixi | Rust | Các gói Conda | Môi trường nhanh, độc lập cho từng công cụ |
Bin | Chưa xác định | Các tệp nhị phân GitHub | Quản lý nhị phân đơn giản |
Eget | Chưa xác định | Các tệp nhị phân GitHub | Tải xuống nhị phân trực tiếp |
Devbox | Chưa xác định | Môi trường phát triển | Dựa trên Nix, cô lập dự án |
Các Biến Môi Trường Homebrew Phổ Biến
HOMEBREW_NO_AUTO_UPDATE=1
- Ngăn chặn cập nhật tự độngHOMEBREW_NO_ANALYTICS=1
- Vô hiệu hóa thu thập phân tíchHOMEBREW_NO_EMOJI=1
- Vô hiệu hóa emoji trong đầu raHOMEBREW_NO_ENV_HINTS=1
- Vô hiệu hóa gợi ý môi trườngHOMEBREW_NO_INSTALL_CLEANUP=1
- Ngăn chặn dọn dẹp tự độngHOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
- Bỏ qua cập nhật các phụ thuộc
Một Lĩnh Vực Đông Đúc Các Đối Thủ
Kelp bước vào một không gian ngày càng cạnh tranh. Các giải pháp thay thế lâu đời như MacPorts và pkgsrc đã được bổ sung bởi các tùy chọn mới hơn bao gồm Nix/nix-darwin, Mise, Pixi, Bin, Eget, Devbox và Ubi. Mỗi giải pháp cung cấp các cách tiếp cận khác nhau đối với việc quản lý gói, với các mức độ phức tạp và bộ tính năng khác nhau.
Nix, đặc biệt, nhận được sự chú ý đáng kể trong cuộc thảo luận, với những người ủng hộ nhấn mạnh danh mục gói toàn diện và khả năng cô lập mạnh mẽ của nó. Tuy nhiên, những người phê bình chỉ ra đường cong học tập dốc, cú pháp lệnh phức tạp và các vấn đề tương thích thỉnh thoảng trên macOS. Sự căng thẳng này minh họa cho sự đánh đổi cơ bản giữa sức mạnh và sự đơn giản định hình nên bối cảnh quản lý gói.
Một số người bình luận lưu ý rằng các công cụ đơn giản hơn tập trung vào các trường hợp sử dụng cụ thể có thể đang thu hút sự chú ý. Các công cụ như Bin và Eget nhắm đến cụ thể các bản phát hành nhị phân GitHub - cùng một thị trường ngách mà Kelp hướng đến. Điều này cho thấy xu hướng hướng tới các công cụ chuyên dụng vượt trội trong các nhiệm vụ hẹp hơn thay vì cố gắng cung cấp các giải pháp toàn diện.
Cách Tiếp Cận và Sự Khác Biệt của Kelp
Kelp tự phân biệt mình với cách tiếp cận đơn giản đối với quản lý gói nhị phân. Thay vì chờ đợi cập nhật công thức hoặc quản lý các phụ thuộc phức tạp, nó trực tiếp tải xuống các tệp nhị phân từ các bản phát hành GitHub đến một vị trí trung tâm và làm cho chúng có sẵn trong PATH của người dùng. Cách tiếp cận này cung cấp tính tức thời và đơn giản cho người dùng chủ yếu làm việc với các công cụ nhị phân độc lập.
Công cụ này hỗ trợ chỉ định phiên bản, kiểm tra cập nhật và thậm chí cài đặt các gói từ các nguồn không phải GitHub bằng cách cung cấp liên kết tải xuống trực tiếp. Cấu hình của nó được lưu trữ trong một tệp JSON đơn giản, làm cho nó minh bạch và có thể di chuyển qua các hệ thống. Triết lý thiết kế này phù hợp với người dùng tìm kiếm sự kiểm soát và khả năng dự đoán nhiều hơn trong môi trường phát triển của họ.
Tuy nhiên, một số người bình luận đã đặt ra những câu hỏi quan trọng về bảo mật và tin cậy. Không giống như các công thức được giám sát của Homebrew, được duy trì và xem xét bởi một cộng đồng, cách tiếp cận tải xuống nhị phân trực tiếp của Kelp đặt nhiều trách nhiệm hơn lên người dùng để xác minh độ tin cậy của các gói. Đây là một cân nhắc quan trọng cho các nhà phát triển đánh giá các giải pháp quản lý gói thay thế.
Tương Lai của Quản Lý Gói macOS
Sự phổ biến của các công cụ quản lý gói cho thấy sự phân mảnh của hệ sinh thái, với các giải pháp khác nhau được tối ưu hóa cho các quy trình làm việc và ưu tiên khác nhau. Sự đa dạng này phản ánh nhu cầu không đồng nhất của các nhà phát triển macOS và sự phức tạp vốn có trong việc quản lý các phụ thuộc phần mềm.
Một số người dùng đang áp dụng các cách tiếp cận kết hợp, sử dụng nhiều công cụ cho các mục đích khác nhau - có thể là Homebrew cho các ứng dụng GUI, Nix cho các công cụ phát triển và các trình quản lý nhẹ như Kelp cho các tệp nhị phân GitHub. Chiến lược thực dụng này cho phép các nhà phát triển tận dụng điểm mạnh của từng hệ thống trong khi tránh những điểm yếu tương ứng của chúng.
Khi bối cảnh tiếp tục phát triển, các công cụ cân bằng đúng mức giữa sự đơn giản, linh hoạt và bảo mật có khả năng được áp dụng rộng rãi. Sự tập trung của Kelp vào việc giải quyết các điểm đau cụ thể thay vì thay thế hoàn toàn Homebrew thể hiện một cách tiếp cận thực tế có thể phù hợp với các nhà phát triển tìm kiếm những cải tiến từng bước cho quy trình làm việc của họ.
Tham khảo: kelp