Tại sao Ubuntu chuyển sang các gói Snappy?


127

Tại sao Ubuntu bán các gói .deb và chuyển sang các gói .snappy? (Ít nhất là bây giờ họ đang giữ gói .deb cho các bản phân phối bình thường). .deb đã là bao bì phổ biến nhất hiện có.

Điều này đưa ra ý tưởng về định dạng gói Snappy là gì. Nhưng điều gì sẽ xảy ra với các gói deb hiện có? Có bất kỳ lợi thế rõ ràng nào khi chuyển sang Snappy không? Có đáng để đau không?


1
Liên kết là borken
y30

Câu trả lời:


146

Snappy là một nỗ lực để giải quyết một trong những vấn đề cơ bản với Linux như một hệ điều hành máy tính để bàn và vấn đề đó là tính sẵn có của gói và phân phối gói. Tuy nhiên, Snappy không hoàn toàn có ý định thay thế các cuộc tranh luận. Snaps và Debs hoạt động cùng nhau.

Tôi là một người đam mê Linux và là người quản lý dự án của một ứng dụng Linux. Mặc dù tôi yêu các hệ thống Linux nói chung, tôi khinh thường tình trạng phân phối gói hiện tại. Snappy nhằm giải quyết vấn đề cơ bản này.

Trong Linux, các gói được phân phối cụ thể cho hầu hết các phần (có thể tạo một DEB chạy trong tất cả các hệ thống dựa trên Debian khác nhau nhưng điều đó giới hạn bạn theo một số cách) nhưng không chỉ các gói đó là phiên bản phân phối cụ thể.

Nếu tôi tạo gói gỡ lỗi cho Ubuntu 16.04 thì gói đó sẽ không hoạt động trên bất kỳ phiên bản Ubuntu nào. Tôi cũng phải thực hiện một 14.04, 15.04, 15.10, v.v. Đây là những cuộc tranh luận về Ubuntu. Tôi cũng cần tạo một cái cho Debian. Sau đó, bạn cần tạo RPM cho Fedora 21, 22, 23, v.v. và những RPM đó thậm chí không bao gồm openSUSE.

Điều này có nghĩa là nếu tôi muốn phát hành phiên bản mới của một ứng dụng và không chờ đợi các nhà bảo trì phân phối đưa nó vào một kho lưu trữ (thường mất một lượng thời gian vô lý) thì tôi phải cung cấp hơn 20 gói để trang trải phần lớn các bản phân phối Linux và vẫn sẽ không bao gồm tất cả mọi thứ.

Snaps của Ubuntu cung cấp một cách để tạo một Snap chạy trên mọi phiên bản Ubuntu hỗ trợ Snaps. Không còn phiên bản phân phối cụ thể.

Snaps có thể được tích hợp vào các bản phát hành khác. Có khả năng không còn distro cụ thể.

Snaps được điều khiển trong một repo được dự định duy trì bởi các nhà phát triển gói vì vậy khi chúng tôi muốn phát hành phiên bản mới, chúng tôi không phải chờ đợi bất kỳ ai.

Về cơ bản, mọi thứ tôi ghét về phân phối gói Linux sẽ được Snappy giải quyết. Mặc dù điều quan trọng cần lưu ý là những vấn đề này cũng sẽ được giải quyết bằng AppImagesFlatpaks .

TL; DR

Phân phối gói Linux là khủng khiếp cho cả nhà phát triển và người dùng. Snappy (cũng là AppImages & Flatpaks) nhằm giải quyết vấn đề cơ bản này với các hệ thống dựa trên Linux.


Câu hỏi này thực sự là về lý do tại sao di chuyển nhưng nếu có ai quan tâm đến việc tìm hiểu thêm về Snaps là gì và cách chúng hoạt động. Tôi đã tạo video này để giải thích cấu trúc chuyên sâu.


13
Trời ạ, bạn làm cho nó nghe có vẻ khó khăn, ngoại trừ không ai từng hỗ trợ nhiều phiên bản Fedora, Debian hoặc Ubuntu. Vào thời điểm 16.04 là hết, 15.04 là EOL. Vào thời điểm Fedora 23 ra mắt, F21 chỉ còn chưa đầy một tháng, chỉ đủ lâu để mọi người bỏ qua một bản phát hành. Không phải là nó sẽ quan trọng. Khi bạn đã có tệp thông số RPM cơ sở hoặc gói Debian cơ sở được viết, các bản phân phối khác là các phiên bản được điều chỉnh và sau đó, đó chỉ là công việc của Jenkins để xây dựng chúng cho mỗi bản phát hành mới.
John Franklin

