[Share Experiences] 分享几例 Linux 环境变量故障的解决
Tofloor
poster avatar
littlebat
deepin
2022-11-21 18:38
Author

(首发地址:学习日记 https://www.learndiary.com/2022/11/linux-env-var/ )

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。今天分享几例 Linux 环境变量造成的系统故障及解决,有些是针对初学都比较常见的问题,而有的问题却非常隐蔽,可能会让不少老司机也要翻车。视频演示地址: https://www.bilibili.com/video/BV1K84y1C7Hu/?share_source=copy_web&vd_source=d1925b070926f23b2b6676137251e9ea

一、问题示例(视频中列举实例)

1、PATH 环境变量
PATH 环境变量是用于搜索可执行文件的路径,没有定义的则只能使用绝对路径或相对路径执行。如:/path/to/exefile,或者:./path_party/exefile、path_party/exefile、./exefile。参见:Linux path 环境变量设置 https://www.myfreax.com/how-to-add-directory-to-path-in-linux/

2、LD_LIBRARY_PATH 环境变量
LD_LIBRARY_PATH 环境变量是用于指定程序查找动态链接库时除了默认路径之外的其他路径。如果没有定义这个环境变量,则程序除了在编译时指定的路径外,只在系统默认的路径/lib、/usr/lib 和 /etc/ld.so.conf 定义的路径中查找动态链接库。参见:Linux 指定动态库搜索路径五种方法及优先级 https://www.jianshu.com/p/0de77454f105

3、PYTHONPATH 环境变量
PYTHONPATH 环境变量是用于除了当前目录和 python 默认安装目录之外,查找指定模块的其它目录。
参见:Python导入模块的3种方式(超级详细)http://c.biancheng.net/view/4645.html

4、PERL5LIB 环境变量
PERL5LIB 环境变量是用于除了默认的 PERL 模块搜索路径之外,手工指定的其它路径。参见:Perl学习10&11之perl模块安装详解 https://zhuanlan.zhihu.com/p/161728028

5、DISPLAY 环境变量
DISPLAY 环境变量用来设置将图形显示到何处。通常,直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0.0 。
参见:DISPLAY环境变量的作用 https://zhuanlan.zhihu.com/p/93165237

二、Linux 环境变量的设置方式
Linux 的环境变量一般有下面3种设置方式。分别是命令行临时环境变量、全局环境变量、用户环境变量。参见:Linux配置环境变量的三种方法 https://blog.csdn.net/qq_15807167/article/details/71106708

环境变量的设置用命令 export,如设置 PATH 环境变量即为:export PATH=/opt/myprog/bin:$PATH
命令行临时环境变量则直接在命令行中输入上述命令,全局环境变量一般在 /etc/profile 中写入上述命令,用户环境变量则一般可以写入家目录下的 .bashrc 文件中。

关于持久性的环境变量的配置,尤其是用户环境变量的配置文件,实际上是有争议的。理论上来说,用户环境变量根据发行版的区别,最适合的配置文件实际上是家目录下的 .bash_profile 或者 .profile 。但在实际应用中,大部分都是选择在 .bashrc 中,比如我碰到的一些著名软件,如 Conda、Perl 。参见: 关于“.bash_profile”和“.bashrc”区别的总结 https://blog.csdn.net/sch0120/article/details/70256318

系统中设置的相应环境变量可以用如:echo $PATH 查看 PATH 环境变量,env 查看全部环境变量,unset LD_LIBRARY_PATH 删除 LD_LIBRARY_PATH 环境变量。

三、小结
环境变量是支撑程序运行的重要环节之一,如果在 Linux 程序运行中碰到一些莫名其妙的问题,不妨查查环境变量。毕竟,一个 env 命令就能查看,就算与此无关也没什么损失,不是么?

四、其它参考链接
Linux系统conda虚拟环境添加环境变量 https://blog.csdn.net/u014611178/article/details/107833929

Reply Favorite View the author
All Replies
sammy-621
deepin
2022-11-21 19:21
#1

kissing_heart

Reply View the author
xuqi
deepin testing team
2022-11-21 22:35
#2

like

Reply View the author
kingskill
deepin
2022-11-22 00:11
#3

收藏收藏。kissing_heart

Reply View the author
晚秋(lateautumn)
Moderator
2022-11-22 17:21
#4

谢谢分享kissing_heart

Reply View the author