Apa itu "AppImage"? Bagaimana cara menginstalnya?

231

Saya baru saja membaca Meet Etcher, Alat Penulis Gambar USB Sumber Terbuka yang Bergaya . Ini berbicara tentang mengunduh AppImage.

Ya, Linux; paket-paket Linux didistribusikan sebagai. Appimage untuk distribusi 32-bit dan 64-bit, dan harus dijalankan di semua distribusi Linux utama tanpa masalah. Tim saat ini tidak memiliki rencana untuk menyediakan installer .deb (atau .rpm) asli.

Apa itu AppImages? Bagaimana mereka berbeda dari terkunci?

DK Bose
sumber
10
Saya pikir appimagetag dapat menjadi berguna, jadi saya baru saja membuatnya. Dan jika kita tidak perlu atau ingin menyimpannya, akan selalu ada pilihan untuk membakar kembali.
Byte Commander

Jawaban:

283

Informasi dasar

Mengenai pemasangan

Saya mengutip halaman proyek appImage di sini:

AppImages dapat diunduh dan dijalankan tanpa instalasi atau kebutuhan akan hak root.

Membuatnya dapat dieksekusi

Anda dapat membuat appImage dapat dieksekusi sebagai berikut:

chmod a+x exampleName.AppImage

Eksekusinya

Anda dapat menjalankan appImage sebagai berikut:

./exampleName.AppImage

informasi tambahan

Tentang appImage

Anda dapat menemukan beberapa informasi umum tentang appImage di sini .

Saya mengutip halaman proyek appImage di sini:

Gagasan utama format AppImage adalah satu aplikasi = satu file. Setiap AppImage berisi aplikasi dan semua file yang harus dijalankan aplikasi. Dengan kata lain, setiap AppImage tidak memiliki dependensi selain dari apa yang termasuk dalam sistem operasi basis yang ditargetkan.

Wikipedia menambahkan

AppImage (dan pendahulu klik dan portablelinuxapps) tidak menginstal perangkat lunak dalam arti tradisional (yaitu, ia tidak meletakkan file di semua tempat dalam sistem).

Itu menggunakan satu file per aplikasi. Masing-masing mandiri: termasuk semua perpustakaan tempat aplikasi bergantung dan yang bukan bagian dari sistem dasar. Dalam hal ini, ini mirip dengan "virtualisasi aplikasi". Seseorang dapat menggunakan file AppImage bahkan jika mereka bukan pengguna super, atau mereka menggunakan CD langsung. File AppImage seringkali lebih sederhana daripada mengkompilasi dan menginstal aplikasi, karena tidak ada instalasi yang benar-benar terjadi. File AppImage adalah gambar terkompresi yang dipasang sementara untuk memungkinkan akses ke program, tetapi tidak harus mengekstrak program atau memodifikasi sistem yang mendasarinya.

The README.mddari AppImageKit-proyek menawarkan informasi tambahan banyak seperti Gunakan kasus , ruang masalah dan tujuan .

Gunakan Kasing

  • Sebagai pengguna, saya ingin pergi ke halaman unduhan upstream, mengunduh aplikasi dari penulis asli, dan menjalankannya di sistem desktop Linux saya seperti yang akan saya lakukan dengan aplikasi Windows atau Mac.

  • Sebagai seorang penguji, saya ingin dapat memperoleh versi terbaru dari aplikasi dari server build terus menerus dan mengujinya di sistem saya, tanpa perlu mengkompilasi dan tanpa harus khawatir bahwa saya akan mengacaukan sistem saya.

  • Sebagai penulis aplikasi atau ISV, saya ingin menyediakan paket untuk sistem desktop Linux seperti yang saya lakukan untuk Windows dan OS X, tanpa perlu memasukkannya ke dalam distribusi dan tanpa harus membangun gazillions dari distribusi yang berbeda.

