"AppImage" คืออะไร ฉันจะติดตั้งได้อย่างไร


231

ผมเพิ่งอ่านพบ Etcher, มีสไตล์โอเพนซอร์ส USB เครื่องมือภาพเขียน พูดถึงการดาวน์โหลด AppImage

ใช่ Linux; แพ็คเกจ Linux ถูกแจกจ่ายเป็น. appimage สำหรับการแจกแจงแบบ 32 บิตและ 64 บิตและควรทำงานกับการกระจาย Linux ที่สำคัญทั้งหมดโดยไม่มีปัญหาใด ๆ ขณะนี้ทีมไม่มีแผนที่จะจัดหาเครื่องมือติดตั้ง. deb (หรือ. rpm) แบบเนทีฟ

AppImages คืออะไร พวกเขาแตกต่างจาก snaps อย่างไร


10
ฉันคิดว่าappimageแท็กอาจมีประโยชน์ดังนั้นฉันเพิ่งสร้างขึ้น ในกรณีที่เราไม่ต้องการหรือต้องการเก็บไว้จะมีตัวเลือกในการเบิร์นอีกครั้งเสมอ
ผู้บัญชาการ Byte

คำตอบ:


283

ข้อมูลพื้นฐาน

เกี่ยวกับการติดตั้ง

ฉันกำลังอ้างถึงหน้าโครงการของ appImage ที่นี่:

AppImages สามารถดาวน์โหลดและรันได้โดยไม่ต้องติดตั้งหรือไม่ต้องใช้สิทธิ์รูท

ทำให้ปฏิบัติการได้

คุณสามารถทำให้ appImage สามารถเรียกใช้งานได้ดังนี้:

chmod a+x exampleName.AppImage

ดำเนินการ

คุณสามารถดำเนินการ appImage ดังนี้:

./exampleName.AppImage

ข้อมูลเพิ่มเติม

เกี่ยวกับ appImage

คุณสามารถค้นหาบางข้อมูลทั่วไปเกี่ยวกับ appImage ที่นี่

ฉันกำลังอ้างถึงหน้าโครงการของ appImage ที่นี่:

แนวคิดหลักของรูปแบบ AppImage คือหนึ่ง app = หนึ่งไฟล์ AppImage ทุกอันมีแอพและไฟล์ทั้งหมดที่แอพจำเป็นต้องเปิดใช้งาน กล่าวอีกนัยหนึ่ง AppImage แต่ละรายการไม่มีการพึ่งพานอกเหนือจากสิ่งที่รวมอยู่ในระบบปฏิบัติการพื้นฐานเป้าหมาย

Wikipediaเพิ่ม

AppImage (และ klik รุ่นก่อนหน้าและ portablelinuxapps) ไม่ได้ติดตั้งซอฟต์แวร์ในแบบดั้งเดิม (กล่าวคือมันจะไม่วางไฟล์ทั้งหมดไว้ในระบบ)

มันใช้หนึ่งไฟล์ต่อแอปพลิเคชัน แต่ละอันมีอยู่ในตัวเอง: รวมไลบรารีทั้งหมดที่แอปพลิเคชันขึ้นอยู่กับและไม่ได้เป็นส่วนหนึ่งของระบบพื้นฐาน ในเรื่องนี้มันคล้ายกับ "virtualization application" หนึ่งสามารถใช้ไฟล์ AppImage แม้ว่าพวกเขาจะไม่ superuser หรือพวกเขากำลังใช้ซีดีอยู่ ไฟล์ AppImage มักจะง่ายกว่าการคอมไพล์และติดตั้งแอปพลิเคชันเนื่องจากไม่มีการติดตั้งเกิดขึ้นจริง ไฟล์ AppImage เป็นอิมเมจที่ถูกบีบอัดซึ่งถูกเมาท์ชั่วคราวเพื่ออนุญาตการเข้าถึงโปรแกรม แต่ไม่จำเป็นต้องแตกโปรแกรมหรือแก้ไขระบบพื้นฐาน

README.mdของAppImageKit โครงการมีจำนวนมากข้อมูลเพิ่มเติมเช่นกรณีการใช้งาน , พื้นที่ปัญหาและวัตถุประสงค์

