[Boot/Shutdown] 不加载~/.profile的问题到底怎么回事?
Tofloor
poster avatar
loaden
deepin
2021-01-10 20:25
Author

问题:~/.profile 文件默认不加载,无论UOS还是Deepin,这是不对的,开发人员能不能解释下,这是BUG,还是特意如此?

相关知识:https://wiki.archlinux.org/index.php/Bash_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

Reply Favorite View the author
All Replies
1 / 2
To page
neko
deepin
Ecological co-builder
Q&A Team
2021-01-10 20:29
#1

  wiki上写的不是很清楚吗,建议补习非登录模式与登录模式

Reply View the author
loaden
deepin
2021-01-10 21:18
#2
neko

  wiki上写的不是很清楚吗,建议补习非登录模式与登录模式

为什么Debian/Ubuntu/Mint都会在GNOME和KDE的图形界面下加载.profile

难道他们用的是登陆shell模式?而DDE用的是非登陆shell模式?

Reply View the author
loaden
deepin
2021-01-10 21:30
#3

这个帖子把这个问题介绍的很详细:https://bbs.deepin.org/post/202021

但我想问的是:什么Debian/Ubuntu/Mint都会在GNOME和KDE的图形界面下加载.profile

Debian/Ubuntu/Mint能解决好这个问题,为什么Deepin不和它们保持一致性?

Reply View the author
loaden
deepin
2021-01-10 21:32
#4

现在我被迫这样解决:

Reply View the author
loaden
deepin
2021-01-10 21:39
#5

这个帖子的 6 楼介绍了一种解决办法,不过我还没试:https://bbs.deepin.org/post/207119

这是介绍登陆shell和非登陆shell模式区别的:https://linux.vbird.org/linux_basic/centos7/0320bash.php#settings_bashrc

Reply View the author
loaden
deepin
2021-01-10 21:50
#6
loaden

这个帖子的 6 楼介绍了一种解决办法,不过我还没试:https://bbs.deepin.org/post/207119

这是介绍登陆shell和非登陆shell模式区别的:https://linux.vbird.org/linux_basic/centos7/0320bash.php#settings_bashrc

测试证明在UOS个人版1030有效:

ln -s ~/.profile ~/.xsessionrc

Reply View the author
Feng Yu
deepin
2021-01-10 22:31
#7

谁告诉你的改profile你去锤谁去,我已经懒得在这个问题上废口水了,说过太多遍了。

 

建议详读英文文档,尤其是bash官方的文档,你就全明白了

Reply View the author
loaden
deepin
2021-01-10 23:04
#8
Feng Yu

谁告诉你的改profile你去锤谁去,我已经懒得在这个问题上废口水了,说过太多遍了。

 

建议详读英文文档,尤其是bash官方的文档,你就全明白了

好的,我明白你说的DDE是不登陆shell模式,但请能解释下为什么Debian和Ubuntu以及Mint的GNOME,KDE图形桌面环境,登录后都加载~/.profile吗?

Reply View the author
MarioAi
deepin
2021-01-11 00:22
#9

我把当前用户环境变量配置写到了 .bashrc 里面,每次自动写就行

环境变量配置

Reply View the author
北冥夜未央
deepin
Ecological co-builder
2021-01-11 00:46
#10

好像很早就这样了,一开始换deepin确实不习惯

Reply View the author
Feng Yu
deepin
2021-01-11 01:22
#11
loaden

好的,我明白你说的DDE是不登陆shell模式,但请能解释下为什么Debian和Ubuntu以及Mint的GNOME,KDE图形桌面环境,登录后都加载~/.profile吗?

谁说的?Ubuntu我用过快10年,做Ubuntu Server的运维都七八年了,从12.04运维做到20.04,Ubuntu全版本几乎都接触过很深,明着告诉你系统启动登录之后(无论ssh还是tty login),这里都是以非登录交互式模式加载的,就是不会加载profile,而当时国内千篇一律都是互相抄改profile,我当年还好奇过,专门去阅读过官方英文文档,做了好多DEBUG最终定位到问题的,所以我才敢这么硬气的说这句话。

 

有些Ubuntu的魔改版本确实会在~/.bashrc加一行source profile之类的,在我看来完全没必要,反而破坏了原来这些文件设计的意义,完全就是讨好各种半吊子的人的搞法,不值一提

Reply View the author
loaden
deepin
2021-01-11 02:20
#12
Feng Yu

谁说的?Ubuntu我用过快10年,做Ubuntu Server的运维都七八年了,从12.04运维做到20.04,Ubuntu全版本几乎都接触过很深,明着告诉你系统启动登录之后(无论ssh还是tty login),这里都是以非登录交互式模式加载的,就是不会加载profile,而当时国内千篇一律都是互相抄改profile,我当年还好奇过,专门去阅读过官方英文文档,做了好多DEBUG最终定位到问题的,所以我才敢这么硬气的说这句话。

 

