yum与anaconda3冲突问题
问题描述
出错系统:centos7
python环境:使用anacoda3安装的python3.7
问题描述(本问题适用于使用anaocoda3安装的python3):
yum不能使用,会产生以下错误
问题一:
/root/anaconda3/lib/liblzma.so.5: version `XZ_5.1.2alpha’ not found (required by /lib64/librpmio.so.3)
解决后肯定会出现问题二:
/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks
解决方案
-
解决问题一:
-
-
确定是否存在XZ:
-
- XZ -V # 获得版本号,若没有则进行安装,自行百度。
-
安装完成后,进入anaconda3/lib目录:
-
- 查看anaconda3位置:whereis anaconda3
- 进入目录:cd anaconda3/lib
-
建立软连接:
-
- ln -s -f liblzma.so.5.x.x liblzma.so.5
- 此时若yum无问题一,则不需要进行下一步
- 下一步: rm -rf liblzma.so.5.x.x
-
-
解决问题二:
在完成问题一后还有问题会出现,可以推断为,问题一的解决方法不能解决根本问题。
以下根本问题的解决。
-
-
一条命令可以使yum马上好起来:
-
- export LD_LIBRARY_PATH=/lib:/lib64:/usr/lib64/:/usr/lib:/root/anaconda3/lib:$LD_LIBRARY_PATH
- 以上路径请自行匹配自己的环境
-
当然这只是一次性的,经过反复尝试终于找到问题的根源
-
- 在安装anaconda时,使用自动创建的环境变量的名称和该命令中的环境变量名称冲突
- 且配置的环境变量存放在~/.bach_profile中,自动配置的环境变量中只包含了/root/anaconda3/lib,即安装的anaconda的lib。
- 只需在前面加上/lib:/lib64:/usr/lib64/:/usr/lib:
- 保存后,使用 source ~/.bach_profile
-
Yum 最终被你制服了
-
排错回顾(含linux环境变量知识补充)
问题一的解决根据网上查找的资料很容易解决,到了问题二也很容易找到一条命令就好起来的方法,但重启远程连接后yum命令还是失效。
export 命令是对环境变量的操作,首先得理解到这一点。
然后尝试直接在环境变量相关的文件中进行写入
并生效(source/重进),此时还不理解环境变量文件的区别和加载顺序。
linux中通常由以下几个环境变量的配置:
-
直接使用export 命令,只对当前的shell(bash)有效,且临时的。
-
系统环境变量
- /etc/proflie:
- 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
- /etc/bash.bashrc
- 它也是全局(公有)的 bash执行时,不管是何种方式,都会读取此文件。
- /etc/environment
- 不要轻易修改此文件
- /etc/proflie:
-
用户环境变量
- ~/.profile:
- 若bash是以login方式执行时,读取/.bash_profile,若它不存在,则读取/.bash_login,若前两者不存在,读取~/.profile。
- ~/.bash_profile:
- 若bash是以login方式执行时,读取/.bash_profile,若它不存,则读取/.bash_login,若前两者不存在,读取 ~/.profile。
- 只有bash是以login形式执行时,才会读取.bash_profile,Unbutu默认没有此文件,可新建。 通常该配置文件还会配置成去读取~/.bashrc。
- ~/.bashrc
- 当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。
- ~/.bash_profile是交互式、login 方式进入 bash 运行的
- ~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
- ~/.profile:
-
加载顺序:
全局环境变量设置文件:
/etc/profile、/etc/bashrc。
用户环境变量设置文件:~/.bash_profile、~/.bashrc。
- /etc/profile
- ~/.bash_profile
- ~/.bashrc
- /etc/bashrc
由此可以理清排查顺序,最终找到命令失效的原因
环境变量的名称失效
转:https://blog.csdn.net/yifen4234/article/details/80691434