ใช้เคส

  • ในฐานะผู้ใช้ฉันต้องการไปที่หน้าดาวน์โหลดอัปสตรีมดาวน์โหลดแอปพลิเคชันจากผู้เขียนต้นฉบับและรันบนระบบเดสก์ทอป Linux ของฉันเหมือนกับที่ฉันทำกับแอปพลิเคชัน Windows หรือ Mac

  • ในฐานะผู้ทดสอบฉันต้องการรับแอปพลิเคชั่นรุ่นตกเลือดล่าสุดจากเซิร์ฟเวอร์บิลด์ต่อเนื่องและทดสอบในระบบของฉันโดยไม่จำเป็นต้องรวบรวมและไม่ต้องกังวลว่าฉันอาจทำให้ระบบของฉันยุ่งเหยิง

  • ในฐานะผู้เขียนแอปพลิเคชันหรือ ISV ฉันต้องการจัดทำแพคเกจสำหรับระบบเดสก์ท็อป Linux เช่นเดียวกับที่ฉันทำสำหรับ Windows และ OS X โดยไม่จำเป็นต้องเผยแพร่และกระจายโดยไม่ต้องสร้าง gazillions สำหรับการกระจายที่แตกต่างกัน

วัตถุประสงค์

  1. เรียบง่าย

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

  2. รักษาความเข้ากันได้ไบนารี

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

  3. เป็นคนที่ไม่เชื่อเรื่องพระเจ้า

    AppImage ควรรันบนทุกระบบปฏิบัติการพื้นฐาน (ดิสทริบิวชั่น) ที่สร้างขึ้นสำหรับ (และเวอร์ชั่นใหม่กว่า) ตัวอย่างเช่นคุณสามารถกำหนดเป้าหมาย Ubuntu 9.10, openSUSE 11.2 และ Fedora 13 (และรุ่นที่ใหม่กว่า) ในเวลาเดียวกันโดยไม่ต้องสร้างและบำรุงรักษาแพ็กเกจแยกต่างหากสำหรับแต่ละระบบเป้าหมาย

  4. ลบความจำเป็นในการติดตั้ง

    AppImages มีแอปในรูปแบบที่อนุญาตให้เรียกใช้โดยตรงจากที่เก็บถาวรโดยไม่ต้องติดตั้งก่อน นี่เปรียบได้กับ Live CD ก่อน Live CD จะต้องติดตั้งระบบปฏิบัติการก่อนจึงจะสามารถใช้งานได้

  5. ทำให้แอปบีบอัดอยู่ตลอดเวลา

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

  6. อนุญาตให้ใส่แอปได้ทุกที่

    AppImages คือ "relocatable" ทำให้ผู้ใช้สามารถจัดเก็บและดำเนินการได้จากทุกที่ (รวมถึง CD-ROM, DVDs, ดิสก์ที่ถอดได้, USB sticks)

  7. ทำให้แอปพลิเคชันอ่านอย่างเดียว

    เนื่องจาก AppImages เป็นแบบอ่านอย่างเดียวโดยการออกแบบผู้ใช้จึงมั่นใจได้ว่าแอปจะไม่แก้ไขตัวเองในระหว่างการดำเนินการ

  8. ไม่ต้องการคอมไพล์ซ้ำ

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

  9. ทำให้ระบบปฏิบัติการพื้นฐานไม่มีการแตะต้อง

    เนื่องจาก AppImages มีวัตถุประสงค์เพื่อให้ทำงานบนระบบธรรมดาที่ไม่ได้จัดทำขึ้นเป็นพิเศษโดยผู้ดูแลระบบ AppImages อาจไม่ต้องการการเตรียมระบบปฏิบัติการพื้นฐานที่ผิดปกติ ดังนั้นพวกเขาจึงไม่สามารถพึ่งพาเคอร์เนลแพตช์พิเศษโมดูลเคอร์เนลหรือแอปพลิเคชันใด ๆ ที่ไม่ได้มาพร้อมกับการกระจายเป้าหมายตามค่าเริ่มต้น

  10. ไม่ต้องการรูท

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


