我正在运行 Ubuntu 12.04.2 LTS,但在执行命令时遇到了问题。我在 /etc/environment 中设置了变量,如下所示:
FEDORA_HOME="/var/lib/fedora"
CATALINA_HOME="/var/lib/tomcat6"
ORACLE_HOME="/usr/lib/oracle/11.2/client64"
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m - Djavax.net.ssl.trustStore=/usr/local/fedora/truststore -Djavax.net.ssl.trustStorePassword=tomcat"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$FEDORA_HOME/server:$FEDORA_HOME/client/bin:$ORACLE_HOME:$ORACLE_HOME/bin"
问题出在 PATH 变量中的 $ORACLE_HOME 上。我可以使用以下命令 cd 到正确的目录:
cd $ORACLE_HOME/bin
但是当我尝试运行 sqlplus(我遇到问题的程序)时,系统找不到它。在有人问之前,是的,我已经重新启动了系统,文件 sqlplus 确实存在于 $ORACLE_HOME/bin 中,并且每个人都可以执行。
这应该可行,但显然不行。有人知道问题可能出在哪里吗?虽然它显然存在,但好像它不存在于路径中。我搞不懂。请帮忙!
谢谢
答案1
这Ubuntu 文档假设环境文件不是脚本文件,因此它可能无法$ORACLE_HOME
按照您希望的方式解释变量。运行env
以查看您的路径是什么样的。如果它不是您期望的,请尝试硬编码完整路径/etc/environment
,看看是否有帮助。
答案2
可能有两个原因:
1)未设置$PATH 2) PATH 中先前
存在冲突。sqlplus
为了确保路径已设置,请echo $PATH
从控制台运行。它应该/usr/lib/oracle/11.2/client64
在其他路径中打印。
我还建议将其放在$ORACLE_HOME:$ORACLE_HOME/bin
其他路径之前。
如果没有任何效果,请确保sqlplus
直接可运行:
cd /usr/lib/oracle/11.2/client64
./sqlplus
也许它是一个指向不存在的 shell 的脚本?