Ubuntu14.04下安装NCL6.3.0过程

来源:互联网 发布:sql语句修改字段名 编辑:程序博客网 时间:2024/06/11 16:28

今天帮一位小公举在windows7系统下安装ubuntu系统,同时安装一些专业软件,其中在ubuntu下安装的NCL是比较费脑筋的一项工作,在此分享一下安装过程和可能遇到的问题。

一、序言

首先NCL的安装主要分为两个步骤,第一步是适合操作系统版本的NCL下载,第二步是NCL的安装,那么针对这两个步骤官网都有非常详细的介绍,分别是第一步下载(Download NCL binaries and/or source code)和第二步安装(Install NCL/NCAR Graphics from a precompiled binary),鉴于英文阅读的难度,下面我用中文详细的讲一下操作步骤和问题。

二、NCL下载

NCL下载官网的原文说明如下(直接粘贴原文):

  1. Go to www.earthsystemgrid.org
  2. Click on “NCL: NCAR Command Language” (bottom middle of page).
  3. Click on “NCL Version 6.3.0” or the version you’re interested in.
  4. Click on whether you want an OPeNDAP binary, a non OPeNDAP binary, or source code. If you don’t know what OPeNDAP is, then you probably don’t need it.
  5. Click on “Download Options”.
  6. Click on the name of the file you want to download, and it should automatically download to your machine.

具体翻译如下

  1. 访问网站www.earthsystemgrid.org
  2. 点击网站上的 “NCL: NCAR Command Language”(位置在主页下面的中部)
  3. 点击”NCL Version 6.3.0” 或者其他你感兴趣的版本
  4. 点击OPeNDAP binary、non OPeNDAP binary或者source code的其中一个,如果你并不知道OPeNDAP是什么的话,那你可能并不需要它(意思就是选择non OPeNDAP binary)
  5. 点击 “Download Options”
  6. 点击你想下载文件的名字,就会自动下载到你的机器上面了

值得关注的是步骤4和步骤6中要面临选择版本的问题。
第4步 OPeNDAP,个人意见是如果你和我一样不知道什么是OPeNDAP,那就选“not OPeNDAP-enabled”版本好了,或者去了解一下OPeNDAP的含义再做决定。
第9步 很关键,笔者此时遇到的选项如下:
这里写图片描述
仔细比较这几个选择,主要区别在于三点:

  1. 系统版本;
  2. gcc版本(gcc是一套由GNU开发的编程语言编译器,支持多种语言,详见维基百科-gcc词条,没兴趣了解也没关系);
  3. 处理器类型(即i686,x86_64,64bit等选项)。

前面给出的链接包含了如何了解自己系统版本和gcc版本的提示,即输入以下三条命令:

uname -mcat /etc/issuegcc –-version

如下图所示,之后所有的终端指令也都是在这个命令框里输入,搜索terminal即可找到

这里写图片描述

分别能够获取自己系统的处理器类型(笔者为x86_64),系统版本(笔者为Ubuntu14.04)以及gcc版本(14.04附带版本为4.8.4)。第一点没问题,第二点NCL官方也有说明:

If your flavor of Linux or “bitness” doesn’t match, then you can
usually use one of the other ones. For example, if you have a CentOS
or Fedora system, then try a RedHat binary. If you have a Ubuntu
system, try a Debian binary.

对于Ubuntu,应当选择Debian版本。问题是,14.0.4自带的gcc版本为4.8,而这里最大只有472,且官网有如下要求:

If your version of gcc doesn’t match any in the list, then use a
version of gcc that is lower or just slightly higher (for example, if
you have gcc 4.4.6, you can probably use a gcc 4.4.5 binary).

含义就是说ubuntu的gcc版本要比下载的NCL要求的低或者高一点,也就是说我的电脑版本是4.8大于472(也就是4.7.2),这样安装了可能有问题,虽然没有试过在高版本gcc下使用NCL到底会不会出现问题,但保险起见,我们最好还是将系统的gcc版本从4.8降至4.7。笔者在这个问题上耗费了半天时间,查阅到了很多复杂的方法都不顺利且不明所以,最后发现可以通过一个简便的方法安装低版本的gcc并将其更改为系统默认的版本(需要计算机联网)。

解决方法如下
1、在ubuntu终端中输入:

sudo apt-get install gcc-4.7

