lapack+atlas+glpk+cvxopt环境搭建(无root权限)

参考博文:

http://blog.sina.com.cn/s/blog_6cb8e53d0101keak.html#cmt_2211247

http://pgfe.umassmed.edu/ou/archives/2549

服务器环境:

1.linux 64位

2.centOS 5

3. g++ 4.1.2

(不确定服务器配置对环境搭建的影响,只是在本机这样的环境下配置成功)

开发包:

lapack-3.3.1.tgz       http://www.netlib.org/lapack/#_previous_release

atlas3.8.4.tar.bz2     http://sourceforge.net/projects/math-atlas/files/Stable/

cvxopt-1.1.7.tar.gz  http://cvxopt.org/download/index.html

glpk-4.53.tar.gz       http://ftp.gnu.org/gnu/glpk/

安装步骤:

一、lapack安装

tar -zxvf lapack-3.3.1.taz

cd lapack-3.3.1

cp INSTALL/make.inc.gfortran make.inc

vi make.inc

   修改两行:OPTS = -O2 -fPIC

      NOOPT = -O0 -fPIC

cd SRC

make (lapack-3.3.1下生成lapack_LINUX.a )

二、atlas安装

tar jxvf atlas3.8.4.tar.bz2

cd ATLAS/

mkdir ATLAS_x86_64

cd ATLAS_x86_64

../configure -Fa alg -fPIC --with-netlib-lapack=**/lapack-3.3.1/lapack_LINUX.a --prefix=***/atlas

  注:--with-netlib-lapack是lapack_LINUX.a的路径

    --prefix 是安装路径,自己指定(atlas是我创建的一个文件夹)

    随意指定路径即可,不一定在/usr 或者~/.local下

make

cd lib

make shared 

make ptshared  (这两步在lib下生成6个so文件)

cd ..

make install

cp lib/*.so **/atlas/lib (atlas安装路径下的lib)

三、设置环境变量

vi ~/.bashrc

添加 export LD_LIBRARY_PATH=**/atlas/lib:$LD_LIBRARY_PATH

source ~/.bashrc

四、安装cvxopt

tar zxvf cvxopt-1.1.7.tar.gz

vi setup.py

  修改:BLAS_LIB_DIR = '**/atlas/lib'

     BLAS_LIB = ['f77blas', 'cblas', 'atlas', 'gfortran']

     LAPACK_LIB = ['lapack']

python setup.py install

测试是否安装成功:

test.py

  from cvxopt import matrix

没有错误,即成功。

五、安装扩展模块glpk

1.安装glpk

tar zxvf glpk-4.53.tar.gz

cd glpk-4.53

./configure

make

make check

mkdir **/glpk

make prefix=**/glpk install

2.配置环境变量

vi ~/.bashrc

添加export LD_LIBRARY_PATH=**/glpk/lib:$LD_LIBRARY_PATH

source ~/.bashrc

3.cvxopt安装扩展模块glpk

cd cvxopt-1.1.7

vi setup.py

修改:BUILD_GLPK = 1

   GLPK_LIB_LIBRARY='**/glpk/lib'

        GLPK_INC_LIBRARY='**/glpk/include'

python setup.py install

4.测试

python

from cvxopt import glpk

没有报错,则成功。

5.注意:起初使用的是cvxopt-1.1.5,但在扩展glpk模块时遇到很多error,形如

 C/glpk.c:46: error: ‘LPX_K_MSGLEV’ undeclared here (not in a function)

后来知是cvxopt和glpk之间的接口问题。后来使用cvxopt-1.1.7和 glpk 4.53是OK

的。没有探究cvxopt-1.1.7和glpk 4.53以上版本是否work,估计OK。

总结:这是我第一次在linux下安装工具,历时一周,花在这个上面的时间有两天半。

现在回过头来想想也不是那么不易,只是安装过程确实遇到许多莫名的问题,通过网上对问题搜索,

研读安装文件,向人请教相关知识,还发邮件给在github上看到的安装成功的人请教,等等,终于安装成功。

还是蛮开心的,相当锻炼解决问题的能力!

原文地址:https://www.cnblogs.com/tina-ma/p/4029859.html