ทำไม Ubuntu จึงย้ายไปแพ็คเกจ Snappy


127

ทำไม Ubuntu ทิ้งแพ็คเกจ. deb และย้ายไปยังแพ็คเกจที่มีความสุข? (อย่างน้อยตอนนี้พวกเขากำลังเก็บแพ็คเกจ. deb สำหรับการแจกแจงแบบปกติ) .deb เป็นบรรจุภัณฑ์ที่ได้รับความนิยมสูงสุดอยู่แล้ว

นี่เป็นแนวคิดเกี่ยวกับรูปแบบแพคเกจ Snappy แต่จะเกิดอะไรขึ้นกับแพ็คเกจ deb ที่มีอยู่ มีข้อได้เปรียบที่ชัดเจนในการย้ายมาที่ Snappy หรือไม่? มันคุ้มค่ากับความเจ็บปวดหรือไม่?


ลิงค์นี้เป็น borken
y30

คำตอบ:


145

Snappyเป็นความพยายามในการแก้ปัญหาพื้นฐานอย่างหนึ่งของ Linux ในระบบปฏิบัติการเดสก์ท็อปและปัญหานั้นคือความพร้อมใช้งานของแพคเกจและการกระจายแพ็คเกจ อย่างไรก็ตาม Snappy ไม่ได้มีจุดประสงค์เพื่อแทนที่ debs อย่างสมบูรณ์ Snaps และ Debs ทำงานร่วมกัน

ฉันเป็นคนที่กระตือรือร้นของ Linux และเป็นผู้จัดการโครงการของแอพพลิเคชัน Linux ในขณะที่ฉันรักระบบ Linux โดยรวมฉันดูถูกสถานะปัจจุบันของการกระจายแพ็กเกจ Snappy มุ่งมั่นที่จะแก้ปัญหาพื้นฐานนี้

ในลีนุกซ์แพคเกจนั้นมีความเฉพาะสำหรับ distro ส่วนใหญ่ (เป็นไปได้ที่จะทำให้ DEB หนึ่งตัวที่ทำงานในระบบที่ใช้ Debian ที่แตกต่างกันทั้งหมด แต่ที่ จำกัด คุณในบางวิธี) แต่ไม่เพียง แต่ที่แพ็คเกจนั้นเป็นรุ่น distro โดยเฉพาะ

ถ้าฉันสร้างแพ็คเกจ deb สำหรับ Ubuntu 16.04 ดังนั้นแพ็คเกจนั้นจะไม่ทำงานบน Ubuntu ทุกรุ่น ฉันต้องทำ 14.04, 15.04, 15.10 และอื่น ๆ เหล่านี้เป็นเพียงแค่ Ubuntu debs ฉันยังต้องทำเพื่อ Debian จากนั้นคุณต้องสร้าง RPM สำหรับ Fedora 21, 22, 23 และอื่น ๆ และ RPM เหล่านั้นไม่ได้ครอบคลุม openSUSE

นี่หมายความว่าถ้าฉันต้องการปล่อยแอพพลิเคชั่นเวอร์ชันใหม่และไม่ต้องรอผู้ดูแลระบบ distro เพื่อรวมไว้ในที่เก็บ (ซึ่งมักจะใช้เวลานานมาก) ดังนั้นฉันต้องจัดหาแพ็กเกจกว่า 20 รายการเพื่อให้ครอบคลุม Linux distros ส่วนใหญ่ และยังคงไม่ครอบคลุมทุกสิ่ง

Snaps ของ Ubuntu มีวิธีสร้าง Snap หนึ่งอันที่ทำงานบน Ubuntu ทุกรุ่นที่รองรับ Snaps ไม่เจาะจงรุ่น distro อีกต่อไป

Snaps สามารถรวมเข้ากับ distros อื่น ๆ อาจไม่มีความเฉพาะเจาะจงอีกต่อไป

Snaps ถูกควบคุมใน repo ที่ตั้งใจจะดูแลโดยนักพัฒนาแพ็คเกจดังนั้นเมื่อเราต้องการปล่อยเวอร์ชั่นใหม่เราไม่ต้องรอใครเลย

โดยพื้นฐานแล้วทุกอย่างที่ฉันเกลียดเกี่ยวกับการแจกจ่ายแพ็คเกจ Linux จะได้รับการแก้ไขโดย Snappy แม้ว่ามันจะเป็นสิ่งสำคัญที่จะต้องทราบว่าปัญหาเหล่านี้จะได้รับการแก้ไขโดยAppImagesและFlatpaks

TL; DR

การแจกจ่ายแพ็คเกจ Linux นั้นแย่ทั้งผู้พัฒนาและผู้ใช้ Snappy (เช่น AppImages & Flatpaks) มีวัตถุประสงค์เพื่อแก้ไขปัญหาพื้นฐานนี้ด้วยระบบที่ใช้ Linux


