【问题标题】:ncap2: error while loading shared libraries: libnetcdf.so.7: cannot open shared object file: No such file or directoryncap2:加载共享库时出错:libnetcdf.so.7:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2020-12-25 09:15:15
【问题描述】:

我尝试在远程服务器 (RHEL 7.8) 中安装 nco,但我不是 root,这意味着我无法在终端中使用 sudo 或 yum。然后我按照 nco (http://nco.sourceforge.net/src/) 主页上的说明进行操作,其中建议使用预构建方式。所以我使用了 conda 方法。但是我用conda install -c conda-forge nco的时候,速度太慢了。最后我被告知解决环境不成功。之后,我在 conda 中搜索了 nco,在 https://anaconda.org/conda-forge/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在哪里......我是在远程服务器上编译东西的初学者......特别是普通用户禁止使用苏打水和百胜......)

【问题讨论】:

    标签: linux conda netcdf netcdf4 nco


    【解决方案1】:

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

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

    20200914 更新:响应以下后续 cmets,请理解 Conda 只是 NCO 的一个不错的安装程序,并确保您将所有依赖项和库放在一个地方。只要 Conda bin 和 lib 目录首先出现在您的路径中,Conda 安装的 NCO 运行良好,无论是否包含 Bash 脚本。

    【讨论】:

    • 感谢您的回复!但是如何在 bash 文件中使用 ncap2 呢?例如,我有一个 xxx.sh,我需要在其中循环运行 ncap2 -O -s "'DTCUR-YEAR'=$YYYY;'DTCUR-MONTH'=1;'DTCUR-DAY'=1;'DTCUR-TIME'=0" PREP.nc PREP.nc,那么如何在 .sh 文件中使用它?顺便问一下,如何在 conda 环境之外使用 ncap2?
    • 我也很困惑,为什么 nco 的安装与 conda 相关联...在我看来 conda 与 python pkg 安装有关...所以使用 conda 的环境是有道理的。但是为什么nco主页说推荐安装conda呢?我想也许 nco 与 python 没有任何关系……顺便说一下,conda 环境有什么好的介绍吗?你能和我分享一下吗?非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 2019-02-16
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    相关资源
    最近更新 更多