在centOS 5上安装HTSeq

安装HTSeq,需要Python版本在2.5以上(但是在Python 3下不行),并且需要安装NumPy。如果已经安装了NumPy的话,安装HTSeq并不困难。但是如果没有安装的话,可能会比较麻烦。

首先,需要安装python 2.5以上的版本。因为centOS 5所带的Python版本是2.4,无法满足HTSeq的安装要求。但是,我并不建议直接升组安装python2.5以上的版本,因为yum等很多功能都由python来实现,所以我的办法是全新安装一个python的版本到一个指定的目录下面去。

下载并安装Python 2.7.2.

[ouj@qiuworld.com ~]$ tar -xzvf Python-2.7.2.tgz
[ouj@qiuworld.com ~]$ cd Python-2.7.2
[ouj@qiuworld.com Python-2.7.2]$ sudo yum install tcl #需要安装tcl/tk库
[ouj@qiuworld.com Python-2.7.2]$ sudo yum install tcl-devel
[ouj@qiuworld.com Python-2.7.2]$ sudo yum install tk
[ouj@qiuworld.com Python-2.7.2]$ sudo yum install tk-devel
[ouj@qiuworld.com Python-2.7.2]$ ./configure --prefix=/opt/python2.7 --with-threads --enable-shared
[ouj@qiuworld.com Python-2.7.2]$ make
[ouj@qiuworld.com Python-2.7.2]$ sudo make install
[ouj@qiuworld.com Python-2.7.2]$ sudo ln -s /opt/python2.7/bin/python /usr/bin/python2.7
[ouj@qiuworld.com Python-2.7.2]$ sudo echo '/opt/python2.7/lib'>> /etc/ld.so.conf.d/opt-python2.7.conf
[ouj@qiuworld.com Python-2.7.2]$ sudo /sbin/ldconfig
[ouj@qiuworld.com Python-2.7.2]$ python2.7
Python 2.7.2 (default, Nov 14 2011, 17:02:46) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named numpy

如果不新建/etc/ld.so.conf.d/opt-python2.7.conf文件并在当中写入一行/opt/python2.7/lib,将会得到如下错误:

[ouj@qiuworld.com Python-2.7.2]$ python2.7
/usr/bin/python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
[ouj@qiuworld.com Python-2.7.2]$ ldd python2.7
	linux-vdso.so.1 =>  (0x00007fff475fc000)
	libpython2.7.so.1.0 => not found       /lib64/libpthread.so.0 (0x000000349dc00000)
	libdl.so.2 => /lib64/libdl.so.2 (0x000000349d400000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00000034a6400000)
	libm.so.6 => /lib64/libm.so.6 (0x000000349d800000)
	libc.so.6 => /lib64/libc.so.6 (0x000000349d000000)
	/lib64/ld-linux-x86-64.so.2 (0x000000349cc00000)

接下来我们安装NumPy。它的安装需要事先安装两个库,ATLAS+LAPACK,我们需要下载并安装它们。