คำถามนี้เกี่ยวกับสาเหตุของการเคลื่อนไหว แต่ถ้าใครสนใจเรียนรู้เพิ่มเติมเกี่ยวกับ Snaps คืออะไรและพวกเขาทำงานอย่างไร ฉันสร้างวิดีโอนี้เพื่ออธิบายโครงสร้างในเชิงลึก


12
เอ้ยคุณทำให้มันฟังดูหนักมากยกเว้นว่าไม่มีใครเคยสนับสนุน Fedora, Debian หรือ Ubuntu หลายรุ่น เมื่อเวลา 16.04 หมดลง 15.04 จะเป็น EOL เมื่อถึงเวลาที่ Fedora 23 หมดลง F21 ก็เหลือน้อยกว่าหนึ่งเดือนของชีวิตเหลืออีกนานพอที่ผู้คนจะข้ามการเปิดตัว ไม่ว่าจะเป็นเรื่องสำคัญ เมื่อคุณมีไฟล์สเปค RPM พื้นฐานหรือแพ็คเกจเดเบียนพื้นฐานที่เขียน distros อื่น ๆ จะเป็น tweaked แล้วมันก็เป็นงานของ Jenkins ที่จะสร้างมันขึ้นมาสำหรับการเปิดตัวใหม่ทุกครั้ง
John Franklin

10
แพ็คเกจ Ubuntu นั้นทำขึ้นสำหรับหลาย ๆ เวอร์ชั่น: 14.04, 15.10, 16.04 และบางรุ่นยังคงรองรับ LTS เก่าเช่น 12.04 ซึ่งยังคงรองรับอยู่ || Fedora ไม่มี LTS เลยใช่น้อยกว่ารุ่นที่ให้การสนับสนุน แต่ก็ยังมีอย่างน้อย 2 รุ่นที่มี 3 รุ่นที่รองรับ || ฟังดูดีกว่าคุณเหรอ? A. สร้างหลาย ๆ แพ็คเกจของแต่ละเวอร์ชั่นของแอพพลิเคชั่นเดียวกันสำหรับหนึ่ง distro และทำเช่นนั้นสำหรับ distros หลาย ๆ อัน หรือ B. สร้างหนึ่งแอปสำหรับแต่ละเวอร์ชันของแอปของคุณและใช้กับ distro ใดก็ได้และ distro ที่กล่าวมาทั้งหมด ใช่ฉันลงคะแนนเพื่อยึดในสถานการณ์นั้น
Michael Tunnell

4
@ user447607 คุณเข้าใจผิดว่า Snaps และ Snappy คืออะไร จะไม่มีการซ้ำซ้อนมากมายจะมี runtimes และจะมีตัวเลือกให้ snaps ขึ้นอยู่กับ snaps อื่น ๆ เพื่อประหยัดพื้นที่ นี่เป็นไปได้จริงแล้ว Snappy เป็นระบบการจัดการแพกเกจต่าง ๆ ที่จัดการ snaps และ apt ยังคงเกี่ยวข้องกับ DEB Snaps ไม่ได้แทนที่ DEB แต่จะเพิ่ม DEBs แทนดังนั้นคุณจึงได้วิธีไฮบริดที่ครอบคลุมทั้งสองวิธี ในความเป็นจริง Snaps สามารถสร้างขึ้นโดยอัตโนมัติผ่าน DEB ที่มีอยู่
Michael Tunnell

2
@konung Docker เป็น containerization ล้วนๆซึ่ง Snaps มีสิ่งนั้นรวมถึงการรวมเข้ากับส่วนประกอบหลักของระบบ ตัวอย่างเช่นนักเทียบท่าต้องการให้ทุกอย่างรวมอยู่ในคอนเทนเนอร์เพื่อใช้งาน อย่างไรก็ตาม Snaps ต้องการเพียงสิ่งที่จำเป็นที่จะถูกรวมไว้และจากนั้นมันก็สามารถมองออกไปข้างนอกได้อย่างรวดเร็ว Snaps มีโครงสร้างพื้นฐานที่ดีกว่ามากเนื่องจาก Docker ไม่มีกลไกการอัพเดตที่แท้จริง แต่ Snaps ใช้ระบบการจัดการแพคเกจที่คล้ายกันกับ APT สำหรับ Debian ฉันขอแนะนำให้ตรวจสอบวิดีโอที่ฉันเชื่อมโยงในโพสต์ต้นฉบับ ฉันวางแผนที่จะสร้างเวอร์ชันที่ปรับปรุงเร็ว ๆ นี้
Michael Tunnell

