Saya membuat .desktop
file untuk digunakan di Unity Launcher.
Saya memiliki lokasi sendiri di direktori home tempat saya meletakkan file yang dapat dieksekusi (~/usr/bin/
) yang ditambahkan dengan benar ke PATH
saya variabel lingkungan di .pam_environment
saya file seperti yang ditentukan dalam dokumentasi Ubuntu yang relevan.
Ini adalah isi dari .pam_environment
saya berkas:
LANGUAGE=en_AU:en_GB:en
LANG=en_AU.UTF-8
LC_NUMERIC=en_AU.UTF-8
LC_TIME=en_AU.UTF-8
LC_MONETARY=en_AU.UTF-8
LC_PAPER=en_AU.UTF-8
LC_NAME=en_AU.UTF-8
LC_ADDRESS=en_AU.UTF-8
LC_TELEPHONE=en_AU.UTF-8
LC_MEASUREMENT=en_AU.UTF-8
LC_IDENTIFICATION=en_AU.UTF-8
PATH DEFAULT=${PATH}:~/usr/bin/
Yang menghasilkan PATH
saya variabelnya sebagai berikut:
[email protected]:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:~/usr/bin/:~/usr/bin/
Saya tahu ini ditambahkan dua kali, tetapi apa pun di .pam_environment
file tampaknya ditambahkan dua kali tidak peduli apa ketika menggunakan sintaks yang benar yang direkomendasikan dalam Dokumentasi Ubuntu yang telah saya referensikan.
Ini adalah salah satu contoh masalah (ini terjadi pada semua kasus). Saya memiliki skrip (disebut eclipse
) di ~/usr/bin/
yang menjalankan Eclipse IDE.
Saya dapat membuka terminal apa saja dan cukup ketik eclipse
dan berjalan dengan baik seperti yang Anda harapkan.
Tetapi saat menggunakan .desktop
berikut ini berkas:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Eclipse - Juno (4.2)
Icon=//eadn-wc01-5196795.nxedge.io/home/ben/.icons/eclipse.svg
Exec=eclipse
Saya mendapatkan kesalahan:
Tetapi ketika saya mengubah Exec=
baris ke:
Exec=/home/ben/usr/bin/eclipse
itu bekerja dengan sempurna.
Dokumentasi Peluncur Persatuan Resmi dan file Desktop menyarankan bahwa ini harus berfungsi:
Exec adalah jalur ke file yang dapat dieksekusi. Path lengkap ke file yang dapat dieksekusi harus digunakan hanya jika tidak ada di salah satu path yang ditentukan dalam variabel $PATH. Misalnya, file apa pun yang berada di dalam jalur /usr/bin tidak perlu menentukan jalur lengkapnya di bidang Exec, tetapi hanya nama filenya.
Ada saran tentang apa yang terjadi?
Jawaban yang Diterima:
Tilde tidak diperluas di .pam_environment
seperti yang terjadi pada skrip profil, dan file desktop tidak melakukan ekspansi shell pada Exec
mereka baris seperti shell, jadi mencari file yang secara harfiah bernama ~/usr/bin/eclipse
, yang tentu saja tidak ada.
Ganti tilde dalam tugas PATH dengan ${HOME} dan tampaknya berhasil.