4
appimage ยังคงมีการตั้งค่าระหว่างการเปิดตัวอย่างไร
Dan Dascalescu

1
คุณช่วยอธิบายคุณสมบัติ "อ่านอย่างเดียว" ได้ไหม? ฉันสามารถบันทึกการเปลี่ยนแปลงภายใน AppImage ได้หรือไม่ หรือสูญเสียพวกเขาใกล้เคียงเช่น LiveCD?
vstepaniuk

2
@DanDascalescu: คำถามของคุณควรได้รับการยกระดับเป็นคำถามเต็มใน AskUbuntu ไม่ใช่แค่ความคิดเห็น คุณจะถามมันไหม
Kurt Pfeifle

@vstepaniuk: คำถามของคุณคล้ายกับของ Dan หนึ่งในคุณควรถามว่าเป็นคำถาม "เต็ม" ไม่เพียง แต่ในความคิดเห็น ...
Kurt Pfeifle

1
@KurtPfeifle: เนื่องจากคุณไม่ต้องการที่จะไปข้างหน้าและถามตัวเอง ... :)
Dan Dascalescu

22

แนวคิดพื้นฐานอาจดูคล้ายกันระหว่างสองระบบ แต่มีความแตกต่างในการออกแบบบางอย่างระหว่างสแน็ปและแอพ

บางคน "ใหญ่" ที่อยู่ในใจของฉันคือ:

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

  2. ความปลอดภัย การติดตั้งซอฟต์แวร์ที่มาจากทั่วทั้งเครือข่ายนั้นปลอดภัยพอ ๆ กับการเลียเสาในท้องถนน บางครั้งไม่มีอะไรเกิดขึ้นบางครั้งคุณก็มีปัญหาสุขภาพที่ใหญ่มาก แพ็คเกจ Snap มีที่เก็บข้อมูลที่เหมาะสมซึ่งถูกควบคุมโดย Canonical เช่นเดียวกับที่เก็บ Ubuntu มาตรฐานทั่วไป คุณสามารถไปและติดตั้ง.debไฟล์ได้จากทุกที่ แต่จะเป็นทางเลือกของคุณและไม่ใช่ปัญหาการออกแบบ

  3. การติดตั้ง. AppImages มีความหมายเท่ากับ "executables Windows แบบพกพา" ไลบรารีทั้งหมดมีในตัวและผู้ใช้สามารถดาวน์โหลดและเรียกใช้หนึ่งในนั้น ในทางตรงกันข้ามsnapแพคเกจเป็นแพคเกจที่เหมาะสมและพวกเขาจะต้องติดตั้ง (เช่นrootหรือด้วยsudo) ผ่านผู้จัดการแพคเกจแอปพลิเคชัน ( snap install tic-tac-toeโยนข้อผิดพลาด: มันต้องการsudo!)

  4. การถอด ในการลบแพ็คเกจ snap คุณต้องใช้ตัวจัดการแพ็คเกจsnap remove ...ด้วยสิทธิ์ที่ถูกต้อง ในทางกลับกันพวกเขาเป็นเพียงแค่ "นั่น" ดังนั้นผู้ใช้คนใดไม่ต้องการ Appimage นั้น? เขา / เธอเพิ่งลบไฟล์และมันจะหายไป

ในขณะที่ฉันแนะนำให้ใช้ความระมัดระวังอย่างยิ่งเมื่อใช้ Appimages แต่ส่วนตัวฉันใช้บางอย่างด้วยตัวเอง

ฉันพบว่ามีประโยชน์อย่างยิ่งในระบบการทำงานของฉันซึ่งฉันไม่rootสามารถเข้าถึงได้(เฉพาะผู้ดูแลระบบเท่านั้น) แต่ฉันต้องการซอฟต์แวร์เฉพาะรุ่นล่าสุดที่โชคดีผู้พัฒนาได้จัดเตรียมไว้ในแบบฟอร์ม Appimage

ฉันกลัวว่ารหัสซีเรียลบางอย่างจะมีอยู่ในนั้นดังนั้นฉันจึงตรวจสอบตัวตนของผู้เผยแพร่มากที่สุด ฉันไม่แน่ใจ 100% ว่าซอฟต์แวร์นี้มีเมตตา แต่ฉันทำทุกอย่างเท่าที่ทำได้


