AppImage merupakan salah satu solusi tertua untuk menjawab persoalan bagaimana mengemas perangkat lunak agar bisa langsung dijalankan pada banyak distro GNU/Linux. Jika Anda belum mengenal AppImage, bayangkan saja ia seperti portable software untuk dunia GNU/Linux. Kita tidak perlu memusingkan distro, dependencies atau package manager, cukup unduh software yang dikemas menjadi AppImage, jadikan executable dan kemudian jalankan. That's simple.
Meski telah lama beredar, dan bahkan menuai pujian dari tokoh sekaliber Linus Torvalds, popularitas AppImage tidak kunjung menanjak dan malah cenderung tenggelam tertelan riuhnya berita aplikasi sejenis; snaps dan flatpak.
Karenanya, dalam artikel kali ini saya akan mencoba mengangkat topik AppImage dengan bahasan bagaimana cara membuat berkas AppImage untuk Genymotion.
Sengaja saya pilih Genymotion sebagai contoh AppImage karena kebetulan kemarin baru saja menulis artikel bagaimana cara memasang Genymotion. Jadi, pastinya masih segar dalam ingatan.
Dokumentasi selengkapnya mengenai AppImage bisa dibaca di sini. Sementara jika Anda malas untuk membuat sendiri dan ingin langsung mencoba berkas AppImage yang sudah jadi, unduh koleksi berkas biner AppImage di repo bintray ini.
Membuat AppImage secara manual
Walau cara manual ini mungkin akan terasa memusingkan dan merepotkan, namun saya sangat menyarankan Anda untuk mencobanya agar sedikit-banyak bisa lebih memahami seluk-beluk AppImage.
-
Unduh berkas Genymotion. Untuk uraian yang terperinci, silakan baca artikel Menjalankan Aplikasi Android di Linux Menggunakan Genymotion.
-
Unduh
appimagetool
, sebuah perkakas untuk membuat berkas AppImage, dari repo AppImageKit. Sesuaikan dengan arsitektur sistem operasi yang Anda gunakan. Dicontohkan mengunduh versi 64 bit.wget -c https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage --trust-server-names -O appimagetool-x86_64.AppImage
Untuk arsitektur lain, silakan lihat di laman https://github.com/AppImage/AppImageKit/releases.
Jika telah terunduh, jadikan berkasappimagetool-x86_64.AppImage
ini executable.sudo chmod +x appimagetool-x86_64.AppImage
-
Buat sebuah folder
AppDir
, misal nama folder-nya adalahGenymotion.AppDir
.mkdir Genymotion.AppDir
-
Masuk ke dalam folder AppDir yang baru dibuat tadi.
cd Genymotion.AppDir
-
Uraikan berkas biner Genymotion hasil unduhan. Misal nama berkasnya adalah
genymotion-2.11.0-linux_x64.bin
, yang terletak di$HOME/Downloads
.yes | bash $HOME/Downloads/genymotion-2.11.0-linux_x64.bin -d opt/genymotion
-
Buat berkas desktop launcher.
nano genymotion.desktop
Dan kemudian isikan kode berikut:
[Desktop Entry] Type=Application Version=1.0 Name=Genymotion Comment=Virtual environment for Android. Exec=/opt/genymobile/genymotion/genymotion Icon=genymotion Terminal=false Categories=Development;
-
Unduh berkas
AppRun
dari repo AppImageKit.wget -c https://github.com/AppImage/AppImageKit/releases/download/continuous/AppRun-x86_64 --trust-server-names -O AppRun
-
Jadikan berkas desktop launcher dan AppRun ini executable.
sudo chmod +x genymotion.desktop AppRun
-
Salin ikon Genymotion.
cp opt/genymobile/genymotion/icons/icon.png genymotion.png
-
Buat symbolic link dari biner Genymotion ke
/usr/bin
.ln -s ../../opt/genymobile/genymotion/genymotion usr/bin/genymotion
-
Saatnya menjadikan folder
Genymotion.AppDir
ini sebuah berkas AppImage.
Berpindahlah ke direktori tempatappimagetool-x86_64.AppImage
berada.cd ..
Kemudian jalankan perintah berikut untuk membangun AppImage.
./appimagetool-x86_64.AppImage Genymotion.AppDir
Jika proses build berjalan lancar tanpa kendala, berkas AppImage yang dihasilkan akan bisa ditemukan pada direktori yang sama dengan perkakas
appimagetool-x86_64.AppImage
berada. Pada contoh kali ini, berkas yang berhasil dibangun bernamaGenymotion-x86_64.AppImage
.
Selamat! Anda telah berhasil menjadikan Genymotion portable. Emm, tidak benar-benar portable sih, karena ia memerlukan VirtualBox terpasang pada sistem.
Untuk menjalankannya, cukup jadikan ia executable dan kemudian klik ganda seperti umumnya menjalankan aplikasi GUI.
Membuat AppImage dengan bantuan skrip
Jadi, Anda telah mencoba membuat berkas AppImage secara manual dan lumayan memahami cara kerja AppImage. Namun cara manual dirasa lumayan bertele-tele dan membuang waktu jika melakukannya berulang-kali.
Jangan khawatir, menurut wiki AppImage, ada banyak cara untuk membangun AppImage. Salah satunya, yang ternyata belum ada di wiki tersebut, adalah dengan menggunakan skrip pkg2appimage
dari repo AppImages.
pkg2appimage
akan membangun berkas AppImage berdasarkan "resep" yang ditulis dalam berkas yaml.
Kita bisa mendapatkan banyak berkas resep dari dalam folder recipes repo AppImages tadi. Namun sayangnya, dalam repo tersebut tidak ada resep untuk Genymotion. Jadi, ya terpaksa kita harus menulis resepnya sendiri.
Sayangnya saya belum menemukan dokumentasi yang memadai mengenai skema penulisan berkas resep AppImage, jadi satu-satunya cara yang bisa dilakukan untuk belajar membuat berkas resep yang baru adalah dengan mengamati resep-resep yang ada di repo AppImages tadi.
Untungnya, aturan penulisan berkas resep AppImage cukup sederhana dan bisa dengan relatif mudah dipahami.
Langkah membuat AppImage Genymotion secara manual yang diterangkan pada paragraf terdahulu bisa kita buatkan resepnya seperti berikut:
app: Genymotion ingredients: script: - GENYVER='2.11.0' - wget -c "https://dl.genymotion.com/releases/genymotion-$GENYVER/genymotion-$GENYVER-linux_x64.bin" - echo $GENYVER > VERSION script: - GENYDIR='opt/genymobile' - install -d $GENYDIR - cp ../genymotion-*.bin . - yes | bash genymotion-*.bin -d $GENYDIR - cp opt/genymobile/genymotion/icons/icon.png genymotion.png - ln -s ../../opt/genymobile/genymotion/genymotion usr/bin/genymotion - cat > genymotion.desktop <<EOF - [Desktop Entry] - Type=Application - Version=1.0 - Name=Genymotion - Comment=Virtual environment for Android. - Exec=/opt/genymobile/genymotion/genymotion - Icon=genymotion - Terminal=false - Categories=Development; - EOF
Seperti bisa dilihat, susunan berkas resep tampak cukup sederhana dan relatif mudah dimengerti tanpa perlu banyak penjelasan.
- Baris app adalah untuk menyatakan nama berkas AppImage.
- Baris ingredients adalah tempat untuk mendaftar "bahan-bahan" atau source yang akan digunakan pada proses build.
- Baris script paling bawah adalah daftar perintah yang akan dijalankan
pkg2appimage
dalam proses build.
Aturan penulisan di bagian script ini sama saja halnya dengan penulisan skripbash
, yang membedakan hanyalah tiap baris mesti diawali tanda sambung (hyphen) diikuti spasi.
Untuk membuat AppImage berdasarkan resep, jalankan perintah dengan format pkg2appimage [RESEP]
. Misalnya jika resep di atas kita simpan menjadi berkas Genymotion.yml
, maka perintah untuk membangun AppImage-nya menjadi seperti berikut:
pkg2appimage Genymotion.yml
Tiada lagi yang perlu dilakukan selain menunggu hingga proses build selesai. Jika proses build berhasil, berkas biner AppImage yang dihasilkan akan bisa ditemukan di folder out
pada direktori dimana kita menjalankan skrip.
Akhir kata, jika Anda senang mencoba-coba program namun segan untuk mengotori sistem, ingin memasang program yang tidak ada dalam lumbung paket distro yang dipakai, atau ingin program yang Anda buat bisa dicicipi banyak calon user tanpa perlu membuat beragam jenis paket yang berbeda antar distro, maka AppImage bisa menjadi solusi.
Lain halnya dengan Snap atau Flatpak yang dukungannya terbatas pada distro tertentu, AppImage bisa berjalan di hampir semua distro. Ia juga tidak memiliki dependensi khusus, jadi yang diperlukan untuk menjalankan AppImage hanyalah mengunduh program yang dikemas dengan AppImage dan kemudian menjadikannya executable.
Tidak ada komentar:
Posting Komentar