6
@konung Snaps ไม่ใช่ตู้คอนเทนเนอร์ ผู้คนจำนวนมากเปรียบเทียบกับ Docker ตัวอย่างเช่น แต่ Docker เป็นคอนเทนเนอร์จริงที่ไม่มี Snaps Snaps เป็นลักษณะคล้าย container แต่ไม่ได้เป็นแบบ full container เนื่องจากอนุญาตให้มีข้อยกเว้นนอกการ จำกัด ตัวอย่างเช่นสิ่งการตั้งค่า / configs / data จะถูกเก็บไว้นอก Snap ภายในโฟลเดอร์ / home วิธีนี้คุณสามารถมี snap ได้หลายเวอร์ชันตามที่คุณต้องการให้ทุกคนแบ่งปันข้อมูล / การกำหนดค่าเดียวกัน
Michael Tunnell

20

มันง่ายมาก แพ็คเกจ Snappy มีไฟล์ที่จำเป็นทั้งหมดซึ่งแพ็คเกจ. deb มีการอ้างอิงกับแพ็คเกจอื่น ๆ

ด้านลบคือเร็วกว่ามากเพราะมันบรรจุไฟล์ทั้งหมด แต่ข้อดีคือคุณไม่ได้มีปัญหากับแพ็กเกจอื่นและถ้าคุณลบแพ็กเกจนี้จะไม่มีผลกระทบต่อแพ็กเกจอื่น ๆ จากการอ้างอิงที่หายไป


7
นอกจากนี้ยังหมายถึงฝันร้ายด้านความปลอดภัย โอ้โปรดพิสูจน์ฉันผิด ... เพราะความถูกต้องน่ากลัวมาก
Jürgen A. Erhard

27
ดังนั้นโดยพื้นฐานแล้วพวกเขากำลังใช้เส้นทางของ Windows - ซึ่งเป็นเรื่องน่าขันที่ Linux-ers เคยล้อเลียนในอดีต
Pithikos

1
Hey @ JürgenA.Erhardอย่างที่ฉันเข้าใจแต่ละแพ็กเกจจะมี libs ของตัวเองตัวอย่างเช่นการเข้ารหัสดังนั้นแทนที่จะยืนยันหนึ่ง (เช่นการคอมไพล์ด้วยตนเอง) คุณต้องจัดการกับทุกแพ็กเกจเป็นหลักคือสิ่งที่คุณหมายถึง "ฝันร้ายด้านความปลอดภัย"?
Ilya

การแก้ไข: "มีไฟล์ที่จำเป็นทั้งหมด" ไม่ถูกต้องเนื่องจากมีแกนกลางที่ทำหน้าที่เหมือนกับรันไทม์ อย่างไรก็ตามนี่ถูกเพิ่มเข้ามาหลังจากคำตอบดั้งเดิมดังนั้นจึงถูกต้องในเวลานั้น แต่มีการเปลี่ยนแปลงมากมายตั้งแต่นั้นมา
Michael Tunnell

7

Snappy Personal วิธีการใหม่ในการจัดการ / อัปเดตแพ็กเกจที่ออกแบบมาให้เร็วขึ้นน่าเชื่อถือยิ่งขึ้นธุรกรรมและความปลอดภัยที่สูงขึ้น

Snappy อย่างน้อยหนึ่งเดสก์ท็อปของพวกเขาหมุน - แผนคือการสลับเดสก์ท็อปเดสก์ท็อป - ถัดไปจาก. deb ไปยัง Snappy Personal

.deb จะยังคงอยู่ที่นั่นและผู้ใช้ปกติยังคงสามารถใช้งานได้อย่างสม่ำเสมอตามเวลาที่แปลง. deb เป็น snappy

Snappy จะถูกนำมาใช้เพื่อรวมแนวคิดของการจัดการบรรจุภัณฑ์ในหมู่ ioT ซึ่งกำลังใช้ Snappy ตอนนี้เป็นแกนหลักของระบบปฏิบัติการ ยิ่งไปกว่านั้น snappy ยังมีวิธีที่ดีกว่าในการอัพเดทและกำจัดปัญหาในขณะที่ update / upgrade เนื่องจากมันใช้คอนเซปต์ของภาพทั้งหมดซึ่งหมายความว่าการอัปเดตจะเป็นเพียงชิ้นเดียวและดังนั้นจึงไม่ล้มเหลว

อ่านบทความเหล่านั้นสำหรับข้อมูลเพิ่มเติม:

http://www.webupd8.org/2015/04/ubuntu-desktop-to-eventually-switch-to.html

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

นอกจากนี้ยังมีวิดีโอ QA จาก ubuntu on air ที่ตอบคำถามมากมายมากมาย https://youtu.be/lHO8j8uo5Z4