[ouj@qiuworld.com ~]$ wget http://www.netlib.org/lapack/lapack-3.3.1.tgz
[ouj@qiuworld.com ~]$ tar zxvf lapack-3.3.1.tgz
[ouj@qiuworld.com ~]$ cd lapack-3.3.1
[ouj@qiuworld.com lapack-3.3.1]$ cp INSTALL/make.inc.gfortran make.inc
[ouj@qiuworld.com lapack-3.3.1]$ vi make.inc
#修改OPTS及NOOPT两行
...
OPTS = -O2 -fPIC
...
NOOPT = -O0 -fPIC
...
[ouj@qiuworld.com lapack-3.3.1]$ cd SRC
[ouj@qiuworld.com SRC]$ make
[ouj@qiuworld.com SRC]$ cd ..
[ouj@qiuworld.com lapack-3.3.1]$ sudo cp lapack_LINUX.a /usr/local/lib/
[ouj@qiuworld.com ~]$ #去http://sourceforge.net/project/showfiles.php?group_id=23725 下载ATLAS库
[ouj@qiuworld.com ~]$ tar jxvf atlas3.8.4.tar.bz2
[ouj@qiuworld.com ~]$ cd ATLAS/ 
[ouj@qiuworld.com ATLAS]$ mkdir ATLAS_x86_64
[ouj@qiuworld.com ATLAS]$ cd ATLAS_x86_64/
[ouj@qiuworld.com ATLAS_x86_64]$ ../configure -Fa alg -fPIC --with-netlib-lapack=/usr/local/lib/lapack_LINUX.a 
[ouj@qiuworld.com ATLAS_x86_64]$ make
[ouj@qiuworld.com ATLAS_x86_64]$ cd lib
[ouj@qiuworld.com lib]$ make shared
[ouj@qiuworld.com lib]$ make ptshared
[ouj@qiuworld.com lib]$ cd ..
[ouj@qiuworld.com ATLAS_x86_64]$ sudo make install
[ouj@qiuworld.com ATLAS_x86_64]$ sudo cp lib/*.so /usr/local/atlas/lib/ #手动将所有的动态链接库拷贝至目标目录

安装好了以上两个库之后,接下来的任务就是下载安装numpy和scipy了。

[ouj@qiuworld.com ~]$ sudo ln -s /usr/lib/liblapack.so.3.0.3 /usr/lib/liblapack.so
[ouj@qiuworld.com ~]$ sudo ln -s /usr/lib64/liblapack.so.3.0.3 /usr/lib64/liblapack.so
[ouj@qiuworld.com ~]$ sudo ln -s /usr/lib/libblas.so.3.0.3 /usr/lib/libblas.so
[ouj@qiuworld.com ~]$ sudo ln -s /usr/lib64/libblas.so.3.0.3 /usr/lib64/libblas.so
[ouj@qiuworld.com ~]$ cd numpy-1.6.1
[ouj@qiuworld.com numpy-1.6.1]$ export BLAS=/usr/lib64/libblas.so
[ouj@qiuworld.com numpy-1.6.1]$ export LAPACK=/usr/lib64/liblapack.so
[ouj@qiuworld.com numpy-1.6.1]$ export ATLAS=/usr/local/atlas/lib/libatlas.so
[ouj@qiuworld.com numpy-1.6.1]$ /opt/python2.7/bin/python2.7 setup.py clean
[ouj@qiuworld.com numpy-1.6.1]$ /opt/python2.7/bin/python2.7 setup.py build
[ouj@qiuworld.com numpy-1.6.1]$ sudo /opt/python2.7/bin/python2.7 setup.py install --prefix=/opt/python2.7
[ouj@qiuworld.com numpy-1.6.1]$ /opt/python2.7/bin/python
Python 2.7.2 (default, Nov 14 2011, 17:02:46) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "", line 1, in 
  File "numpy/__init__.py", line 127, in 
    raise ImportError(msg)
ImportError: Error importing numpy: you should not try to import numpy from
        its source directory; please exit the numpy source tree, and relaunch
        your python intepreter from there.
>>> #上面这个错误表明不能在安装目录调用numpy包
[ouj@qiuworld.com numpy-1.6.1]$ cd ..
[ouj@qiuworld.com ~]$ /opt/python2.7/bin/python
Python 2.7.2 (default, Nov 14 2011, 17:02:46) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "", line 1, in 
  File "/opt/python2.7/lib/python2.7/site-packages/numpy/__init__.py", line 137, in 
    import add_newdocs
  File "/opt/python2.7/lib/python2.7/site-packages/numpy/add_newdocs.py", line 9, in 
    from numpy.lib import add_newdoc
  File "/opt/python2.7/lib/python2.7/site-packages/numpy/lib/__init__.py", line 13, in 
    from polynomial import *
  File "/opt/python2.7/lib/python2.7/site-packages/numpy/lib/polynomial.py", line 17, in 
    from numpy.linalg import eigvals, lstsq
  File "/opt/python2.7/lib/python2.7/site-packages/numpy/linalg/__init__.py", line 48, in 
    from linalg import *
  File "/opt/python2.7/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 23, in 
    from numpy.linalg import lapack_lite
ImportError: libptf77blas.so: cannot open shared object file: No such file or directory
>>> #这个错误说找不到libptf77blas.so,但实际上我是安装过它的。
[ouj@qiuworld.com ~]$ ldd /opt/python2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so 
	linux-vdso.so.1 =>  (0x00007fffed31e000)
	liblapack.so => /usr/lib64/liblapack.so (0x00002abad6b03000)
	libptf77blas.so => not found  not found  not found  /opt/python2.7/lib/libpython2.7.so.1.0 (0x00002abad720d000)
	libgfortran.so.1 => /usr/lib64/libgfortran.so.1 (0x00002abad75d8000)
	libm.so.6 => /lib64/libm.so.6 (0x00002abad786f000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002abad7af2000)
	libc.so.6 => /lib64/libc.so.6 (0x00002abad7d01000)
	libblas.so.3 => /usr/lib64/libblas.so.3 (0x00002abad8059000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00002abad82ae000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00002abad84ca000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00002abad86ce000)
	/lib64/ld-linux-x86-64.so.2 (0x000000349cc00000)
[ouj@qiuworld.com ATLAS_x86_64]$ LD_LIBRARY_PATH=/usr/local/atlas/lib:$LD_LIBRARY_PATH ldd /opt/python2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so
	linux-vdso.so.1 =>  (0x00007fff0b5fc000)
	liblapack.so => /usr/local/atlas/lib/liblapack.so (0x00002ae8c1585000)
	libptf77blas.so => /usr/local/atlas/lib/libptf77blas.so (0x00002ae8c1da1000)
	libptcblas.so => /usr/local/atlas/lib/libptcblas.so (0x00002ae8c1fbd000)
	libatlas.so => /usr/local/atlas/lib/libatlas.so (0x00002ae8c21db000)
	libpython2.7.so.1.0 => /opt/python2.7/lib/libpython2.7.so.1.0 (0x00002ae8c2d0d000)
	libgfortran.so.1 => /usr/lib64/libgfortran.so.1 (0x00002ae8c30d7000)
	libm.so.6 => /lib64/libm.so.6 (0x00002ae8c336e000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002ae8c35f2000)
	libc.so.6 => /lib64/libc.so.6 (0x00002ae8c3800000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae8c3b58000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00002ae8c3d74000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00002ae8c3f78000)
	/lib64/ld-linux-x86-64.so.2 (0x000000349cc00000)
[ouj@qiuworld.com ATLAS_x86_64]$ sudo vi /etc/ld.so.conf.d/python27.conf
/opt/python2.7/lib/
/usr/local/atlas/lib/ #再加入这一行,让它能找到libptf77blas.so等。
[ouj@qiuworld.com ATLAS_x86_64]$ sudo /sbin/ldconfig
[ouj@qiuworld.com ~]$ cd scipy-0.10.0
[ouj@qiuworld.com scipy-0.10.0]$ /opt/python2.7/bin/python setup.py build
[ouj@qiuworld.com scipy-0.10.0]$ sudo /opt/python2.7/bin/python setup.py install
[ouj@qiuworld.com ~]$ python2.7
Python 2.7.2 (default, Nov 14 2011, 17:02:46) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> import numpy
>>>

接下来开始正式安装HTSeq.

[ouj@qiuworld.com ~]$ cd HTSeq-0.5.3p3
[ouj@qiuworld.com HTSeq-0.5.3p3]$ sudo /opt/python2.7/bin/python setup.py build
[ouj@qiuworld.com HTSeq-0.5.3p3]$ sudo /opt/python2.7/bin/python setup.py install
[ouj@qiuworld.com HTSeq-0.5.3p3]$ cd ..
[ouj@qiuworld.com ~]$ python2.7
Python 2.7.2 (default, Nov 14 2011, 17:02:46) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import HTSeq
>>>

大功告成。

2 thoughts on “在centOS 5上安装HTSeq

发表评论

电子邮件地址不会被公开。 必填项已用*标注