如何安装2个版本的linux,[Linux安装2个版本的Python与问题总结]2018-10-13

需求

CentOS release 6下自带Python2.6,因为需要Python2.7;又不想覆盖2.6,故不用yum安装,用源码安装。

安装

下载Python2.7包

配置路径

1- ./configure --prefix=/home/work/local/Python2.7 --enable-shared -enable-unicode=ucs4

2- configure是源码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足安装软件的依赖关系。

3- 关于configure的介绍:http://blog.csdn.net/luckywang1103/article/details/18674231

3- 关于-enable-shared的介绍:http://blog.csdn.net/z1988316/article/details/7894734

4- -enable-unicode=ucs4:为了解决RHL6.6编码采用ucs4编码的问题,RHL5.5不需要。

编译与安装

make && make install

问题

执行:/home/work/local/Python2.7/bin/python

error: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

75e0284eb604?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

error

上述问题解决

1- echo "/home/work/local/Python2.7/lib" >> /etc/ld.so.conf

2- 执行 /sbin/ldconfig -v命令(需要root,或sudo权限)

解决啦!

75e0284eb604?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ok

问题背后的故事

/etc/ld.so.conf:

1- 这个文件记录了编译时使用的动态链接库的路径。

2- 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件;如果你安装了某些库,没有指定 --prefix=/usr 这样lib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib,就会报错了。

ldconfig是个什么东东?

1- 它是一个程序,通常它位于/sbin下,是root用户使用的东东。具体作用及用法可以man ldconfig查到;

2- 简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用;

3- 因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig;使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果

编译过程中抱错,缺少xxx库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值