10
Các gói Ubuntu được tạo cho nhiều phiên bản: 14.04, 15.10, 16.04 và một số tiếp tục hỗ trợ LTS cũ như 12.04 vẫn được hỗ trợ. | | Fedora không có LTS nên có ít phiên bản hỗ trợ hơn nhưng vẫn có ít nhất 2 phiên bản với 3 phiên bản có thể hỗ trợ. | | Điều gì nghe tốt hơn cho bạn? A. tạo nhiều gói của mỗi phiên bản của cùng một ứng dụng cho một bản phân phối và thực hiện điều đó cho nhiều bản phân phối. HOẶC B. tạo một snap cho mỗi phiên bản ứng dụng của bạn và nó hoạt động trên bất kỳ bản phân phối nào và bất kỳ phiên bản phân phối đã nói nào. Vâng, tôi bỏ phiếu cho snaps trong kịch bản đó.
Michael Tunnell

4
@ user447607 Bạn đang hiểu nhầm Snaps và Snappy là gì. Sẽ không có một loạt các dư thừa, sẽ có thời gian chạy và sẽ có các tùy chọn để có snaps phụ thuộc vào các snaps khác để tiết kiệm không gian. Điều này đã có thể, trên thực tế. Snappy là một hệ thống quản lý gói khác nhau xử lý snaps và apt vẫn liên quan đến DEBs. Snaps không thay thế DEB, thay vào đó chúng làm tăng DEB để bạn có được phương pháp lai bao gồm cả hai phương thức. Trên thực tế, Snaps có thể được tạo tự động thông qua các DEB hiện có.
Michael Tunnell

2
@konung Docker hoàn toàn là container, trong đó Snaps có điều đó cũng như tích hợp với các thành phần cốt lõi của hệ thống. Ví dụ, Docker yêu cầu mọi thứ phải được bao gồm trong container để sử dụng nó. Tuy nhiên, Snaps chỉ yêu cầu các nhu cầu cần thiết được đưa vào và sau đó nó có thể nhìn ra bên ngoài snap để sử dụng những thứ khác. Snaps cũng có cơ sở hạ tầng tốt hơn NHIỀU vì Docker không có cơ chế cập nhật thực sự nhưng Snaps sử dụng hệ thống quản lý gói tương tự với APT cho Debian. Tôi đề nghị kiểm tra video tôi liên kết trong bài viết gốc. Tôi dự định thực hiện một phiên bản cập nhật sớm.
Michael Tunnell

6
@konung Snaps không phải là container. Rất nhiều người so sánh chúng với Docker chẳng hạn, nhưng Docker là container thực sự trong khi Snaps thì không. Snaps giống như container nhưng chúng không phải là container đầy đủ vì chúng cho phép các ngoại lệ bên ngoài khu vực bị giam giữ. Ví dụ: các thiết lập / cấu hình / công cụ dữ liệu được lưu trữ bên ngoài Snap bên trong thư mục / home. Bằng cách này, bạn có thể có nhiều phiên bản snap như bạn muốn tất cả chia sẻ cùng một dữ liệu / cấu hình.
Michael Tunnell

20

Nó thật đơn giản. Gói Snappy chứa tất cả các tệp cần thiết , trong đó các gói .deb có phụ thuộc vào các gói khác.

Mặt tiêu cực là snappy lớn hơn vì nó chứa tất cả các tệp. Nhưng lợi thế lớn là bạn không gặp rắc rối với các gói khác và nếu bạn loại bỏ gói này, sẽ không có gói nào khác bị ảnh hưởng bởi các phụ thuộc bị thiếu.


7
Nó cũng có nghĩa là cơn ác mộng an ninh. Ồ, làm ơn hãy chứng minh tôi sai ... bởi vì đúng sẽ rất kinh khủng.
Jürgen A. Erhard

27
Vì vậy, về cơ bản họ đang đi theo con đường Windows - điều trớ trêu thay đã bị những người dùng Linux chế giễu trong quá khứ.
Pithikos

1
Hey @ JürgenA.Erhard, theo tôi hiểu, mỗi gói sẽ có libs riêng, ví dụ như mật mã, vì vậy thay vì xác minh một gói (tức là tự biên dịch), về cơ bản bạn phải xử lý từng gói, đó là những gì bạn muốn nói "Cơn ác mộng an ninh"?
Ilya

Sửa chữa: "chứa tất cả các tệp cần thiết" là không chính xác vì có các snaps cốt lõi hoạt động như thời gian chạy. Tuy nhiên, điều này đã được thêm vào sau câu trả lời ban đầu nên nó đã đúng vào thời điểm đó nhưng rất nhiều thứ đã thay đổi kể từ đó.
Michael Tunnell

7

Snappy Personal, cách tiếp cận mới của họ để quản lý / cập nhật gói được thiết kế để nhanh hơn, đáng tin cậy hơn, giao dịch và bảo mật mạnh hơn.

Snappy cho ít nhất một trong số các vòng quay trên máy tính để bàn của họ - kế hoạch là chuyển đổi vòng quay Desktop-Next của Ubuntu từ .deb sang Snappy Personal.