有些Ubuntu的魔改版本确实会在~/.bashrc加一行source profile之类的,在我看来完全没必要,反而破坏了原来这些文件设计的意义,完全就是讨好各种半吊子的人的搞法,不值一提

我也在用Debian和Ubuntu,我确定官方版本默认登陆桌面后,就是加载~/.profile的。

你看看这个帖子的 4 楼回复:https://bbs.deepin.org/post/202021

Reply View the author
Feng Yu
deepin
2021-01-11 03:04
#13
loaden

我也在用Debian和Ubuntu,我确定官方版本默认登陆桌面后,就是加载~/.profile的。

你看看这个帖子的 4 楼回复:https://bbs.deepin.org/post/202021

不加载,已经不知道在贴吧和论坛见过N万遍有人问为什么照着CSDN的文章去改/etc/profile的JAVA_HOME环境变量后不生效,必须重启系统才有用。

甚至在deepin论坛这种帖子漫天都是,你去搜搜JAVA_HOME就知道了

Reply View the author
Feng Yu
deepin
2021-01-11 03:05
#14
loaden

我也在用Debian和Ubuntu,我确定官方版本默认登陆桌面后,就是加载~/.profile的。

你看看这个帖子的 4 楼回复:https://bbs.deepin.org/post/202021

也不跟你扯这种没用的东西了。就一个结论,改profile是错误的姿势,over,没了,别扯有的没的了,不是BUG,也不是有意为之,而是就是这样,结束,继续码代码去

Reply View the author
loaden
deepin
2021-01-11 04:39
#15
Feng Yu

也不跟你扯这种没用的东西了。就一个结论,改profile是错误的姿势,over,没了,别扯有的没的了,不是BUG,也不是有意为之,而是就是这样,结束,继续码代码去

明天我分别在Ubuntu,Debian, Arch, Fedora系统下测试后再回复你。

只希望如果我测试这些系统登陆图形界面时,是加载 ~/.profile 的时候,还请你能解释一下为什么。我记忆中,似乎Arch不一样,有区别,Arch默认加载的好像是 ~/.bash_profile

Reply View the author
loaden
deepin
2021-01-11 17:47
#16
Feng Yu

也不跟你扯这种没用的东西了。就一个结论,改profile是错误的姿势,over,没了,别扯有的没的了,不是BUG,也不是有意为之,而是就是这样,结束,继续码代码去

经过我详细的测试,可以确定:Ubuntu 20.04,Debian 10.6,Arch登陆KDE Plasma桌面时,都优先加载 .bash_profile,当.bash_profile不存在时,则加载 .profile 。

可以确定:Fedora 32 登陆GNOME桌面时,优先加载 .bash_profile,当.bash_profile不存在时,则加载 .profile 。

Fedora GNOME桌面不加载 .xsessionrc,Ubuntu 20.04,Debian 10.6,Arch登陆KDE Plasma桌面时都加载 .xsessionrc 。

以上测试都在物理机安装系统的前提下测试,非虚拟机。

所以,能否请你解释一下为什么会这样?

Reply View the author
SamLukeYes
deepin
2021-01-11 17:51
#17
loaden

经过我详细的测试,可以确定:Ubuntu 20.04,Debian 10.6,Arch登陆KDE Plasma桌面时,都优先加载 .bash_profile,当.bash_profile不存在时,则加载 .profile 。

可以确定:Fedora 32 登陆GNOME桌面时,优先加载 .bash_profile,当.bash_profile不存在时,则加载 .profile 。

Fedora GNOME桌面不加载 .xsessionrc,Ubuntu 20.04,Debian 10.6,Arch登陆KDE Plasma桌面时都加载 .xsessionrc 。

以上测试都在物理机安装系统的前提下测试,非虚拟机。

所以,能否请你解释一下为什么会这样?

xsession 那个是因为 gnome 默认用 wayland 吧

Reply View the author
loaden
deepin
2021-01-11 17:55
#18

所以,目前在所有系统和桌面环境下,比较理想的一种做法可以通过软链接和条件判断结合来解决。

通过命令添加软链接:ln -s .bash_profile .xsessionrc

然后添加条件判断(可能需要根据用户需求修改):

Reply View the author
loaden
deepin
2021-01-11 17:56
#19
SamLukeYes

xsession 那个是因为 gnome 默认用 wayland 吧

很有可能,这个我真没注意。

Reply View the author
loaden
deepin
2021-01-11 18:03
#20

呼叫一下曾经关注这个问题的几个坛友:@lotuso @senluo @vigilans @tkx_freeman @老子最萌 

Reply View the author
1 / 2
To page