.desktop
を作成しています UnityLauncherで使用するファイル。
実行可能ファイル(~/usr/bin/
)を置くホームディレクトリに自分の場所があります )これは私のPATH
に正しく追加されています .pam_environment
の環境変数 関連するUbuntuドキュメントで指定されているファイル。
これは私の.pam_environment
の内容です ファイル:
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/
その結果、私のPATH
変数は次のとおりです:
[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/
2回追加されていることは知っていますが、.pam_environment
にあるものはすべて 私が参照したUbuntuドキュメントで推奨されている正しい構文を使用すると、ファイルが2回追加されるようです。
これは問題の一例です(すべての場合に発生します)。スクリプト(eclipse
と呼ばれます)があります )~/usr/bin/
内 EclipseIDEを実行します。
任意の端末を開いて、eclipse
と入力するだけです。 期待どおりに正常に動作します。
ただし、次の.desktop
を使用する場合 ファイル:
#!/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
エラーが発生します:
しかし、Exec=
を変更すると 行先:
Exec=/home/ben/usr/bin/eclipse
完璧に機能します。
Unity Launchersとデスクトップファイルの公式ドキュメントは、これが機能することを示唆しています:
Execは、実行可能ファイルへのパスです。実行可能ファイルへのフルパスは、$PATH変数で指定されたパスのいずれにも含まれていない場合にのみ使用する必要があります。たとえば、パス/ usr / bin内にあるファイルは、Execフィールドでフルパスを指定する必要はなく、ファイル名のみを指定する必要があります。
何が起こっているかについて何か提案はありますか?
承認された回答:
チルダは.pam_environment
では展開されません プロファイルスクリプトの場合と同じように、デスクトップファイルはExec
でシェル拡張を実行しません シェルと同じように行を表示するため、文字通り~/usr/bin/eclipse
という名前のファイルを探します。 、もちろん存在しません。
PATH割り当てのチルダを${HOME}に置き換えると、機能しているようです。