.deb vẫn sẽ ở đó và một người dùng bình thường vẫn có thể sử dụng nó thường xuyên theo thời gian chuyển đổi .deb thành snappy.

Snappy sẽ được sử dụng để thống nhất khái niệm quản lý gói giữa các ioT hiện đang sử dụng snappy làm cốt lõi Os. hơn nữa, snappy cung cấp một cách tốt hơn trong việc cập nhật và loại bỏ sự cố trong khi cập nhật / nâng cấp vì nó sử dụng khái niệm toàn bộ hình ảnh, điều đó có nghĩa là bản cập nhật sẽ chỉ là một phần và do đó không có phương tiện nào bị lỗi

Đọc những bài viết để biết thêm:

http://www.webupd8.org/2015/04/ubfox-desktop-to-eventual-switch-to.html

http://www.itworld.com/article/2914850/linux/is-ubfox-moving-away-from-deb-packages-here-is-the-complete-story.html

Ngoài ra còn có một video QA từ ubfox trên không trả lời rất nhiều câu hỏi https://youtu.be/lHO8j8uo5Z4


9
Tại sao họ không thể tạo gói .deb phiên bản 2 có khả năng tương thích ngược? Tại sao thực hiện chia tách trong cộng đồng linux? Hiện tại, kế hoạch là từ từ chuyển sang Snappy trừ khi nó hoàn toàn thất bại.
Vishnudev K

họ muốn thống nhất khái niệm quản lý gói giữa các ioT hiện đang sử dụng snappy làm cốt lõi Os. hơn nữa, snappy cung cấp một cách tốt hơn trong việc cập nhật và loại bỏ sự cố trong khi cập nhật / nâng cấp vì nó sử dụng khái niệm toàn bộ hình ảnh, điều đó có nghĩa là bản cập nhật sẽ chỉ là một phần và do đó không có nghĩa là thất bại
Maythux

3
Nó đủ tệ với nhiều phương thức đóng gói trong Linux (vốn đã gây ra sự cố với các chương trình của bên thứ ba), một phương pháp khác sẽ tạo ra một mớ hỗn độn lớn hơn: - /
Wilf

@Maythux. Một ioT là gì?
TRiG

4
@Maythux xkcd.com/927
CVn

4

Hôm nay, hãy cân nhắc việc chuyển sang Ubuntu Core linh hoạt nếu bạn đang nghĩ đến việc tạo ra thứ gì đó cho người khác sử dụng, nói cách khác, là một sản phẩm .

Phần mềm được phân phối trong snaps , với những đặc điểm của nó, chúng tôi có thể tin tưởng rằng cài đặt và nâng cấp sẽ hoạt động trên mọi hệ thống như người tạo ban đầu dự định. Các đặc điểm khác là bảo mật, chẳng hạn như thực thi tách biệt và giao diện sạch để nói chuyện với hệ thống và định cấu hình các snaps đã cài đặt.

Để đạt được điều đó, snaps khác rất nhiều so với gói debian:

  • Snaps sống trong một vị trí được xác định bởi hệ thống bị cô lập trong khi các gói debian có thể phát tán các tệp ở khắp mọi nơi.
  • không có kịch bản duy trì cho snaps.

Quay trở lại câu hỏi ban đầu về việc sử dụng hay không sử dụng , nếu bạn có kế hoạch thay thế máy tính để bàn của mình bằng Ubuntu Core, tôi khuyên bạn nên gắn bó với máy tính để bàn Ubuntu thông thường. Ubuntu Core, cá nhân tôi thích gọi, bản phân phối không có gì , bởi vì một mình nó không là gì, nhưng cung cấp một khối xây dựng rất tốt để cung cấp một cái gì đó và đây là lý do tại sao nó phổ biến trong IoT ngày nay.


3
Nói cách khác, nó giống như những gì windows làm gì?
Vishnudev K

1
Đó là một câu hỏi rộng. Windows làm gì đặc biệt?
sergiusens

4
Tôi đang cài đặt VLC trong windows, nó cài đặt tất cả các gói cần thiết để hog không gian. như trong linux, chúng tôi chỉ nhận được các gói mà chúng tôi không có. Nó khá thuận tiện về mặt cập nhật và sử dụng hdd.
Vishnudev K

2
Tương tự, có. Nó không khác gì cài đặt apktrên điện thoại của bạn. Các ứng dụng có thể phát triển với sự phụ thuộc của chúng khi chúng thấy phù hợp. Có nhiều cách để phân chia điều này, mặc dù bằng cách sử dụng frameworksnaps, điều này đòi hỏi phải xem xét bảo mật chặt chẽ. Sự khác biệt với Windows là không có trình cài đặt nào ở đây có khả năng hạ cánh bất cứ nơi nào họ muốn.
sergiusens

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.