GNU/Linux >> Linux の 問題 >  >> Ubuntu

デスクトップファイルは$pathを正しく使用していないようですか?

.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}に置き換えると、機能しているようです。


Ubuntu
  1. パスをパスに正しく追加する方法は?

  2. 新しいカスタムセッションを追加しますか?

  3. デスクトップフォルダとファイルが消えましたか?

  1. Wineからデスクトップにファイルをコピーする方法は?

  2. Ubuntu Server ディスクトップの使い方

  3. SSH 経由でデバイスを使用しますか?

  1. 説明:どのUbuntuバージョンを使用する必要がありますか?

  2. $ pathにきれいに追加する方法は?

  3. cd 使用時の / の使用