美文网首页
centos7非root安装各种依赖库(举一反三)

centos7非root安装各种依赖库(举一反三)

作者: Kevin_Hhui | 来源:发表于2022-06-16 11:22 被阅读0次
    在安装cytoTRACE的时候,除了之前所需要的更高版本的GCC,此外,它还需要nc-config这个依赖库,这在我们组服务器也是没有的,在没有root权限下,我们该如何安装呢?其实到后面会发现无root编译安装其实有个通用流程的,如果我们可以熟悉掌握,我是感觉可以应对大部分依赖版本不一致的问题。

    进入正题,经过简单的查阅,会发现nc-config是在netcdf下面,因此,那我们就编译安装netcdf就好啦。

    netcdf安装前需要安装libxml2、zlib、hdf5、netcdf-c与netcdf-fortran(其中hdf5依赖于zlib;netcdf-c依赖于hdf5;netcdf-fortran依赖于netcdf-c)

    文中安装包可于百度云下载:https://pan.baidu.com/s/15w4f_WfnV5WiSxZ-SN3TkQ 密码:aicd
    也可以去官网下载:
    HDF5 and zlib packages are available from the HDF5 downloads site and the zlib home site.

    上述软件均安装在同一个文件夹${DIR_install}下 (如果netcdf-c与netcdf-fortran不在同一个目录下则会导致无法运行)。

    1. 设置安装所需的环境变量
    $ export DIR_install=安装目录
    ---------或者--------
    $ DIR_install=/home/zhouwg/data/software
    
    2. 安装zlib
    $ tar -zxvf zlib-1.2.11.tar.gz
    $ cd zlib-1.2.11 
    $ ./configure --prefix=$DIR_install; 
    $ make check
    $ make install 
    
    3. 安装hdf5
    $ tar -jxvf hdf5-1.10.3.tar.bz2
    $ cd hdf5-1.10.3
    $ ./configure --prefix=$DIR_install --with-zlib=$DIR_install --enable-hl 
    $ make ## make -j 64    # 有点慢,可以考虑多线程编译
    $ make check
    $ make install
    
    4. 安装netcdf-c

    需要把${DIR_install }/lib加到环境变量 LD_LIBRARY_PATH中(安装netcdf-c可以暂时不加,但是安装netcdf-fortran必须添加)

    Optional

    $ export LD_LIBRARY_PATH=$DIR_install/lib:$LD_LIBRARY_PATH
    

    Necessary 这里我用的是最新版的netCDF,4.9.0

    $ tar -zxvf netcdf-c-4.9.0.tar.gz
    $ cd netcdf-c-4.9.0
    $ CPPFLAGS=-I${DIR_install}/include LDFLAGS=-L${DIR_install}/lib ./configure --prefix=${DIR_install} --disable-filter-testing 
    (上述过程如果出现 `configure: error: curl required for remote access. Install curl or build with --disable-dap.` 则在configure后添加 --disable-dap;
    如果出现'configure: error: curl required for remote access. Install curl or build with --disable-hdf5.' 则在configure后添加 --disable-hdf5;) 我是出现后面这种情况
    $ make check
    $ make install
    
    安装成功提示
    但是当我输入nc-config --help 时却提示找不到,问题肯定就是出现在环境变量配置上,找不到这个nc-config,所以进一步查看安装路径下的nc-config在哪,发现在bin目录下,因此把这个再加进~/.bashrc里就好啦
    $ export PATH=/home/zhouwg/data/software/bin:/home/zhouwg/data/software/lib:$PATH
    也就是在前面的环境变量里,需要加两条
    $ vim ~/.bashrc
    ## 添加下面两条
    $ export LD_LIBRARY_PATH=/home/zhouwg/data/software/lib/:$LD_LIBRARY_PATH
    $ export PATH=/home/zhouwg/data/software/bin:/home/zhouwg/data/software/lib:$PATH
    $ source ~/.bashrc
    ## 这时候再试下 **nc-config --version**
    $ nc-config --version
    ## netCDF 4.9.0
    

    大功告成!可以接着安装那些R包了。

    总结一下,举一反三,如何利用非ROOT安装各种依赖库,当然我这边举例都是基于Centos7系统的,理论上Ubuntu其实也通用,但是往往Ubuntu没有这样的问题,因为它的软件往往都比Centos要新。

    1. wget命令下载软件源码,如:
    $ wget xxx/zlib-1.2.11.tar.gz
    2. 解压:
    $ tar -zxvf zlib-1.2.11.tar.gz
    3. 配置编译路径(关键)
    $ ./configure --prefix=/home/zhouwg/data/software
    4. 安装:
    $ make && make install
    5. 修改~/.bashrc文件,配置环境变量,加入安装好的文件路径(一般是bin目录,软件的命令一般都在bin目录中),如:
    $ export PATH=/home/zhouwg/data/software/bin:$PATH
    $ export LD_LIBRARY_PATH=/home/zhouwg/data/software/lib/:$LD_LIBRARY_PATH
    注意一般都会在最后加上$PATH,这里是为了把在这之前设置的PATH都加入到PATH中,不然之前设置的PATH都会被覆盖,另外要注意liunx的配置文件路径分割符为冒号:,window 为分号;。
    6. 最后激活配置文件:
    $ source ~/.bashrc
    

    参考1:https://blog.csdn.net/zhaohaibo_/article/details/88249104
    参考2:https://blog.csdn.net/bobobe/article/details/109144385
    官方教程:https://docs.unidata.ucar.edu/nug/current/getting_and_building_netcdf.html

    相关文章

      网友评论

          本文标题:centos7非root安装各种依赖库(举一反三)

          本文链接:https://www.haomeiwen.com/subject/eizfvrtx.html