Tujuan

  1. Sederhana.

    AppImage dimaksudkan untuk menjadi format yang sangat sederhana yang mudah dimengerti, dibuat, dan dikelola.

  2. Pertahankan kompatibilitas biner.

    AppImage adalah format untuk distribusi perangkat lunak biner. Perangkat lunak yang dikemas sebagai AppImage dimaksudkan agar kompatibel dengan biner sebanyak mungkin dengan sebanyak mungkin sistem. Kebutuhan (kompilasi ulang) perangkat lunak harus sangat dikurangi.

  3. Jadilah agnostik distribusi.

    AppImage harus berjalan di semua sistem operasi dasar (distribusi) yang dibuat untuknya (dan versi yang lebih baru). Misalnya, Anda dapat menargetkan Ubuntu 9.10, openSUSE 11.2, dan Fedora 13 (dan versi yang lebih baru) secara bersamaan, tanpa harus membuat dan memelihara paket-paket terpisah untuk setiap sistem target.

  4. Hapus kebutuhan untuk instalasi.

    AppImages berisi aplikasi dalam format yang memungkinkannya dijalankan langsung dari arsip, tanpa harus diinstal terlebih dahulu. Ini sebanding dengan Live CD. Sebelum Live CD, sistem operasi harus diinstal terlebih dahulu sebelum dapat digunakan.

  5. Simpan aplikasi terkompresi sepanjang waktu.

    Karena aplikasi tetap dikemas sepanjang waktu, itu tidak pernah terkompresi pada hard disk. Komputer membuka kompres aplikasi on-the-fly saat mengaksesnya. Karena dekompresi lebih cepat daripada membaca dari hard disk pada kebanyakan sistem, ini memiliki keunggulan kecepatan selain menghemat ruang. Juga, waktu yang dibutuhkan untuk instalasi sepenuhnya dihapus.

  6. Izinkan untuk menempatkan aplikasi di mana saja.

    AppImages "dapat dipindahkan", sehingga memungkinkan pengguna untuk menyimpan dan mengeksekusi mereka dari lokasi mana pun (termasuk CD-ROM, DVD, removable disk, stik USB).

  7. Buat aplikasi hanya-baca.

    Karena AppImages hanya-baca berdasarkan desain, pengguna dapat yakin bahwa suatu aplikasi tidak mengubah dirinya selama operasi.

  8. Tidak memerlukan kompilasi ulang.

    AppImages harus dimungkinkan untuk dibuat dari binari yang sudah ada, tanpa perlu kompilasi. Ini sangat mempercepat proses pembuatan AppImage, karena tidak ada kompiler yang terlibat. Ini juga memungkinkan pihak ketiga untuk mengemas aplikasi sumber tertutup sebagai AppImages. (Namun demikian, dapat bermanfaat bagi pengembang aplikasi hulu untuk membangun dari sumber secara khusus untuk tujuan menghasilkan AppImage.)

  9. Biarkan sistem operasi dasar tidak tersentuh.

    Karena AppImages dimaksudkan untuk berjalan pada sistem biasa yang belum disiapkan secara khusus oleh administrator, AppImages mungkin tidak memerlukan persiapan yang tidak biasa dari sistem operasi dasar. Karenanya, mereka tidak dapat mengandalkan tambalan kernel khusus, modul kernel, atau aplikasi apa pun yang tidak disertai dengan distribusi yang ditargetkan secara default.

  10. Tidak memerlukan root.

    Karena AppImages dimaksudkan untuk dijalankan oleh pengguna akhir, mereka tidak perlu membuat ulang akun administratif (root) untuk diinstal atau digunakan. Namun, mereka dapat diinstal oleh administrator (misalnya, dalam skenario multi-pengguna) jika diinginkan.

dufte
sumber
4
Bagaimana appimage mempertahankan pengaturan antar peluncuran?
Dan Dascalescu
1
Bisakah Anda sedikit menguraikan fitur "read-only"? Bisakah saya menyimpan perubahan di dalam AppImage? Atau kehilangan mereka di dekat seperti LiveCD?
vstepaniuk
2
@DanDascalescu: Pertanyaan Anda layak diangkat menjadi pertanyaan lengkap di AskUbuntu, bukan hanya komentar. Apakah Anda akan bertanya?
Kurt Pfeifle
@vstepaniuk: Pertanyaan Anda mirip dengan Dan. Salah satu dari Anda harus menanyakannya sebagai pertanyaan "lengkap", bukan hanya dalam komentar ...
Kurt Pfeifle
1
@KurtPfeifle: karena Anda tidak ingin langsung saja bertanya sendiri ... :)
Dan Dascalescu
22

Ide dasarnya mungkin terlihat serupa antara kedua sistem, tetapi ada beberapa perbedaan desain antara buncis dan Appimage.

