Tại sao các gói snap tồn tại - có một nhu cầu thực sự?


11

Giả định

Thành thật mà nói, tôi không biết nhiều về các gói snap - nhưng điều này không liên quan đến câu hỏi này - xem bên dưới. Tôi giả sử hệ thống khác biệt đáng kể so với hệ thống hiện có.

Liệu sự thay đổi có ý nghĩa?

Có một nhu cầu thực tế, đủ mạnh? Đó là - có một trường hợp sử dụng mới, đủ quan trọng để phát triển một định dạng mới - và cơ sở hạ tầng liên quan?

Có phải là không khả thi để thay đổi phương pháp hiện tại để bao gồm cả các trường hợp sử dụng mới không?

Hay tôi đang thiếu điểm?

Có thể những gì tôi thấy chủ yếu là tiếp thị - tên mới và cách trình bày để thay đổi kỹ thuật tối thiểu, để có cơ hội rằng bất kỳ cơ quan nào cũng coi đó là "mới và tốt hơn" và nó có thể thực sự được sử dụng. Ngoài ra, có thể các gói mới rất chặt chẽ dựa trên định dạng hiện có mà chủ yếu là thay đổi trong cách trình bày cho người dùng. Đó có thể là một giải pháp tốt, tất nhiên. Trong trường hợp này, câu hỏi này sẽ không có nhiều liên quan.

Sau đó, tôi hy vọng rằng vẫn đủ hữu ích để trả lời cho các khía cạnh phụ. Chỉ cần cho tôi biết nếu câu hỏi không hữu ích hoặc gây nhầm lẫn cho người dùng mới, tôi rất vui khi xóa nó.

Vậy, tại sao chúng tồn tại?


Lý lịch

Phản ứng đầu tiên của tôi là "Điều đó vô nghĩa!"

Điều này tương tự như một tình huống, trên trang web vật lý, có người hỏi, không vui, tại sao không ai thảo luận về những ý tưởng mới tuyệt vời của mình trong câu trả lời. Nó trông mạnh mẽ như ý tưởng crackpot; Cho đến nay từ kiến ​​thức vật lý thực tế rằng thật khó để tìm thấy một điểm để bắt đầu. Tôi đã viết một câu trả lời không chạm vào ý tưởng của anh ấy bằng một từ duy nhất, nhưng giải thích lý do tại sao người ta sẽ không thảo luận về giả định ý tưởng crackpot - không phải là trường hợp đầu tiên về điều đó. Câu trả lời đã thực sự đạt được điểm, tôi nghĩ.

Nếu giả định của tôi là đúng, trường hợp này là tương tự.

Nhưng sau đó, có thể không - hãy xem.


Có phiếu bầu chặt chẽ nói rằng "chủ yếu dựa trên ý kiến" - điều đó có nghĩa là các câu trả lời dự kiến ​​sẽ dựa trên ý kiến? Về cơ bản, đó sẽ là một câu trả lời, vì nó có nghĩa là không có sự đồng thuận xác lập rằng sự thay đổi là cần thiết. Vì vậy, sẽ có các đối số pro và contra; Điều đó có nghĩa là câu hỏi của tôi thực sự rất quan trọng, và hữu ích hơn tôi mong đợi!
Volker Siegel

2
Tôi đã bỏ phiếu để mở lại câu hỏi này. Nó thực sự hỏi tại sao snaps được giới thiệu, khi các trình quản lý gói đã tồn tại và Ubuntu (và các HĐH khác) đã có chúng. Vì vậy, bạn đã đúng: nếu đây thực sự là một câu hỏi chủ yếu dựa trên ý kiến, điều đó có nghĩa là không có câu trả lời nào có thể được đưa ra chủ yếu dựa trên sự kiện và kinh nghiệm. Tuy nhiên, như bạn đã thấy từ câu trả lời tuyệt vời của muru , đây không phải là trường hợp. Khi nào (hoặc thậm chí nếu) nên sử dụng snaps vẫn là điều mà mọi người có thể có các cuộc thảo luận chủ yếu dựa trên ý kiến, nhưng đó không phải là điều này.
Eliah Kagan

Câu trả lời:


17

Vâng, có một nhu cầu thực sự.

Đã có nhu cầu thực sự cho một cái gì đó như thế này kể từ lần đầu tiên một phần mềm phụ thuộc vào phần mềm khác.

Hãy làm rõ điều này:

Quản lý phụ thuộc là khó khăn .