2
โดยพื้นฐานแล้วทุกคนพยายามที่จะใช้บรรจุภัณฑ์แอพ OSX บน linux แต่ก็ไม่มีอะไรมาถึง
OrangeDog

2
ฉันไม่รู้ว่ามันทำงานอย่างไร :) แน่นอนว่า snap และ Appimages ทำงานได้ไม่ดีกับซอฟต์แวร์ที่มีการพึ่งพาจำนวนมากที่ใช้ร่วมกันระหว่างโปรแกรมอื่น ๆ พวกมันใช้ได้ดีกับซอฟต์แวร์ที่มีอยู่แล้วในตัวเองหรือมีการพึ่งพาเพียงเล็กน้อย แต่ความเสี่ยงคือการมีสำเนาของไลบรารีเดียวกันจำนวนมากที่ทำงานเดียวกันเช่นใน Windows สิ่งนี้ควรได้รับการแก้ไขในแพ็คเกจ snap (ซอฟต์แวร์ที่ขึ้นอยู่กับ snap library ติดตั้งไลบรารี่นั้นกับเวอร์ชั่นนั้นจากนั้นซอฟต์แวร์อื่นที่ต้องการไลบรารี่รุ่นเดียวกันอาจใช้งานได้เช่นเดียวกับระบบปกติ)
dadexix86

แอพ OSX (และ iOS) ทำงานได้เหมือน AppImage (เพียงดาวน์โหลดไฟล์เดียวและทำงาน) แต่ด้วยการรักษาความปลอดภัยอย่างรวดเร็วของสแน็ปบ็อกซ์
OrangeDog

OSX พยายามกำจัดสิ่งเหล่านี้และอนุญาตเฉพาะการติดตั้งจากร้านค้าของพวกเขาเท่านั้น
LtWorf

AppImage ควรมีตัวเลือกสำหรับ Sand Boxing หวังว่าเราจะเห็นว่าในอนาคต
Royi

20

ก่อนที่คุณจะสามารถเรียกใช้ AppImage คุณต้องทำให้มันสามารถเรียกใช้ได้ นี่คือคุณลักษณะด้านความปลอดภัยของ Linux มีสองวิธีหลักในการทำให้ AppImage สามารถดำเนินการได้:

1. การใช้ GUI

วิธีทำให้ AppImage สามารถเรียกใช้งานได้

หรือ

2. ในบรรทัดคำสั่ง

chmod a+x Some.Appimage

ตอนนี้ดับเบิลคลิกที่ไฟล์ของคุณเพื่อเรียกใช้หรือคลิกขวา> เรียกใช้


15

ในขณะที่ snap มุ่งเน้นไปที่ Ubuntu เท่านั้น AppImage เป็น cross-distribution และยังทำงานบน Fedora, debian, openSUSE, CentOS เป็นต้น

AppImage ไม่ต้องการการสนับสนุนรันไทม์หรือโครงสร้างพื้นฐานจากการกระจาย Linux ดังนั้นจึงทำงานถัดจากทุกที่ ช่วยให้ผู้เขียนแอปพลิเคชันส่งซอฟต์แวร์ของตนโดยตรงไปยังผู้ใช้ Linux เช่นทำเพื่อ Windows และ OS X; ไม่มี Canonical หรือบุคคลอื่น "ระหว่าง" ผู้เขียนซอฟต์แวร์และผู้ใช้

ถ้าโปรแกรมประยุกต์ที่ให้บริการในรูปแบบ AppImage แล้วผู้ใช้สามารถไปที่เว็บไซต์ที่ผู้เขียนต้นฉบับจะดาวน์โหลดได้เช่น MuseScore จากhttps://musescore.org/en/download ทำให้ AppImage สามารถเรียกใช้งานได้ (ไม่ว่าจะใช้ตัวจัดการไฟล์หรือchmod a+x ./yourAppImage) จากนั้นคุณสามารถเรียกใช้แอปพลิเคชั่นได้ง่ายๆโดยการดับเบิลคลิก