Beberapa yang "besar" yang muncul di benak saya adalah:

  1. Keamanan , dalam hal kurungan . Paket snap berjalan di kotak pasir dan mereka tidak diizinkan keluar darinya dan mencapai bagian lain dari sistem yang tidak boleh disentuh. Ini adalah lapisan keamanan yang lebih kuat yang berjalan paralel dengan sistem izin. Jelas itu agak frustasi ketika berhadapan dengannya di awal (dan juga nanti), tetapi jika Anda memikirkannya dalam hal administrasi sistem, ini adalah hal yang diinginkan administrator untuk penggunanya.

  2. Keamanan. Menginstal perangkat lunak yang diambil dari sekitar internet, sama amannya dengan menjilati tiang di jalan-jalan. Terkadang tidak ada yang terjadi, terkadang Anda mendapatkan beberapa masalah kesehatan yang sangat besar. Paket Snap memiliki repositori yang tepat, yang dikendalikan oleh Canonical, seperti repositori Ubuntu standar yang biasa. Anda dapat melanjutkan dan menginstal .debfile dari sekitar, tetapi itu akan menjadi pilihan Anda, dan bukan masalah desain.

  3. Instalasi. AppImages dimaksudkan untuk menjadi setara dengan "executable Windows portabel". Semua perpustakaan mandiri dan setiap pengguna dapat mengunduh dan menjalankan salah satunya. Di sisi lain, snappaket adalah paket yang tepat, dan harus diinstal (seperti root, atau dengan sudo) melalui manajer paket yang sesuai ( snap install tic-tac-toemelempar kesalahan: perlu sudo!)

  4. Pemindahan. Untuk menghapus paket snap, Anda perlu menggunakan manajer paket snap remove ...dengan izin yang tepat untuk melakukannya. Appimages, di sisi lain, mereka hanya "ada". Jadi, siapa pun pengguna yang tidak menginginkan Appimage itu? Dia hanya menghapus file dan hilang.

Sementara saya sangat menyarankan untuk berhati-hati saat menggunakan Appimages, saya pribadi menggunakan beberapa dari mereka sendiri.

Saya menemukan mereka sangat berguna pada sistem kerja saya, di mana saya tidak memiliki rootakses (hanya admin yang memilikinya) tetapi saya memerlukan versi terbaru dari perangkat lunak tertentu yang, untungnya, pengembang telah menyediakan dalam bentuk Appimage.

Saya agak takut bahwa beberapa kode memfitnah memang terkandung di dalamnya, jadi saya memeriksa sebanyak mungkin identitas penerbit. Saya tidak 100% yakin bahwa perangkat lunak ini jinak, tetapi saya telah melakukan semua yang saya bisa.

dadexix86
sumber
2
Pada dasarnya, semua orang mencoba menerapkan pengemasan aplikasi OSX di linux, tetapi tidak ada yang berhasil.
OrangeDog
2
Saya tidak tahu bagaimana cara kerjanya :) Pastinya snap dan Appimages tidak bekerja dengan baik dengan perangkat lunak dengan banyak dependensi yang dibagikan di antara banyak perangkat lunak lainnya. Mereka baik-baik saja dengan perangkat lunak yang sudah lengkap atau dengan sedikit ketergantungan, tetapi risikonya adalah memiliki banyak salinan dari perpustakaan yang sama yang melakukan tugas yang sama, seperti di Windows. Ini harus diselesaikan dalam paket snap (perangkat lunak yang bergantung pada snap library menginstal perpustakaan itu dengan versi itu, maka perangkat lunak lain yang membutuhkan versi perpustakaan yang sama mungkin menggunakannya, seperti dengan sistem yang biasa).
dadexix86
Aplikasi OSX (dan iOS) bekerja seperti AppImage (cukup unduh file tunggal dan jalankan) tetapi dengan keamanan sekejap berpasir.
OrangeDog
OSX sedang mencoba untuk menyingkirkan ini dan hanya mengizinkan pemasangan dari toko mereka.
LtWorf
AppImage memang harus berisi opsi untuk Sand Boxing. Semoga kita bisa melihatnya di masa depan.
Royi
20

Sebelum Anda dapat menjalankan AppImage, Anda harus membuatnya dapat dieksekusi. Ini adalah fitur keamanan Linux. Ada dua cara utama untuk membuat AppImage dapat dieksekusi:

