启动不加载 /etc/profile
Tofloor
poster avatar
ldsink
deepin
2015-12-22 19:21
Author
RT,因为软件需要配置JDK,以往一直是在 /etc.profile 里面配置的,beta 弄好之后重启发现没有用。source /etc/profile 之后在终端内有效,判断应该是系统没有加载。
在个人目录下 ~/.profile 配置好,同样得自己 source。
是不是 DDE user session 不加载这个文件?

我用的shell从bash换成了zsh,应该不影响这个。

Reply Favorite View the author
All Replies
136******54
deepin
2015-12-22 21:56
#1
放在.zshrc里
Reply View the author
cxbii
deepin
2015-12-23 19:02
#2
15版本会恢复为bash
Reply View the author
Feng Yu
deepin
2015-12-23 19:18
#3
本帖最后由 abcfy2 于 2015-12-23 11:20 编辑

不要被误导,/etc/profile不是每次都会被加载。
请参考配置文件的加载次序: https://shreevatsa.wordpress.com ... r-bashrc-zshrc-etc/
注意某些情况下使用的shell是不加载这个文件的。写到~/.bashrc | ~/.zshrc是都会被加载到的
Reply View the author
ldsink
deepin
2015-12-24 00:15
#4
https://bbs.deepin.org/post/34402
不要被误导,/etc/profile不是每次都会被加载。
请参考配置文件的加载次序: https://shreevatsa.wordpress. ...

这些回复的只有运维靠谱,谢谢了。我之前还真不清楚不同情况下的加载顺序。

在 Deepin RC 下`/etc/zsh/zshenv`配置java环境,在终端中使用`java -version`的确OK了。

但是我用的PyCharm依然不能直接打开,提示缺少java环境,看启动的sh文件,使用的是 /bin/sh,这个是软链到 dash 上的,我直接链到 zsh,好像也是不行。

现在要启动 PyCharm,得自己把 jre文件夹弄到PyCharm目录。

请问 dash 端的配置文件又应该在哪里改呢?
Reply View the author
Feng Yu
deepin
2015-12-24 05:03
#5
本帖最后由 abcfy2 于 2015-12-23 21:06 编辑
https://bbs.deepin.org/post/34402
这些回复的只有运维靠谱,谢谢了。我之前还真不清楚不同情况下的加载顺序。

在 Deepin RC 下`/etc/zsh/z ...

pycharm是在当前shell下运行的,所以会继承当前shell下的环境变量。
java -version可以执行只是说明java命令在$PATH的路径中。
但是JAVA_HOME这个变量并非JAVA设置的,而是需要自己手工定义。

所以你需要在~/.zshrc中定义一个环境变量就行了。

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
EDIT: 怀疑你的JAVA_HOME环境变量是不是没加export?如果没加的话加上就行了。
export的作用是把变量输出称为全局变量。会在子进程中依旧有效,不加export只在当前shell有效,子进程无效。

pycharm的启动程序是一个shell脚本,等于你在当前shell下面开了一个子进程,如果没有export JAVA_HOME的话,那么子进程会看不到这个变量,于是告诉你JAVA_HOME不存在,我找不到java在哪。
Reply View the author
ldsink
deepin
2015-12-24 18:04
#6
https://bbs.deepin.org/post/34402
pycharm是在当前shell下运行的,所以会继承当前shell下的环境变量。
java -version可以执行只是说明java命 ...

不是这个原因,pycharm 并不是在当前shell下运行的。
我前面说了,我是在 /etc/zsh/zshenv 配置的,这个比起 .zshrc,对本机的全部用户都有效。

zsh里面有 java环境。直接在 shell 里面执行对应的 ./pycharm.sh 也是OK的。

但是我直接点Pycharm创建的桌面图标,这个依旧会提示缺少JDK环境。





Reply View the author
Feng Yu
deepin
2015-12-24 18:25
#7
本帖最后由 abcfy2 于 2015-12-24 10:31 编辑
https://bbs.deepin.org/post/34402
不是这个原因,pycharm 并不是在当前shell下运行的。
我前面说了,我是在 /etc/zsh/zshenv 配置的,这个 ...

桌面上的图标其实是.desktop文件,cat一下那个文件,看看是怎么执行的?—— 我的猜测,这个快捷方式调用的是其他shell执行的,而不是zsh。所以你在Z-shell定义的环境变量对这个没用。
另外,CLASSPATH这个变量不再需要自己定义,也不应该手工定义,从JDK5以后的版本都不需要了,java启动的时候会默认加进来,乱改反而会影响程序工作。你看的肯定是旧资料,新的资料早就说过不需要加这个变量了。

最后,没必要对全部用户都有效,个人PC基本只有一个用户。以前我也喜欢动用root权限去改/etc/下的文件,现在我只喜欢改~/的配置文件,因为我的/home一般是单独挂载的,重装系统之后我不需要再重配环境。

我在linuxmint17下也装过idea intellij和pycharm,用的也是zshell,我是用ubuntu ppa: ppa:webupd8team/java 安装的,会处理好链接问题。没遇到这种情况
Reply View the author