登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 151170080 于 2019-9-15 09:54 编辑
自从学习使用ncl以来就一直在不停的安装ncl,记得第一次安装的时候真的很绝望。我一直在Mac上使用ncl,下面将我在mac上安装ncl的一些心得写一写,希望对在mac上使用ncl的朋友有一点启发。
ncl官网上的安装指导,已经比较详细的给出了安装步骤,我对每一步给出自己的说明。
XQuartz是ncl的图形显示界面,是ncl一个比较方面的工具。它也是使用ssh远程登陆服务器进行本地化图形显示的一个软件。下载dmp文件安装即可。
2. gfortran/gcc安装 本人认为,安装gfortran/gcc只是为提供了ncl所需要的一些基本的GNU编译器的动态链接库(.dylib文件),所以安装合适版本的gfortran/gcc是比较必要的。当然,gcc/gfortran的安装有多种方法,我给出了gcc/gfortran的官网网站,上面给出了不同版本的gcc/gfortran,一般来说gcc安装包中包含了gfortran,所以下载一个即可。将其解压缩至ncl的安装文件夹即可。后面会讲到如何使用下载的gcc安装包。我下载了gcc-7.3-bin.tar.gz 版本,并解压缩在用户目录下的~/Library/Gcc/gcc-730目录下。
3. 下载所需要的ncl版本
目前,ncl的最新版本事6.6.2。个人不建议安装最新版本的ncl,因为没有必要,稍微低一点的版本反而会更好用。各个版本的ncl都可以在这个网站下载,选择合适版本之后一定要下载带(not OpenDap-enable)后缀的。ncl压缩文件中会写有gnu的版本,提醒一下,这个版本一定要与自己下的gcc版本接近。我将ncl压缩文件解压在了~/Library/NCL/ncl-650/文件夹下,这个路径可以自由选择。
4. 链接ncl所需要的库文件
解压缩ncl之后,里面有三个文件夹:
ncl-650/
bin/
include/
lib/
进入bin文件夹,里面都是ncl软件的命令。这时候终端下输入 ./ncl 你可能会发现没有出现ncl交互界面,出现了这么个东西
dyld: Library not loaded: /usr/local/lib/libgfortran.4.dylib Referenced from: /Users/zjkang/Library/NCL/ncl-650/bin/./ncl Reason: image not found [backcolor=rgba(0, 0, 0, 0.85)]Abort trap: 6
这时啥意思呢,ncl运行需要libgfortran.4.dylib 这个动态库,它默认在 /usr/local/lib/ 里面加载,但是,/usr/local/lib/ 这个文件夹里没有。这个库文件在哪呢?还记得之前下载的gcc文件吧, 进入 ~/Library/Gcc/gcc-730/usr/local/lib 会发现,里面就是一些动态库文件。
这个时候,我们有两种方法:一是将这些文件复制进入 /usr/local/lib/ 文件夹下;二是让它从~/Library/Gcc/gcc-730/usr/local/lib里面加载。第一种,尝试起来太麻烦,需要关闭mac的系统保护。第二种是我今天要介绍的(这是我尝试安装很多遍之后摸索出来的)。
再次进入 ncl的bin文件夹下,输入命令:otool -L ncl 会输出:
ncl: /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /opt/X11/lib/libfontconfig.1.dylib (compatibility version 11.0.0, current version 11.2.0) /opt/X11/lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) /opt/X11/lib/libXpm.4.dylib (compatibility version 16.0.0, current version 16.0.0) /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0) /opt/X11/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0) /Users/zjkang/Library/Gcc/usr/local/lib/libgfortran.4.dylib (compatibility version 5.0.0, current version 5.0.0) /usr/local/lib/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0) /Users/zjkang/Library/Gcc/usr/local/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0) /usr/local/lib/libgomp.1.dylib (compatibility version 2.0.0, current version 2.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4) /usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
这就是ncl运行时,需要的动态链接库,以及它加载的文件夹。那么如何修改到我们需要的文件夹下呢?利用 install_name_tool 命令
终端中输入:install_name_tool -change old-file-path new-file-path ncl
这样就修改了加载路径,再次./ncl 看看是否能够成功运行。一般的话最多修改三次,就可以运行了。
5. 修改 .bashrc文件
如果不修改bashrc文件,你每次启动ncl都要先打开ncl的安装目录,在bin文件夹下运行ncl。为了避免这么麻烦,肯定修改bashrc文件。在用户目录下,编辑 .bashrc文件,加入一下两行:
export NCARG_ROOT=~/Library/NCL/ncl-650
export PATH=$PATH:$NCARG_ROOT/bin
然后保存推出,source一下这个文件,重新打开终端,输入ncl,可以发现ncl终于安装好了。
虽然安装了这么多次,但我还是不敢保证遇到所有的情况,如果我这个帖子解决不了你的问题,欢迎留言交流! |