1. Menggunakan GUI

Cara membuat AppImage dapat dieksekusi

atau

2. Di baris perintah

chmod a+x Some.Appimage

Sekarang klik dua kali file Anda untuk menjalankannya ATAU Klik kanan> Jalankan

probono
sumber
15

Walaupun snap hanya berfokus pada Ubuntu, AppImage adalah distribusi silang dan juga berjalan pada Fedora, debian, openSUSE, CentOS dll.

AppImage tidak memerlukan dukungan runtime atau infrastruktur dari distribusi Linux dan karenanya berjalan di mana-mana. Ini memungkinkan penulis aplikasi untuk mengirimkan perangkat lunak mereka langsung ke pengguna Linux seperti yang dilakukan untuk Windows dan OS X; tanpa Canonical atau siapa pun "di antara" pembuat perangkat lunak dan pengguna akhir.

Jika aplikasi disediakan dalam format AppImage, maka pengguna dapat pergi ke situs web penulis asli untuk mengunduhnya, misalnya, MuseScore dari https://musescore.org/en/download . Jadikan AppImage dapat dijalankan (baik menggunakan pengelola file atau chmod a+x ./yourAppImage), maka Anda dapat menjalankan aplikasi hanya dengan mengklik dua kali.

probono
sumber
Jadi jika saya ingin menginstal Leafpad, apakah saya mengklik "Setel saya"? Lalu apa yang akan terjadi? Dan bagaimana cara saya mencopot AppImage? Saya mencari di bintray.com/probono/AppImages tetapi tidak menemukan jawabannya. Jika Anda tidak keberatan, Anda dapat mengedit jawaban Anda untuk memasukkan informasi serta hal lain yang menurut Anda ingin diketahui pengguna.
DK Bose
2
Tidak yakin apakah itu akan menjadi solusi bagi Anda juga - tetapi leafpad tersedia di 16,04 sumber di luar kotak (versi: 0.8.18.1). Versi leafpad yang ditawarkan oleh bintray 'hanya' 0.8.17 - bahkan lebih lama.
dufte
1
Benar, tetapi untuk seseorang yang hanya ingin menguji air, itu, seperti situs mengatakan, jenis "Halo, Dunia".
DK Bose
Luar biasa. Setelah ini, Anda cukup klik dua kali. Itulah yang saya butuhkan!
Dawoodjee
5

AppImages membutuhkan FUSE untuk dijalankan. Filesystem di Userspace (FUSE) adalah sistem yang memungkinkan pengguna non-root me-mount filesystem.

Instal SEKERING

Banyak distribusi memiliki pengaturan SEKERING yang bekerja di luar kotak. Namun jika itu tidak berhasil untuk Anda, Anda mungkin perlu menginstal dan mengkonfigurasi FUSE secara manual.

Misalnya, di Ubuntu:

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

Sebagai contoh, di openSUSE:

sudo zypper install fuse

Fallback

Jika Anda tidak ingin menginstal FUSE, Anda bisa memasang atau mengekstrak AppImage.

Untuk memasang AppImage dan menjalankan aplikasi, jalankan saja

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

Jika itu tidak berhasil, Anda mungkin memiliki AppImage tipe 2 eksperimental . Ini mengharuskan Anda untuk lulus -o offset=...ke mountperintah. Jalankan AppImage dengan --appimage-offsetuntuk mencari tahu nomor yang benar untuk offset.

lambang
sumber
Setelah menulis baris ke-3 ( sudo usermod -a -G fuse) diikuti oleh nama pengguna saya, saya terus mendapatkan usermod: group 'fuse' does not exist... Ada ide mengapa?
Martin
Hai @ Martin, Di Ubuntu misalnya. jika Anda mencoba menjalankan AppImage i686 (32bit) dalam sistem x86_64 (64bit), Anda akan mendapatkan kesalahan itu kecuali Anda memiliki pustaka 32bit yang diinstal. Anda mungkin harus menentukan OS dan aplikasi yang Anda coba jalankan waktu berikutnya untuk bantuan.
Leo
Hai @ Leo, sudah lama sekali, tapi saya baru saja memasukkan sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERbaris pada Windows 10 64 saya. Jawaban yang saya komentari tidak membuat spesifikasi 32/64 dan saya tidak melihat di mana saya harus menentukan itu atau mengapa ...
Martin