我已经在我的 Solaris 11 机器上安装了 JDK 和 Groovy。我现在想设置一些东西,以便每当我打开 shell 时 PATH 变量都会包含 bin 目录。
我的理解是在/etc/profile
文件末尾添加的以下几行应该可以解决问题。
JAVA_HOME=/usr/jdk/instances/jdk1.7.0
PATH=${PATH}:${JAVA_HOME}/bin
GROOVY_HOME=/usr/local/bin/groovy-2.1.3
PATH=${PATH}:${GROOVY_HOME}/bin
export PATH
Run Code Online (Sandbox Code Playgroud)
但是,当我重新启动我的腻子会话时,只有 JAVA_HOME 和 GROOVY_HOME 变量受到影响。PATH 变量保持不变,例如
/usr/bin:/usr/sbin
Run Code Online (Sandbox Code Playgroud)
我想知道是否有另一个脚本在 /etc/profile 之后运行,它可能会覆盖 PATH 变量。但我不知道在哪里看。
还是有其他问题?
正如评论中提出的那样,我尝试使用以下几行,但不幸的是效果相同。
JAVA_HOME=/usr/jdk/instances/jdk1.7.0
GROOVY_HOME=/usr/local/bin/groovy-2.1.3
export PATH=${PATH}:${GROOVY_HOME}/bin:${JAVA_HOME}/bin
Run Code Online (Sandbox Code Playgroud)
检查/etc/default/login
登录外壳。您可以在那里强制使用初始路径。
将变量添加到 /etc/profile 应该会起作用,具体取决于运行的 Solaris 版本。对于 Solaris,一种更便携的方法是将 PATH 变量的设置和导出分开。
JAVA_HOME=/usr/jdk/instances/jdk1.7.0
GROOVY_HOME=/usr/local/bin/groovy-2.1.3
PATH=${PATH}:${GROOVY_HOME}/bin:${JAVA_HOME}/bin
export PATH
Run Code Online (Sandbox Code Playgroud)
Solaris 11,其中bash
的默认 shell 可以在您的配置文件中正常工作,但较旧的 Solaris 版本可能无法export PATH=...
按预期解析语法,或者根本无法解析语法。
另外,请记住,您只是在更改用户的初始 PATH。 /etc/profile
在读取用户之前.profile
读取。
默认情况下,Solaris 用户通常最终会得到他们自己的.profile
包含默认 PATH的文件。
solaris:~$ grep PATH .*
.profile:export PATH=/usr/bin:/usr/sbin
Run Code Online (Sandbox Code Playgroud)
由于此 .profile 在您修改之后被读入,因此/etc/profile
您对 的更改$PATH
将被丢弃并且用户的条目将接管。
您可以通过编辑文件为新用户添加这些更改/etc/skel/.profile
,但要使现有用户的更改永久生效,您需要编辑他们的个人 .profiles,如果他们自己没有编辑过,则需要覆盖它们。
归档时间: |
|
查看次数: |
35841 次 |
最近记录: |