Bila anda mendapati error
$ ./standard-notes-3.6.8-linux-x86_64.AppImage A JavaScript error occurred in the main process Uncaught Exception: Error: /tmp/.org.chromium.Chromium.pMekKh: failed to map segment from shared object at process.func [as dlopen] (electron/js2c/asar.js:140:31) at Object.Module._extensions..node (internal/modules/cjs/loader.js:1034:18) at Object.func [as .node] (electron/js2c/asar.js:149:18) at Module.load (internal/modules/cjs/loader.js:815:32) at Module._load (internal/modules/cjs/loader.js:727:14) at Function.Module._load (electron/js2c/asar.js:769:28) at Module.require (internal/modules/cjs/loader.js:852:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (/tmp/.mount_standaO2Elbb/resources/app.asar/node_modules/keytar/lib/keytar.js:1:14) at Module._compile (internal/modules/cjs/loader.js:967:30)
bila dilihat baris Error: /tmp/.org.chromium.Chromium.pMekKh: failed to map segment from shared object aplikasi electron yang dijalankan mau menjalankan proses di /tmp
yang merupakan temporary folder (Tong sampah) di Linux.
Cek seperti apa folder /tmp
tersebut di mount
grep tmp /etc/fstab
dari output diatas, kita ketahui /tmp di mount dengan rw,noexec,nosuid
. noexec
disini untuk membatasi folder /tmp
tidak bisa digunakan untuk menjalankan script, karena biasanya script kiddies menjalankan script dari sini.
Solusi failed to map segment from shared object
Setelah kita ketahui permasalahannya, saatnya untuk menjalankan solusinya. Linux memiliki variable TMPDIR yang bisa digunakan untuk menggantikan folder temporary, buat terlebih dahulu folder tersebut di tempat yang bisa menjalankan proses execute, read dan write. Contohnya di home directory anda
# buat folder tmp mkdir ~/tmp TMPDIR=~/tmp
karena variable ini masih bersifat sementara, jadi bisa dijalankan dengan dua format
# langsung di shell tempat anda menjalankan # TMPDIR=~/tmp ./standard-notes-3.6.8-linux-x86_64.AppImage # dengan menambahkan variable TMPDIR TMPDIR=~/tmp ./standard-notes-3.6.8-linux-x86_64.AppImage
output aplikasi tersebut berjalan
> TMPDIR=~/tmp ./standard-notes-3.6.8-linux-x86_64.AppImage extServer: Server started at http://127.0.0.1:45653/ 12:16:48.066 › Checking for update 12:16:48.152 › Generated new staging user ID: 6d4eebad-c920-5012-9538-cb25f85e8ab0 12:16:48.898 › Checking for update (already in progress) 12:16:49.080 › Found version 3.6.9 (url: standard-notes-3.6.9-linux-x86_64.AppImage) BackupsManager: Data backup successfully saved: 2021-05-13T05-16-49.847Z.txt PackageManager: received sync event for: Extensions (undefined) (deleted: undefined) PackageManager: received sync event for: Batch Manager (undefined) (deleted: undefined) PackageManager: received sync event for: Extensions (undefined) (deleted: undefined), Batch Manager (undefined) (deleted: undefined) PackageManager: received sync event for: Extensions (undefined) (deleted: undefined), Batch Manager (undefined) (deleted: undefined) BackupsManager: Data backup successfully saved: 2021-05-13T05-17-21.886Z.txt
Agar variable TMPDIR tersebut permanent, tambahkan kedalam ~/.bashrc
echo "export TMPDIR=~/tmp" >> ~/.bashrc
lalu reload bashrc
source ~/.bashrc