bta*_*alb 13 unity launcher environment-variables 12.10 .desktop
我正在创建.desktop用于 Unity Launcher 的文件。
我在我的主目录中有我自己的位置,我将我的可执行文件 ( ~/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/
Run Code Online (Sandbox Code Playgroud)
这导致我的PATH变量如下:
ben@ben-HPdv6:~$ 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/
Run Code Online (Sandbox Code Playgroud)
我知道它被附加了两次,但是.pam_environment无论使用我引用的 Ubuntu 文档中推荐的正确语法,文件中的任何内容似乎都被添加了两次。
这是问题的一个示例(所有情况都会发生)。我有一个运行 Eclipse IDE的脚本(称为eclipse)~/usr/bin/。
我可以打开任何终端并简单地输入eclipse,它运行得很好,就像你期望的那样。
但是当使用以下.desktop文件时:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Eclipse - Juno (4.2)
Icon=/home/ben/.icons/eclipse.svg
Exec=eclipse
Run Code Online (Sandbox Code Playgroud)
我收到错误:

但是当我将Exec=行更改为:
Exec=/home/ben/usr/bin/eclipse
Run Code Online (Sandbox Code Playgroud)
它完美地工作。
在正式统一启动程序和桌面文件的文件表明,这应该工作:
Exec 是可执行文件的路径。只有当它不在 $PATH 变量中指定的任何路径中时,才必须使用可执行文件的完整路径。例如,路径 /usr/bin 内的任何文件不需要在 Exec 字段中指定其完整路径,而只需指定其文件名。
关于发生了什么的任何建议?
波浪号不会像.pam_environment在配置文件脚本中那样扩展,并且桌面文件不会像 shell 那样在它们的Exec行上进行 shell 扩展,所以它正在寻找一个字面上命名的文件~/usr/bin/eclipse,这当然不会'存在。
用 ${HOME} 替换 PATH 分配中的波浪号,它似乎有效。
| 归档时间: |
|
| 查看次数: |
2136 次 |
| 最近记录: |