Snappy liên quan đến Nix và Guix như thế nào?


22

Tôi đã tìm kiếm một so sánh nhưng thấy không và không đủ thông tin đủ để tự làm điều đó ngay bây giờ.

Tất cả đều cung cấp các cập nhật giao dịch, nhưng mức độ ngăn chặn khác nhau.

  • Snappy tĩnh biên dịch trong các thư viện để cung cấp nhiều phiên bản phụ thuộc nhị phân. Nó tuyên bố các dịch vụ được cung cấp (và cần thiết?) Là siêu dữ liệu. Các gói được cung cấp như là một hình ảnh duy nhất?
  • Nix liên quan đến liên kết động để cung cấp nhiều phiên bản phụ thuộc nhị phân? Nó tuyên bố các dịch vụ được cung cấp và cần thiết như siêu dữ liệu. Gói được cung cấp thông qua một kho lưu trữ xử lý các phụ thuộc.
  • Guix giống như Nix, nhưng có tính năng tích hợp GNU.

Một so sánh sâu hơn giữa Nix và Guix được đưa ra bởi Sander van der Burg , mà tôi không nghiên cứu chi tiết. Tôi đoán ai đó tại Canonical đã phân tích các giải pháp hiện có. Có các hệ thống triển khai khác dựa trên hình ảnh, như CoreOS tôi đã nói.

Vậy, Snappy Ubuntu liên quan đến Nix và Guix như thế nào? Sự khác biệt chính là gì?


1
Vì vậy, bạn đang yêu cầu chúng tôi đọc những gì bạn không muốn đọc ??? "Một so sánh sâu hơn giữa Nix và Guix được đưa ra bởi Sander van der Burg, mà tôi không đọc" ... "Snappy Ubuntu liên quan đến Nix và Guix như thế nào? Sự khác biệt lớn là gì?"
don.joey 10/2/2015

Tôi đã hỏi ở đây, vì tôi nghĩ rằng một trong những cộng đồng này đã nghĩ về nó rồi hoặc biết một bài báo tôi không tìm thấy. Tôi chỉ tình cờ thấy Snappy hôm nay, đọc về nó, nhưng tôi không cho rằng mình đủ hiểu biết về Snappy để quyết định vị trí của nó giữa những người quản lý gói trưởng thành này. Các bài báo của Snappy hoàn toàn không đề cập đến các hệ thống này và tôi thấy buồn khi im lặng về các phần mềm miễn phí khác xử lý các vấn đề tương tự. Ngoài ra, bài viết trên blog được liên kết không có tên snappy và không phải bởi một người liên quan đến snappy.
tải trọng

1
Đủ công bằng. Downvote hoàn nguyên.
don.joey 11/2/2015

Snappy không biên dịch tĩnh trong các thư viện. Nó cho phép bạn lưu trữ các thư viện trong cùng thư mục với tệp nhị phân của mình để bạn không phải phụ thuộc vào thư viện hệ thống, nhưng nó cũng cho phép bạn dựa vào thư viện hệ thống nếu bạn không cần gói độc lập phát hành. Vì vậy, Snappy không loại bỏ các lợi ích của việc phát hành LTS ổn định. Nó chỉ làm cho mọi thứ đơn giản hơn rất nhiều.
Jo-Erlend Schinstad

Câu trả lời:


29

Gần đây, tôi đã tự đánh giá. Tôi thực sự là một người đóng góp Nix / NixOS và là nhà nghiên cứu trước đây quan tâm đến công nghệ triển khai.

