在安装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
网友评论