ดังนั้นหากฉันต้องการติดตั้ง Leafpad ฉันจะคลิกที่ "ตั้งค่าฉัน" ได้หรือไม่? จะเกิดอะไรขึ้น และฉันจะถอนการติดตั้ง AppImage ได้อย่างไร? ฉันกำลังดูbintray.com/probono/AppImagesแต่ไม่พบคำตอบ หากคุณไม่รังเกียจคุณสามารถแก้ไขคำตอบเพื่อรวมข้อมูลรวมถึงสิ่งอื่นใดที่คุณคิดว่าผู้ใช้อาจต้องการทราบ
DK Bose

2
ไม่แน่ใจว่าจะเป็นวิธีแก้ปัญหาสำหรับคุณหรือไม่ - แต่มี leafpad อยู่ในแหล่งข้อมูล 16.04 นอกกรอบ (รุ่น: 0.8.18.1) รุ่นแผ่นพับที่นำเสนอโดย bintray คือ 'เพียง' 0.8.17 - ยิ่งเก่ากว่า
dufte

1
จริง แต่สำหรับบางคนที่ต้องการทดสอบน่านน้ำมันเหมือนที่เว็บไซต์บอกว่าเป็น "Hello, World" ประเภทของสิ่ง
DK Bose

ยอดเยี่ยม หลังจากนี้คุณสามารถดับเบิลคลิก นั่นคือสิ่งที่ฉันต้องการ!
Dawoodjee

5

AppImages ต้องการ FUSE เพื่อให้ทำงานได้ ระบบไฟล์ใน Userspace (FUSE) เป็นระบบที่อนุญาตให้ผู้ใช้ที่ไม่ใช่ผู้ใช้เมาท์ระบบไฟล์

ติดตั้ง FUSE

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

ตัวอย่างเช่นบน Ubuntu:

sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER

ตัวอย่างเช่นใน openSUSE:

sudo zypper install fuse

รั้งท้าย

หากคุณไม่ต้องการติดตั้ง FUSE คุณสามารถเมานต์หรือแตก AppImage

หากต้องการติดตั้ง AppImage และเรียกใช้แอปพลิเคชันเพียงเรียกใช้

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

หากไม่ได้ผลคุณอาจมีAppImage ประเภท 2อยู่ เหล่านี้คุณต้องผ่าน-o offset=...ไปยังmountคำสั่ง เรียกใช้ AppImage ด้วย--appimage-offsetเพื่อค้นหาหมายเลขที่ถูกต้องสำหรับออฟเซ็ต


หลังจากเขียนบรรทัดที่ 3 ( sudo usermod -a -G fuse) ตามด้วยชื่อผู้ใช้ของฉันฉันได้รับ usermod: group 'fuse' does not exist... ความคิดใด ๆ เกี่ยวกับเหตุผล?
Martin

สวัสดี @Martin ใน Ubuntu เป็นเวลานาน หากคุณกำลังพยายามเรียกใช้ Appimage i686 (32 บิต) ในระบบ x86_64 (64 บิต) คุณจะได้รับข้อผิดพลาดนั้นเว้นแต่ว่าคุณได้ติดตั้งไลบรารี 32 บิตไว้ คุณควรระบุระบบปฏิบัติการและแอพที่คุณพยายามเรียกใช้ในครั้งถัดไปเพื่อขอความช่วยเหลือ
Leo

สวัสดี @Leo มันนานมาแล้ว แต่ฉันเพิ่งป้อนsudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERบรรทัดใน Windows 10 64 ของฉันคำตอบที่ฉันแสดงความคิดเห็นไม่ได้ทำข้อกำหนด 32/64 และฉันไม่เห็นว่าฉันควรจะระบุหรือ ทำไม ...
มาร์ติน

1

ทำตามขั้นตอนด้านล่าง:

  • คลิกขวาที่ AppImage
  • คลิกที่คุณสมบัติ
  • คลิกที่สิทธิ์
  • จากนั้นคลิกที่อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม

ใช้ Terminal:

chmod u+x <appimage>

คุณสามารถอ่านเพิ่มเติมได้ที่นี่: https://citguru.hashnode.dev/heres-how-to-install-appimage-on-linux-cjwxozb1n003o1rs17epqop6g

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.