9
ทำไมพวกเขาไม่สามารถสร้างแพ็คเกจ. deb เวอร์ชัน 2 ที่มีความเข้ากันได้แบบย้อนหลัง ทำไมต้องทำการแยกในชุมชน linux? ตอนนี้แผนจะโยกย้ายไปยัง Snappy อย่างช้าๆเว้นแต่ว่ามันจะล้มเหลว
Vishnudev K

พวกเขาต้องการรวมแนวคิดของการจัดการแพ็กเกจระหว่าง ioT ซึ่งกำลังใช้งานเร็วเป็นหลักของระบบปฏิบัติการ ยิ่งไปกว่านั้น snappy ยังมีวิธีที่ดีกว่าในการอัปเดตและกำจัดปัญหาในขณะที่อัปเดต / อัปเกรดเนื่องจากใช้แนวคิดของภาพทั้งหมดซึ่งหมายความว่าการอัปเดตจะเป็นเพียงชิ้นเดียวและดังนั้นจึงไม่มีทางล้มเหลว
Maythux

3
มันไม่ดีพอกับวิธีการบรรจุภัณฑ์ใน Linux ที่หลากหลาย (ซึ่งทำให้เกิดปัญหากับโปรแกรมของบุคคลที่สาม) และอีกวิธีหนึ่งจะทำให้เกิดปัญหาใหญ่กว่า: - /
Wilf

@Maythux ioT คืออะไร
TRiG

4
@Maythux xkcd.com/927
CVn

4

พิจารณาที่จะย้ายไปเร็วอูบุนตูหลักวันนี้ถ้าคุณกำลังคิดที่จะสร้างบางสิ่งบางอย่างสำหรับคนอื่น ๆ ที่จะใช้ในคำอื่น ๆสินค้า

ซอฟแวร์จะถูกส่งในsnapsซึ่งกำหนดลักษณะของเราจะได้มีความเชื่อมั่นว่าการติดตั้งและการอัพเกรดจะทำงานในทุกระบบเป็นผู้สร้างเดิมตั้งใจ คุณลักษณะอื่น ๆ คือความปลอดภัยเช่นการดำเนินการแบบแยกและอินเตอร์เฟซที่สะอาดเพื่อพูดคุยกับระบบและกำหนดค่าสแนปที่ติดตั้ง

เพื่อให้บรรลุสิ่งดังกล่าวsnapsแตกต่างกันมากจากแตกต่างจากแพคเกจเดเบียน:

  • snaps live ในระบบแยกที่กำหนดตำแหน่งขณะที่เดเบียนแพ็คเกจสามารถกระจายไฟล์ได้ทั่วทุกที่
  • ไม่มีสคริปต์ผู้ดูแลสำหรับ snaps

กลับไปที่คำถามเดิมว่าจะใช้หรือไม่ใช้ถ้าคุณวางแผนที่จะเปลี่ยนเดสก์ท็อปของคุณด้วย Ubuntu Core ฉันขอแนะนำให้คุณใช้กับเดสก์ท็อป Ubuntu ปกติ Ubuntu Core ผมชอบที่จะโทรหาโดยไม่ต้อง distroเพราะเพียงอย่างเดียวมันก็ไม่ได้อะไรเลย แต่มันมี Building Block ที่ดีมากที่จะให้บางสิ่งบางอย่างและนี่คือเหตุผลว่าทำไมมันจึงเป็นที่นิยมใน IoT ทุกวันนี้


3
กล่าวอีกนัยหนึ่งมันเหมือนกับว่าหน้าต่างทำอะไร?
Vishnudev K

1
นั่นเป็นคำถามที่กว้างขวาง Windows ทำอะไรเป็นพิเศษ
sergiusens

4
ฉันกำลังติดตั้ง VLC ใน windows มันติดตั้งแพ็กเกจทั้งหมดที่จำเป็นสำหรับการใช้พื้นที่ ที่ไหนใน linux เราได้เฉพาะแพ็คเกจที่เราไม่มี มันค่อนข้างสะดวกในแง่ของการอัพเดทและการใช้งาน hdd
Vishnudev K

2
คล้ายกันใช่ ไม่แตกต่างจากการติดตั้งapkในโทรศัพท์ของคุณ แอพพลิเคชั่นสามารถพัฒนาขึ้นมาด้วยการพึ่งพาตามที่เห็นสมควร มีวิธีที่จะแยกสิ่งนี้ออกได้เช่นโดยใช้frameworksnaps นี้ต้องมีการตรวจสอบความปลอดภัยอย่างแน่นหนา ความแตกต่างกับ Windows คือไม่มีตัวติดตั้งที่นี่ที่สามารถลงจอดได้ทุกที่ที่ต้องการ
sergiusens
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.