sudo命令表示需要特殊权限,在输入后可能系统要求输入用户密码,其实就是安装Ubuntu时设定的密码,亦即开机密码。输入密码时屏幕没有反应,不用管它,输完敲回车便可。在此之后如果发生权限问题,应该都可以在命令前加上sudo再试试。此时计算机开始在服务器源中下载4.7版本的gcc。下载完毕后,到gcc目录下会发现多了gcc-4.7的相关文件夹(输入gcc -v可查看gcc的目录位置)。
如果遇到了

正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       现在没有可用的软件包 gcc-4.7,但是它被其它的软件包引用了。这可能意味着这个缺失的软件包可能已被废弃,或者只能在其他发布源中找到E: 软件包 gcc-4.7 还没有可供安装的候选者

这样的错误的话,
解决方法: 在你的软件源中添加源:

sudo gedit /etc/apt/source.list

添加:deb http://cz.archive.ubuntu.com/ubuntu lucid main
保存退出,再执行一遍gcc-4.7安装语句就可以安装了,参考自sudo apt-get install E: 软件包 * 还没有可供安装的候选者,
2、接下来添加gcc的配置管理,再选择默认的gcc版本:

sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40sudo update-alternatives –config gcc

第一行后面的50表示优先级,数字越大,则对应版本在第二行输入后出来的结果中排位越靠前。输入第三行之后,出来几个选项,就会发现我们现在默认使用的就是gcc-4.7了。
以上工作都完成后,gcc降级工作应该就结束了,准备工作也已完成,此时输入gcc –-version,出来的结果是4.7.3

3、最后我们下载 ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz这个版本就ok了,完全符合要求
这里写图片描述

三、NCL安装

这里基本按照前文给出的NCL官网指导来做。
1、终端中输入:

mkdir /usr/local/ncl-6.3.0

表示在/usr/local/目录下新建一个名为ncl-6.3.0的文件夹。ncl压缩包(这里指ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz)拷贝入该文件夹中。注意,usr文件夹为只读,因此在图形界面上不好操作,需要在终端中进行,例如将压缩包从home文件夹(我放在了home中,如果在其他文件夹要修改路径)中移动到/usr/local/ncl-6.1.2文件夹中,可输入:

mv /home/ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz /usr/local/ncl-6.3.0

接着输入:

cd /usr/local/ncl-6.3.0

表示进入该文件夹。解压刚剪切到该目录中的压缩包:

tar -zxvf ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz

接下来,是官网声称“Must”的一步:设置环境变量。输入“cd”回到根目录,再输入“ls -a”,查看给出的隐藏文件列表中以“.”开头的文件,并按如下分类酌情处理:
From tcsh/csh (the file might be “.cshrc” or “.tcshrc”):

  setenv NCARG_ROOT /usr/local/ncl-6.1.2  setenv PATH $NCARG_ROOT/bin:$PATH

From bash or ksh (the file might be “.bash_profile” or “.bashrc” or “.bash_profile”):

  export NCARG_ROOT=/usr/local/ncl-6.1.2  export PATH=$NCARG_ROOT/bin:$PATH

From sh (the file might be “.bash_profile” or “.bashrc” or “.bash_profile”):

  NCARG_ROOT=/usr/local/ncl-6.1.2  PATH=$NCARG_ROOT/bin:$PATH  export NCARG_ROOT  export PATH

笔者在列表中找到了“.bashrc”,因此适用第二种情况。注意,官网没有讲清楚的是,在终端输入这两句命令是没用的,重启后再用NCL会提示“Command not found”。我们要把这两句写入.bashrc文件中。因此我们要做的是输入:

gedit ~/.bashrc

即在gedit(也可以使用vi)编辑器下将这两句命令,也就是

  export NCARG_ROOT=/usr/local/ncl-6.1.2  export PATH=$NCARG_ROOT/bin:$PATH

加入到.bashrc文件中,在文件末尾加入。
接下来要使环境变量生效,还需要在ubuntu终端执行:

source .bashrc

此时NCL安装完毕,大功即将告成。官方提供了一个检验NCL是否安装正确的方法,即输入:

  ng4ex gsun01n -clean

但这时仍可能报错,提示缺少csh,还要再安装csh(仍要联网):

  sudo apt-get install csh

完成!再输入ng4ex命令,画出图形,如下图,点击鼠标的话几个图形陆续演示,说明安装成功。

这里写图片描述

注:因为Ncl版本不同,本人在最后遇到ncl: error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory错误,该错误的意思是缺少libgfortran3的安装.
只要在最后输入

sudo apt-get install libgfortran3  

即可。

参考文章:Ubuntu12.04下安装NCL6.1.2过程(转)

0 0
原创粉丝点击