ncap2:加载共享库时出错:libnetcdf.so.7:无法打开共享对象文件:没有这样的文件或目录

问题描述

我试图在远程服务器(RHEL 7.8)中安装nco,但我不是root用户,这意味着我无法在终端中使用sudo或yum。然后,我按照nco(http://nco.sourceforge.net/src/)主页上的说明进行操作,其中建议采用预先构建的方式。所以我用了conda方法。但是当我使用conda install -c conda-forge nco时,速度太低。最后,我被告知解决环境不成功。之后,我在https://anaconda.org/conda-forge/nco的conda中搜索了nco,被告知conda install -c conda-forge/label/broken nco可以。是的,安装已完成。但是当我想使用命令ncap2时,有人告诉我

ncap2: error while loading shared libraries: libnetcdf.so.7: cannot open shared object file: No such file or directory

我检查了LD_LIBRARY_PATH,但找不到指向libnetcdf.so.7的链接。我使用find命令来查找libnetcdf.so.7的位置,但是正如您所知,我在服务器上运行,因此大多数访问都被拒绝。这是我的~/.bashrc

export PATH="/home/xushan/anaconda3/bin:$PATH"
export PATH="$PATH:/home/xushan/openmpi/bin"
#export PATH= "$HOME/openmpi/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/xushan/openmpi/lib"
export VER_MPI="NOMPI"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/xushan/SURFEX_v8_1_public/open_SURFEX_V8_1/src/LIB"
#export VER_USER="FORC"
export PATH="/home/xushan/anaconda3/bin/ncdump:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/xushan/anaconda3/lib"

奇怪的是,当我ls/usr/local/lib时,什么都没有。 有什么办法可以帮助我完成安装?我尝试了http://nco.sourceforge.net/src/中建议的以下命令:

wget https://github.com/nco/nco/archive/4.9.4.tar.gz
tar xvzf 4.9.4.tar.gz
cd nco-4.9.4
./configure --prefix=/usr/local
make
sudo make install
export PATH=/usr/local/bin\:${PATH}
export LD_LIBRARY_PATH=/usr/local/lib\:${LD_LIBRARY_PATH}

但是当我运行./configure --prefix=/usr/local时,我被告知

checking for /opt/local/include/netcdf.h... no
checking for /opt/local/lib/libnetcdf.a... no
checking netcdf.h usability... no
checking netcdf.h presence... no
checking for netcdf.h... no
configure: error: in `/home/xushan/nco-4.6.3':
configure: error: cannot find netCDF header
See `config.log' for more details

那么有没有人可以帮助我?非常感谢! (问题是我找不到libnetcdf.so.7的位置……我是在远程服务器上编译某些东西的初学者...。特别是普通用户禁止使用soda和yum...。)

解决方法

您可以为conda创建一个新的nco环境。其依赖性可能与您当前环境中的某些程序冲突。

conda create -n myenv -c conda-forge python=3 nco
conda activate myenv
ncap2

更新20200914:针对以下后续评论,请理解Conda只是NCO的不错的安装程序,并确保您将所有依赖项和库放在一个地方。。只要Conda bin和lib dirs在您的路径中排在首位,无论是否在Bash脚本内,安装Conda的NCO都可以正常工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...