Có một lý do tại sao nó được gọi là địa ngục phụ thuộc . Các hệ thống đóng gói như RPM và Debian được tạo ra với mục đích tránh địa ngục phụ thuộc. Tuy nhiên, ai đó phải trả chi phí:

  1. Trên Windows, nơi các chương trình kết hợp các phụ thuộc của chúng, người dùng phải chăm sóc nâng cấp (và bất kỳ vấn đề bảo mật nào do thiếu chúng). Nếu tôi là nhà phát triển muốn phiên bản X của một cái gì đó cho ứng dụng của mình, thì đơn giản: tôi cung cấp cho ứng dụng của mình. Bây giờ làm thế nào để tôi xử lý cập nhật?
  2. Trên hầu hết các bản phân phối Linux (theo Debian hoặc Red Hat), trong đó một chương trình có thể phụ thuộc vào phần mềm từ kho lưu trữ, một chương trình từ kho lưu trữ phải phụ thuộc vào phần mềm từ kho lưu trữ. Nếu tôi muốn phiên bản X của một cái gì đó cho ứng dụng của mình và bản phân phối cung cấp X, đơn giản: tôi phụ thuộc vào nó. Và nếu distro không? Sau đó: ???
    • Thêm nhiều phiên bản vào bản phân phối sẽ tăng tải cho người bảo trì
    • Mất khả năng sử dụng phiên bản lựa chọn phụ thuộc sẽ tăng tải cho nhà phát triển
    • Mất khả năng sử dụng phiên bản lựa chọn ứng dụng làm người dùng thất vọng

Có một sự mất tự do đáng kể trong cả hai phương pháp.

Và đây là lúc snaps xuất hiện: họ cho nhà phát triển bao gồm phiên bản X và để hệ thống đóng gói quản lý các bản cập nhật. Ai trả chi phí? Người dùng:

  • bằng cách yêu cầu nhiều không gian hơn
  • bằng cách đặt chúng vào nguy cơ do một nhà phát triển bất cẩn không xây dựng lại snaps của họ khi một phụ thuộc được vá.

Những lợi ích nào tôi nhận được, đổi lại?

  • Ngoài bảo mật thông qua các bản cập nhật (mà thật lòng mà nói, không đủ người quan tâm), tôi người dùng không phải lo lắng về sự phụ thuộc với snaps. Từ này hầu hết mất đi ý nghĩa.
  • Ngoài các cập nhật bảo mật, nhà phát triển phần mềm không cần lo lắng về việc khiến người dùng cài đặt các phụ thuộc chính xác.

3
Vâng, tôi nghĩ rằng địa ngục phụ thuộc mô tả nó khá tốt.
Volker Siegel

Hãy để tôi tạo tiếng nói ngược lại :), Tại sao họ không sử dụng /opt?
user.dz

@Sneetsher nghĩ về nó theo cách này: điều gì ngăn một ứng dụng trong / opt viết lên ứng dụng khác trong / opt? Tệ hơn, làm thế nào để bạn ngăn một ứng dụng đọc khóa riêng của ứng dụng khác?
Evan

@Evan, cũng AppArmorđã sẵn sàng để trang trải điều đó. nhưng cách bảo vệ có thể khác Dù sao chủ đề là để lên tàu.
user.dz

muru, cảm ơn bạn đã viết tất cả điều này. Nhân tiện, đây là câu trả lời đầu tiên trên Google. Tôi tò mò, mặc dù. Tôi có thể thấy hệ thống của mình đang sử dụng snaps cho, giả sử, Chromium. Và bây giờ tôi muốn cài đặt Skype. Thông thường tôi sẽ làm sudo apt-get install skypenhưng sau đó tôi thấy nó có sẵn như một snap. Nhưng khi tôi cài đặt Chromium, tôi không làm gì đặc biệt để khiến nó sử dụng snap. Tuy nhiên, nó làm. Vì vậy, bây giờ tôi hiểu TẠI SAO snaps tồn tại, và tôi vui vì họ làm. Bây giờ tôi tò mò nếu tôi cần phải lo lắng sudo snap install skype?
SDsolar

3

Một tính năng đặc biệt của snaps có thể hữu ích là khả năng chọn kênh cho nhà phát triển cung cấp nhiều hơn một kênh, chẳng hạn như phát hành , ứng cử viên , chủ , v.v.

Ví dụ: nhấp vào nút Kênhnextcloud sẽ hiển thị hộp thoại trong ảnh chụp màn hình bên dưới.

Các điểm bán mạnh khác là sự cô lập, tính bất biến và hộp cát được điều khiển bởi bối cảnh chính sách bảo mật , cho phép xác định quyền trên mỗi ứng dụng, còn được gọi là 'phích cắm', ví dụ:

  • địa điểm đọc / ghi
  • truy cập vào bộ lưu trữ di động
  • các quốc gia nơi snap được đưa vào danh sách trắng / danh sách đen
  • truy cập mạng
  • máy ảnh, máy in, cần điều khiển, vị trí GPS
  • Cài đặt hệ thống
  • ... danh sách đầy đủ các giao diện snap

Cách tiếp cận bắt chước ở một mức độ nào đó các gói ứng dụng MacOS và hộp cát ứng dụng của Android với các quyền và nhà cung cấp / người nhận nội dung.

gói snap ub Ubuntu chọn kênh

Bây giờ, hãy tưởng tượng bạn cần chạy hàng tá ứng dụng với mỗi phiên bản thư viện nhất định, phiên bản thời gian chạy Python / Ruby / NodeJS của riêng nó và bạn không muốn chạy vào địa ngục phụ thuộc và gây rối hoặc làm ô nhiễm thư viện hệ thống của bạn, hệ thống mô-đun Python / Node / Perl / Ruby của bạn, v.v.

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.