Tôi đã cố gắng bám sát vào sự thật nhiều nhất có thể, nhưng có lẽ không thể vẫn hoàn toàn thiên vị. Để tóm tắt những phát hiện của tôi:

  • Cả hai cách tiếp cận các gói lưu trữ trong sự cô lập . Snappy lưu trữ các ứng dụng và khung trong các thư mục bằng cách sử dụng quy ước tên sau: /app/name/version.vendortrong khi Nix sử dụng /nix/store/hash-name-version.

    Quy ước đặt tên của Nix mạnh hơn, bởi vì nó sử dụng tiền tố băm có nguồn gốc từ tất cả các phụ thuộc thời gian xây dựng . Với Nix, bạn có thể dễ dàng tạo ra sự khác biệt giữa bất kỳ biến thể nào của gói và lưu trữ chúng cạnh nhau. Bất kỳ thay đổi nào (ví dụ: quy trình xây dựng khác nhau, nâng cấp thư viện, nâng cấp trình biên dịch) đều mang lại một hàm băm mới giúp cho việc lưu trữ bất kỳ biến thể nào có thể nằm cạnh nhau.

  • Để cho phép một gói để tìm sự phụ thuộc của nó, Nix dây liên lạc tĩnh đến một thực thi (ví dụ bằng cách sửa đổi RPATHcủa một nhị phân ELF) hoặc bằng cách gói chúng trong kịch bản mà thiết lập các biến môi trường thích hợp (ví dụ như CLASSPATH, PYTHONPATH, PERL5LIB, vv).

    Snappy soạn các thùng chứa trong đó các thực thi có thể tìm thấy các phụ thuộc của chúng trong các vị trí FHS chung của chúng, chẳng hạn như /lib/bin

    Tuy nhiên, Nix cũng hỗ trợ phương pháp tiếp cận container của Snappy nhưng điều này chỉ được sử dụng trong những trường hợp rất hiếm. Gói Nix nổi bật nhất sử dụng cách tiếp cận được đóng gói là Steam trong NixOS, vì Steam là một công cụ triển khai với các thuộc tính xung đột.

  • Snappy Ubuntu Core sử dụng sơ đồ phân vùng "A / B" được gọi là để nâng cấp (và khôi phục) hệ thống cơ sở. Nó chỉ hỗ trợ một số phiên bản giới hạn (thường là hai) tại thời điểm đó.

    Ngược lại, NixOS (Linux distro Nix-based) soạn hệ thống cơ sở ra khỏi gói Nix trong cửa hàng Nix cũng và là mạnh hơn rất nhiều. Bạn có thể quay lại bất kỳ cấu hình nào trước đây chưa được thu gom rác. Hơn nữa, các gói hệ thống tương tự giữa các thế hệ có thể được chia sẻ.

  • Cả hai công cụ đều hỗ trợ cài đặt người dùng không có đặc quyền . Tuy nhiên, Snappy lưu trữ tất cả các tệp trong thư mục chính của người dùng. Nếu hai người dùng tình cờ cài đặt cùng một gói thì họ được cài đặt hai lần trên hệ thống.

    Ngược lại, các gói Nix cũng cho phép người dùng thông thường cài đặt các gói trong cửa hàng Nix trung tâm để các gói giống hệt nhau có thể được chia sẻ giữa những người dùng. Một phần vì quy ước đặt tên (sử dụng băm) điều này có thể được thực hiện một cách an toàn.

  • Snappy hạn chế hành vi thời gian chạy của các gói bên ngoài trong khi Nix thì không

  • Snappy dường như không giúp người dùng xây dựng các gói từ mã nguồn. Tuy nhiên, Nix có DSL cho phép mọi người thực hiện việc này khá dễ dàng và tự động cài đặt tất cả các phụ thuộc thời gian xây dựng (trình biên dịch, công cụ xây dựng, thư viện, v.v.) khi cần

  • Snappy hầu như không hỗ trợ mô đun hóa và tái sử dụng . Trong các gói ví dụ, tất cả các phụ thuộc thư viện được gói tĩnh tiêu tốn nhiều dung lượng đĩa và RAM hơn. Hơn nữa, tài liệu dường như không cung cấp bất kỳ cơ sở nào ngoại trừ các khung. Tuy nhiên, các khung không có nghĩa là để tái sử dụng theo tài liệu

    Với các gói mô đun hóa Nix và quản lý phụ thuộc an toàn là một số tính năng chính của nó.

Bài viết blog đầy đủ có thể được tìm thấy ở đây: http://sandervanderburg.blogspot.com/2015/04/an-ev Assessment-and-compison- of- sappy.html

Hy vọng rằng bạn thấy thú vị khi đọc và có thể có một số điều trong đó mà bạn thấy đáng suy nghĩ.


3
Mặc dù câu trả lời của bạn là chính xác 100%, nhưng nó cũng có thể trở nên vô dụng 100% nếu liên kết đó bị di chuyển, thay đổi, sáp nhập vào một trang khác hoặc trang web chính biến mất ... :-( Do đó, vui lòng chỉnh sửa câu trả lời của bạn và sao chép liên quan bước từ liên kết vào câu trả lời của bạn, do đó đảm bảo câu trả lời của bạn cho 100% thời gian tồn tại của trang web này ;-) bạn luôn có thể rời khỏi liên kết trong ở dưới cùng của câu trả lời của bạn như một nguồn cho tài liệu của bạn ...!
Fabby

3
Ok, tôi chỉ sửa đổi câu trả lời của tôi. Hy vọng điều này sẽ giúp!
Sander van der Burg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.