CentOS下如何添加动态链接库

CentOS下如何添加动态链接库,第1张

第一:在/etc/profile中添加共享库的路径:

[plain] view plain copy

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:/home/dcc/libhdfs

如上,添加了两个路劲下的共享库,注意,路劲之间用冒号(“:”)隔开。

第二:在/etc/ld.so.conf中添加路径,然后重新加载共享库:

[plain] view plain copy

vi /etc/ld.so.conf

编辑后如下:

[plain] view plain copy

include ld.so.conf.d/*.conf

/home/dcc/libhdfs

/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/

入上,分别添加了两个路径,每个路径占一行。编辑完后,重新加载库:

[plain] view plain copy

/sbin/ldconfig -v

Linux下libiconv库的安装和使用:

1.编译安装libiconv库

包的下载页面http://www.gnu.org/software/libiconv/

$ ./configure --prefix=/usr/local

$ make

$ make install

2.在/usr/local/lib/目录下拷备需要的库文件libcharset.so.1, libiconv.so.2。

CentOS 6自带了Python 2.6.6(CentOS 7则自带了Python 2.7)和一些非常好用的功能,如yum。但是,注意不要随便升级自带的Python以免yum不可用。 新版本将安装在/usr/local目录下以避免和自带的版本冲突。

虽然“我”只在64位的CentOS 6.5进行了尝试,但该教程应该适用于所有的CentOS 6版本(本人按此教程在CentOS 7上亦成功安装Python3.4)。

下面的示例命令您最好以root身份运行或者在命令前加sudo赋予权限。但注意,若不是以root身份执行的话,make 与make install最好分开执行,并且都在前面加sudo,连着写,如sudo make &&make install的话会在make install过程中报权限不足问题,因为sudo不作用于&&后面的make install。

安装前准备

编译Python之前您最好先安装一系列的开发工具和一些拓展库,虽然不是必须的,但这样Python才能依赖这些工具和拓展库展示它强悍的功能。下面是利用yum进行工具和拓展库安装的示例命令,直接copy执行即可(注意部分命令显示不全,但可以通过移动光标查看和复制)。

yumgroupinstall"Development tools"

yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel

该考虑的因素

在您编译和安装Python之前,有些东西您是应该知道或考虑的。如下。

Unicode编码

Python编码问题历史悠久,但不用过多关注,知道它目前支持Unicode编码即可(Python3中默认的)。考虑到兼容性等原因,除非有特殊的理由,您最好配置下Python 3.2和更早的版本,使其支持UTF-32编码,虽然会增加小小的内存代价。在Python 2.7中您可以通过在configure时添加选项--enable-unicode=ucs4 进行配置,而在Python 3.2中是--with-wide-unicode选项。

Shared library(动态共享库)

目前大部分的Linux系统自带的Python都是以共享库的方式编译的, 此外,某些第三方工具例如mod_wsgi和Blender,没有Python的共享库还运行不了,所以,您最好还是把Python编译成动态共享库吧。为了以共享库方式编译Python,您必须指明共享库的路径。您有两种选择:

在configure命令后面添加:LDFLAGS="-Wl,-rpath /usr/local/lib"从而将库路径直接编译进Python中。

以记事本方式打开 /etc/ld.so.conf ,然后在文件最后添加新行:/usr/local/lib 。紧接着运行命令 /sbin/ldconfig 更新动态链接器。 添加后的文件内容在CentOS 6.5 如下:

/etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/lib

使用 “make altinstall” 而不是make install

切记,在安装自定义版本的Python时,make altinstall命令是必须的!如果您使用一般的 make install命令,呵呵,您将会在解压编译的目录下看到两个命名一样但版本不同的python,这有可能会导致一些意想不到的bug哦,具体是什么作者没说,我也不知道。

下载,编译,安装Python

如下命令可用于下载、编译和安装Python。注意,如果您打算安装后手动修改/etc/ld.so.conf文件以更新动态链接器,那么下面的 LDFLAGS 参数您就可以去掉了。

# Python 2.7.6:

wgethttp://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz

tarxfPython-2.7.6.tar.xz

cdPython-2.7.6

./configure--prefix=/usr/local--enable-unicode=ucs4--enable-sharedLDFLAGS="-Wl,-rpath /usr/local/lib"

make&&makealtinstall(此处切记,要么以root运行,要么分开执行!)

# Python 3.3.5:

wgethttp://python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz

tarxfPython-3.3.5.tar.xz

cdPython-3.3.5

./configure--prefix=/usr/local--enable-sharedLDFLAGS="-Wl,-rpath /usr/local/lib"

make&&makealtinstall(此处切记,要么以root运行,要么分开执行!)

执行上述命令之后,您可以在/usr/local/bin/python2.7或 /usr/local/bin/python3.3中找到新安装的Python。而Python 2.6.6则可能在/usr/bin/python, /usr/bin/python2或 /usr/bin/python2.6找到。

下载和安装Setuptools + pip

Setuptools早已取代 Distribute成为Python官方的拓展包管理器,以用于从Python Package Index安装拓展功能包。 不同版本的Python需要的Setuptools版本不同。建议您也通过Setuptools安装 pip,它提供了一些额外在安装拓展功能包时很有用的功能。

以下的命令可用于安装最新版Setuptools 和 pip。

# First get the setup script for Setuptools:

wgethttps://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

# Then install it for Python 2.7 and/or Python 3.3:

python2.7ez_setup.py

python3.3ez_setup.py

# Now install pip using the newly installed setuptools:

easy_install-2.7pip

easy_install-3.3pip

# With pip installed you can now do things like this:

pip2.7install[packagename]

pip2.7install--upgrade[packagename]

pip2.7uninstall[packagename]

安装的拓展功能包在/usr/local/lib/pythonX.Y/site-packages/中可以找到(X.Y是Python的版本号)。

接下来干嘛?

如果您使用 Python 2.7,强烈建议您安装virtualenv并学会使用它,它可用于创建独立的 Python 环境。如果您使用 Python 3.3的话就可以省心些,它已被内置了。

不同的 Python 运行环境(也叫沙盒) 可以有自己的 Python 版本和拓展功能包,就是说不同的Python安装和运行的目录不同,也可以为每个版本的Python安装对应的名称一样但版本不同的拓展包。 这在开发多个功能不同的项目或在同一个项目中需要用到不同版本的Python是会很有用的。

创建您第一个独立的Python环境

# Install virtualenv for Python 2.7 and create a sandbox called my27project:

pip2.7installvirtualenv

virtualenv-2.7my27project

# Use the built-in pyvenv program in Python 3.3 to create a sandbox called my33project:

pyvenv-3.3my33project

# Check the system Python interpreter version:

python--version

# This will show Python 2.6.6

# Activate the my27project sandbox and check the version of the default Python interpreter in it:

sourcemy27project/bin/activate

python--version

# This will show Python 2.7.6

deactivate

# Activate the my33project sandbox and check the version of the default Python interpreter in it:

sourcemy33project/bin/activate

python--version

# This will show Python 3.3.5

deactivateCentOS 6自带了Python 2.6.6(CentOS 7则自带了Python 2.7)和一些非常好用的功能,如yum。但是,注意不要随便升级自带的Python以免yum不可用。 新版本将安装在/usr/local目录下以避免和自带的版本冲突。

虽然“我”只在64位的CentOS 6.5进行了尝试,但该教程应该适用于所有的CentOS 6版本(本人按此教程在CentOS 7上亦成功安装Python3.4)。

下面的示例命令您最好以root身份运行或者在命令前加sudo赋予权限。但注意,若不是以root身份执行的话,make 与make install最好分开执行,并且都在前面加sudo,连着写,如sudo make &&make install的话会在make install过程中报权限不足问题,因为sudo不作用于&&后面的make install。

安装前准备

编译Python之前您最好先安装一系列的开发工具和一些拓展库,虽然不是必须的,但这样Python才能依赖这些工具和拓展库展示它强悍的功能。下面是利用yum进行工具和拓展库安装的示例命令,直接copy执行即可(注意部分命令显示不全,但可以通过移动光标查看和复制)。

yumgroupinstall"Development tools"

yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel

该考虑的因素

在您编译和安装Python之前,有些东西您是应该知道或考虑的。如下。

Unicode编码

Python编码问题历史悠久,但不用过多关注,知道它目前支持Unicode编码即可(Python3中默认的)。考虑到兼容性等原因,除非有特殊的理由,您最好配置下Python 3.2和更早的版本,使其支持UTF-32编码,虽然会增加小小的内存代价。在Python 2.7中您可以通过在configure时添加选项--enable-unicode=ucs4 进行配置,而在Python 3.2中是--with-wide-unicode选项。

Shared library(动态共享库)

目前大部分的Linux系统自带的Python都是以共享库的方式编译的, 此外,某些第三方工具例如mod_wsgi和Blender,没有Python的共享库还运行不了,所以,您最好还是把Python编译成动态共享库吧。为了以共享库方式编译Python,您必须指明共享库的路径。您有两种选择:

在configure命令后面添加:LDFLAGS="-Wl,-rpath /usr/local/lib"从而将库路径直接编译进Python中。

以记事本方式打开 /etc/ld.so.conf ,然后在文件最后添加新行:/usr/local/lib 。紧接着运行命令 /sbin/ldconfig 更新动态链接器。 添加后的文件内容在CentOS 6.5 如下:

/etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/lib

使用 “make altinstall” 而不是make install

切记,在安装自定义版本的Python时,make altinstall命令是必须的!如果您使用一般的 make install命令,呵呵,您将会在解压编译的目录下看到两个命名一样但版本不同的python,这有可能会导致一些意想不到的bug哦,具体是什么作者没说,我也不知道。

下载,编译,安装Python

如下命令可用于下载、编译和安装Python。注意,如果您打算安装后手动修改/etc/ld.so.conf文件以更新动态链接器,那么下面的 LDFLAGS 参数您就可以去掉了。

# Python 2.7.6:

wgethttp://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz

tarxfPython-2.7.6.tar.xz

cdPython-2.7.6

./configure--prefix=/usr/local--enable-unicode=ucs4--enable-sharedLDFLAGS="-Wl,-rpath /usr/local/lib"

make&&makealtinstall(此处切记,要么以root运行,要么分开执行!)

# Python 3.3.5:

wgethttp://python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz

tarxfPython-3.3.5.tar.xz

cdPython-3.3.5

./configure--prefix=/usr/local--enable-sharedLDFLAGS="-Wl,-rpath /usr/local/lib"

make&&makealtinstall(此处切记,要么以root运行,要么分开执行!)

执行上述命令之后,您可以在/usr/local/bin/python2.7或 /usr/local/bin/python3.3中找到新安装的Python。而Python 2.6.6则可能在/usr/bin/python, /usr/bin/python2或 /usr/bin/python2.6找到。

下载和安装Setuptools + pip

Setuptools早已取代 Distribute成为Python官方的拓展包管理器,以用于从Python Package Index安装拓展功能包。 不同版本的Python需要的Setuptools版本不同。建议您也通过Setuptools安装 pip,它提供了一些额外在安装拓展功能包时很有用的功能。

以下的命令可用于安装最新版Setuptools 和 pip。

# First get the setup script for Setuptools:

wgethttps://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

# Then install it for Python 2.7 and/or Python 3.3:

python2.7ez_setup.py

python3.3ez_setup.py

# Now install pip using the newly installed setuptools:

easy_install-2.7pip

easy_install-3.3pip

# With pip installed you can now do things like this:

pip2.7install[packagename]

pip2.7install--upgrade[packagename]

pip2.7uninstall[packagename]

安装的拓展功能包在/usr/local/lib/pythonX.Y/site-packages/中可以找到(X.Y是Python的版本号)。

接下来干嘛?

如果您使用 Python 2.7,强烈建议您安装virtualenv并学会使用它,它可用于创建独立的 Python 环境。如果您使用 Python 3.3的话就可以省心些,它已被内置了。

不同的 Python 运行环境(也叫沙盒) 可以有自己的 Python 版本和拓展功能包,就是说不同的Python安装和运行的目录不同,也可以为每个版本的Python安装对应的名称一样但版本不同的拓展包。 这在开发多个功能不同的项目或在同一个项目中需要用到不同版本的Python是会很有用的。

创建您第一个独立的Python环境

# Install virtualenv for Python 2.7 and create a sandbox called my27project:

pip2.7installvirtualenv

virtualenv-2.7my27project

# Use the built-in pyvenv program in Python 3.3 to create a sandbox called my33project:

pyvenv-3.3my33project

# Check the system Python interpreter version:

python--version

# This will show Python 2.6.6

# Activate the my27project sandbox and check the version of the default Python interpreter in it:

sourcemy27project/bin/activate

python--version

# This will show Python 2.7.6

deactivate

# Activate the my33project sandbox and check the version of the default Python interpreter in it:

sourcemy33project/bin/activate

python--version

# This will show Python 3.3.5

deactivate


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11417081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存