เมื่อคุณติดตั้งแพ็คเกจซอฟต์แวร์ Linux ด้วย snap
คุณสามารถบอกลาการพึ่งพานรกและทำลายแอปพลิเคชันที่ทำงานอื่นๆ ได้ แพ็คเกจ Snap เดิมออกแบบมาสำหรับ Ubuntu แต่ตอนนี้มีให้ใช้งานบนลีนุกซ์รุ่นต่างๆ
Snap Package คืออะไร?
ในอดีต การติดตั้งแอปพลิเคชันบน Linux เป็นประสบการณ์ที่น่าผิดหวัง คุณต้องติดตั้งบางอย่างเพื่อค้นหาไลบรารีเฉพาะหรือการพึ่งพาอื่น ๆ ที่ขาดหายไปหรือล้าสมัย จากนั้นคุณจะต้องค้นหาทรัพยากรที่หายไปและติดตั้งมัน เพียงเพื่อค้นหาแอปพลิเคชันอื่นที่ขึ้นอยู่กับเวอร์ชันของไลบรารีที่คุณเพิ่งเปลี่ยน แก้หนึ่ง แตกหนึ่ง ทำซ้ำ
สิ่งนี้ได้รับการปรับปรุงด้วยระบบการจัดการแพ็คเกจที่ดีขึ้น เช่น apt, dnf และ pacman อย่างไรก็ตาม คุณยังคงประสบปัญหาหากคุณต้องการติดตั้งแอปพลิเคชั่นเดียวกันในเวอร์ชันต่างๆ หรือหากคุณใช้สองแอปพลิเคชันที่ขัดแย้งกันเนื่องจากเชื่อมโยงกับเวอร์ชันเฉพาะของไลบรารี
ทางออกหนึ่งสำหรับปัญหาเหล่านี้คือระบบการบรรจุและปรับใช้แอปพลิเคชัน Snappy เป็นหนึ่งในผลิตภัณฑ์ยอดนิยมเหล่านี้ มันขึ้นอยู่กับระบบบรรจุภัณฑ์และการปรับใช้ที่เรียกว่า Click ซึ่งย้อนกลับไปที่ความคิดริเริ่มของ Ubuntu Touch AppImage และ FlatPack เป็นอย่างอื่นที่คุณอาจเคยพบ
ระบบเหล่านี้ห่อหุ้มแอปพลิเคชันพร้อมกับการขึ้นต่อกันและข้อกำหนดอื่นๆ ในไฟล์บีบอัดไฟล์เดียว จากนั้นแอปพลิเคชันจะทำงานในคอนเทนเนอร์ขนาดเล็ก มันถูกแซนด์บ็อกซ์และแยกออกจากแอปพลิเคชันอื่น ไลบรารีและทรัพยากรอื่น ๆ ที่แอปพลิเคชันถูกบรรจุหรือต้องการนั้นมีให้ใช้งานเพียงอย่างเดียวเท่านั้น
ไม่ได้ติดตั้งตามความหมายดั้งเดิม จึงไม่เกิดปัญหากับแอปพลิเคชันอื่นๆ ที่ต้องใช้ทรัพยากรรุ่นเดียวกันต่างกัน คุณยังสามารถติดตั้งและเรียกใช้แอปพลิเคชันที่ต้องการเวอร์ชันไลบรารีที่ขัดแย้งกันได้ เนื่องจากแต่ละแอปพลิเคชันอยู่ในแซนด์บ็อกซ์ของตัวเอง
หากไม่ได้ติดตั้งตามปกติ จะจัดการอย่างไร? ไฟล์แพ็คเกจเดียวถูกดาวน์โหลด คลายการบีบอัด และติดตั้งเป็น a SquashFS
ระบบไฟล์เสมือน จากนั้นจะแสดงให้คุณเห็นเป็นสภาพแวดล้อมเสมือนจริง ทั้งหมดนี้เกิดขึ้นเบื้องหลัง สิ่งที่คุณจะทราบก็คือคุณได้ติดตั้งแอปพลิเคชัน และตอนนี้คุณสามารถเข้าถึงได้
แน่นอน เนื่องจากไฟล์แพ็กเกจแต่ละไฟล์ต้องมีทรัพยากรทุกอย่างที่แอปพลิเคชันต้องการ ไฟล์แพ็กเกจอาจมีขนาดใหญ่ นอกจากนี้ยังง่ายต่อการทำซ้ำทรัพยากรที่คุณมักจะติดตั้งเพียงครั้งเดียว เช่น MySQL หรือ Apache ถ้าสองต่างกัน snap
แอปพลิเคชันต้องการทรัพยากรเดียวกัน โดยแต่ละแอปพลิเคชันจะนำสำเนามาเอง
นี่คือการแลกเปลี่ยนสำหรับความเรียบง่ายของการติดตั้งและการลบอาการปวดหัวจากความขัดแย้งของทรัพยากร
กำลังติดตั้ง snapd
Snappy เปิดตัวกับ Ubuntu 16.04 ดังนั้นหากคุณใช้เวอร์ชันนั้นหรือใหม่กว่า คุณก็พร้อมแล้ว ในเครื่องของเรา Snappy ได้รับการติดตั้งบน Manjaro 18.04 แต่เราต้องติดตั้งบน Fedora 31
snap
เป็นทั้งชื่อไฟล์แพ็คเกจและคำสั่งที่คุณใช้โต้ตอบกับไฟล์เหล่านั้น เบื้องหลัง snapd
daemon ยังเป็นชื่อของแพ็คเกจที่คุณต้องติดตั้ง หากคุณยังไม่มี Snappy บนคอมพิวเตอร์ของคุณ
ติดตั้ง snapd
บน Fedora พิมพ์คำสั่งต่อไปนี้:
sudo dnf install snapd
หากคุณต้องการติดตั้งบน Manjaro ให้ใช้คำสั่งเหล่านี้:
sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket
คุณสามารถใช้ snap version
คำสั่งเพื่อดูเวอร์ชันของ snap
ลูกค้า, snapd
daemon และหมายเลขชุดซอฟต์แวร์ ชื่อและรุ่นของการแจกจ่าย Linux และเวอร์ชันเคอร์เนลจะแสดงให้คุณเห็นด้วย
พิมพ์ต่อไปนี้:
snap version
การติดตั้ง snap Packages
เป็นกระบวนการที่ค่อนข้างตรงไปตรงมาในการติดตั้ง a snap
บรรจุุภัณฑ์. คุณสามารถใช้ได้ snap
ที่จะมองหา snap
แพ็คเกจแล้วติดตั้งแพ็คเกจที่คุณต้องการ
เราพิมพ์ข้อความต่อไปนี้เพื่อค้นหาและติดตั้งโปรแกรมแก้ไขรูปภาพ gimp:
snap find gimp
snap
ค้นหารายการที่ตรงกับเบาะแสการค้นหา “gimp” และส่งคืนสิ่งที่ค้นพบ จะพบสิ่งที่ตรงกับหรือกล่าวถึงข้อความค้นหา
ในการติดตั้งหนึ่งในแพ็คเกจ เราใช้ค่าจาก Name
คอลัมน์ดังแสดงด้านล่าง:
sudo snap install gimp
ขณะที่ดาวน์โหลด เปอร์เซ็นต์ที่เสร็จสมบูรณ์จะเพิ่มขึ้นและแถบแสดงความคืบหน้าจะคืบคลานจากด้านซ้ายของหน้าต่างเทอร์มินัล เมื่อการติดตั้งเสร็จสมบูรณ์ จะมีข้อความปรากฏขึ้น (ดังที่แสดงด้านล่าง) เพื่อแจ้งให้คุณทราบว่ามีการติดตั้งแพ็คเกจแล้ว
คุณสามารถใช้ df
คำสั่งเพื่อตรวจสอบความจุและการใช้งานของระบบไฟล์ต่างๆ ที่กำหนดค่าไว้ในคอมพิวเตอร์ Linux ของคุณ ถ้าเราไพพ์เอาท์พุตเข้าไปใน grep
คำสั่งและค้นหา “gimp” เราแยกรายการสำหรับแพ็คเกจที่เราเพิ่งติดตั้ง
เราพิมพ์ดังต่อไปนี้:
df | grep gimp
นี่แสดงให้เราเห็นว่ามีการติดตั้งแพ็คเกจ snap ราวกับว่าเป็นระบบไฟล์ จุดเมานต์อยู่ใน snap
ไดเรกทอรีที่นี่: /snap/gimp/252
. “252” คือหมายเลขรีลีสของ . เวอร์ชันนี้ gimp
.
ที่เกี่ยวข้อง: วิธีใช้คำสั่ง grep บน Linux
ระบบไฟล์ถูกระบุว่าเป็น: /dev/loop18
. ไฟล์อุปกรณ์ลูปใช้เพื่อทำให้ไฟล์ปกติสามารถเข้าถึงได้เป็นอุปกรณ์บล็อก โดยทั่วไปจะใช้สำหรับการติดตั้งระบบไฟล์ในดิสก์อิมเมจ ในกรณีนี้ พวกเขากำลังติดตั้ง SquashFS
ระบบไฟล์ภายใน snap
บรรจุุภัณฑ์. “18” หมายความว่านี่คือวันที่ 18 /dev/loop
ไฟล์อุปกรณ์ที่ใช้บนคอมพิวเตอร์ Linux เครื่องนี้
เราสามารถใช้ df
คำสั่งให้ตรวจสอบอย่างรวดเร็ว เราจะใช้- t
(ประเภท) ตัวเลือกเพื่อ จำกัด การส่งออกเป็น SquashFS
ประเภทไฟล์เท่านั้น
เราพิมพ์ดังต่อไปนี้:
df -t squashfs
ติด SquashFS
ระบบไฟล์อยู่ในรายการ NS /dev/loop
ไฟล์อุปกรณ์จัดการแต่ละไฟล์และมี 18 ไฟล์
แต่ละระบบไฟล์ถูกเมาท์บนไดเร็กทอรีภายในไฟล์ /snap
ไดเรกทอรี อย่างไรก็ตาม นี่ไม่ได้หมายความว่ามี 18 แบบที่แตกต่างกัน snap
แพ็คเกจที่ติดตั้งบนคอมพิวเตอร์เครื่องนี้ นี่คือการกระจายของ Ubuntu ดังนั้นบางส่วน snap
แพ็คเกจได้รับการติดตั้งทันที และเราเพิ่งติดตั้งแพ็คเกจอื่น
นอกจากนี้ เมื่อคุณติดตั้ง snapd
, มันติดตั้งคอร์บางตัว snap
แพ็คเกจเพื่อรองรับความต้องการของผู้อื่น snap
แพ็คเกจ
เราสามารถใช้ snap list
คำสั่งดังที่แสดงด้านล่างเพื่อแสดงรายการติดตั้ง snap
แพ็คเกจ:
snap list
ผลลัพธ์กว้างเล็กน้อย ดังนั้นส่วนท้ายของรายการจึงแสดงอยู่ด้านล่าง
นี่คือรายการทั้งหมด:
Name Version Rev Tracking Publisher Notes core 16-2.43.3 8689 stable canonical* core core18 20200124 1668 stable canonical* base gimp 2.10.18 252 stable snapcrafters - gnome-3-26-1604 3.26.0.20191114 98 stable/… canonical* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 stable canonical* - gnome-calculator 3.34.1+git1.d34dc842 544 stable/… canonical* - gnome-characters v3.32.1+git3.b9120df 399 stable/… canonical* - gnome-logs 3.34.0 81 stable/… canonical* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stable/… canonical* - gtk-common-themes 0.1-28-g1503258 1440 stable/… canonical* -
อย่างที่คุณเห็นมีการติดตั้ง snap 10 แพ็คเกจ ไม่ใช่ 18 อย่างไรก็ตาม 10 แพ็คเกจเหล่านี้ได้เพิ่ม 18 SquashFS
ระบบไฟล์ คอลัมน์ในตารางค่อนข้างอธิบายได้ด้วยตนเอง แต่ขอชี้แจงดังนี้
-
ชื่อ: ชื่อของ
snap
แพ็คเกจที่ติดตั้ง -
เวอร์ชั่น: หมายเลขเวอร์ชันของซอฟต์แวร์ใน
snap
บรรจุุภัณฑ์. -
Rev: หมายเลขแก้ไขของ
snap
บรรจุุภัณฑ์. -
การติดตาม: ช่องนี้
snap
แพ็คเกจตรวจสอบการอัปเดต มีสี่:- มั่นคง: ช่องทางเริ่มต้น ตามชื่อช่อง ช่องนี้มีแพ็คเกจที่เสถียรที่สุด
- ผู้สมัคร: ช่องนี้มีความเสถียรน้อยกว่า แต่ใกล้เคียงกันมาก เนื่องจากมีซอฟต์แวร์ระดับผู้สมัครที่วางจำหน่าย ซึ่งโค้ดสมบูรณ์ จะต้องผ่านการทดสอบขั้นสุดท้ายก่อนที่จะย้ายไปยังช่องทางเสถียร
- เบต้า: ช่องนี้มีคุณภาพช่วงการพัฒนาล่าช้า แต่ไม่รับประกันว่าจะมีเสถียรภาพ
- ขอบ: สำหรับผู้ทดสอบบิลด์ในช่วงต้น คุณไม่ควรใช้ช่องนี้สำหรับงานสำคัญหรือบนคอมพิวเตอร์ที่ใช้งานจริง ที่นี่จะเป็นมังกร!
-
สำนักพิมพ์: บุคคล บริษัท หรือองค์กรที่ออก
snap
บรรจุุภัณฑ์. หากเป็นผู้เผยแพร่ที่ได้รับการยืนยัน (และหน้าต่างเทอร์มินัลของคุณรองรับ Unicode) คุณจะเห็นเครื่องหมายถูกสีเขียวข้างชื่อผู้เผยแพร่ หากไม่สามารถแสดงเครื่องหมายถูกได้ คุณจะเห็นเครื่องหมายดอกจัน (*
). - หมายเหตุ: ความคิดเห็นหรือข้อมูลเพิ่มเติมจะปรากฏที่นี่
The snap Channels
คุณสามารถใช้ info
ตัวเลือกที่จะได้รับคำอธิบายของ snap
บรรจุุภัณฑ์.
ในการทำเช่นนั้น เราพิมพ์ดังต่อไปนี้:
snap info gtk-common-themes
เราสามารถดูว่าแพ็คเกจกำลังติดตามช่องทางใดและเวอร์ชันของซอฟต์แวร์ใน snap
แพ็คเกจในแต่ละช่องสี่ช่อง ในกรณีส่วนใหญ่ คุณควรอยู่ในช่องทางที่มั่นคง
NS snap
แพ็กเกจจะตรวจสอบสี่ครั้งต่อวันเพื่อดูว่ามีซอฟต์แวร์เวอร์ชันใหม่กว่าจากช่องที่รับชมหรือ “กำลังติดตาม” หรือไม่ หากคุณต้องการเปลี่ยนช่อง a snap
แทร็กแพ็คเกจคุณสามารถใช้ refresh
และ --channel
ตัวเลือก.
ในการทำเช่นนั้น เราพิมพ์ดังต่อไปนี้:
sudo snap refresh gtk-common-themes --channel=beta
หากมีซอฟต์แวร์เวอร์ชันใหม่กว่า ซอฟต์แวร์นั้นจะได้รับการติดตั้ง แต่นั่นไม่ใช่กรณีนี้ อย่างไรก็ตาม snap
แพ็คเกจกำลังติดตามช่องเบต้า ทันทีที่มีการเปิดตัวเวอร์ชันเบต้าใหม่ ระบบจะดาวน์โหลดและอัปเกรดโดยอัตโนมัติ
คุณสามารถใช้ --list
ตัวเลือกเพื่อตรวจสอบว่ามีการอัปเดตสำหรับ .ใด ๆ หรือไม่ snap
แพ็คเกจที่ติดตั้งบนคอมพิวเตอร์ของคุณ
ในการทำเช่นนั้น เราพิมพ์ดังต่อไปนี้:
sudo snap refresh --list
คุณจะได้รับแจ้งหากมีช่องทางใดที่ snap
แพ็กเกจในคอมพิวเตอร์ของคุณกำลังติดตามมีซอฟต์แวร์เวอร์ชันใหม่กว่า
หากมีซอฟต์แวร์เวอร์ชันใหม่กว่านี้ คุณสามารถใช้ refresh
ตัวเลือกดังที่แสดงด้านล่าง เพื่อบังคับให้รีเฟรชด้วยตนเอง:
sudo snap refresh gtk-common-themes
การถอด snap Package
ในการถอนการติดตั้ง a snap
แพ็คเกจ คุณสามารถใช้ตัวเลือกการลบดังที่แสดงด้านล่าง:
sudo snap remove gimp
สแน็ปโกงแผ่น
การใช้แพ็คเกจ snap นั้นค่อนข้างง่าย แต่เราได้รวบรวมรายการคำสั่งที่จะช่วยคุณ:
-
ในการค้นหาแพ็คเกจ:
snap find package_name
-
ในการติดตั้งแพ็คเกจ:
sudo snap install package_name
-
หากต้องการดูแพ็คเกจที่ติดตั้งทั้งหมด:
snap list
-
ในการรับข้อมูลเกี่ยวกับแพ็คเกจเดียว:
snap info package_name
-
หากต้องการเปลี่ยนช่องแพ็กเกจจะติดตามการอัปเดต:
sudo snap refresh package_name --channel=channel_name
-
หากต้องการดูว่าการอัปเดตพร้อมสำหรับแพ็คเกจที่ติดตั้งไว้หรือไม่:
sudo snap refresh --list
-
ในการอัพเดตแพ็คเกจด้วยตนเอง:
sudo snap refresh package_name
-
ในการถอนการติดตั้งแพ็คเกจ:
sudo snap remove package_name