GNU/Linux >> Belajar Linux >  >> Ubuntu

File Desktop Sepertinya Tidak Menggunakan $path dengan Benar?

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.


Ubuntu
  1. Bagaimana Cara Benar Menambahkan Path To Path?

  2. Bagaimana Cara Menambahkan Ke $path dengan Bersih?

  3. Folder Dan File Desktop Hilang?

  1. Tambahkan Sesi Kustom Baru?

  2. Bagaimana Cara Menyalin File Dari Anggur Ke Desktop?

  3. Gunakan perangkat melalui SSH?

  1. Dijelaskan:Versi Ubuntu Mana yang Harus Saya Gunakan?

  2. Cara Menggunakan Disk Top Server Ubuntu

  3. Penggunaan / saat menggunakan cd