编译和安装

操作步骤

以下安装使用系统GCC,请勿加载GCC9.3环境。

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 执行以下命令安装NCL及其依赖包。

    yum install ncl.aarch64 ncl-common.noarch ncl-devel.aarch64 ncl-examples.noarch -y

  3. 执行以下命令设置环境变量。

    export NCARG_FONTCAPS=/usr/lib64/ncarg/fontcaps
    export NCARG_GRAPHCAPS=/usr/lib64/ncarg/graphcaps
    export NCARG_ROOT=/usr
    export NCARG_DATABASE=/usr/lib64/ncarg/database
    export NCARG_LIB=/usr/lib64/ncarg
    export NCARG_NCARG=/usr/share/ncarg
    export EXTRA_CCOPTIONS=" -fsigned-char "$EXTRA_CCOPTIONS

  4. 执行以下命令验证程序。

    ng4ex xy01n -W png

    若NCL主程序报错(如下所示),则需要重新编译主程序。

  5. 执行以下命令下载NCL的RPM源码包“ncl-6.3.0-6.el7.src.rpm”

    yum install -y yum-utils
    yumdownloader --source ncl

  6. 执行以下命令重新编译NCL并解压NCL软件包。

    rpm -ivh ncl-6.3.0-6.el7.src.rpm
    cd ~/rpmbuild/SOURCES
    tar zxvf ncl_ncarg-6.3.0.tar.gz

  7. 执行以下命令编辑“/libncarg_c/yMakefile”文件。

    1. 打开“/libncarg_c/yMakefile”文件。
      vim ncl_ncarg-6.3.0/common/src/libncarg_c/yMakefile
    2. 按“i”进入编辑模式,修改第35行的内容。
      #elif (defined(ia64) || defined(x86_64) || defined(amd64) || defined(aarch64))
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  8. 执行以下命令编辑“/nio/yMakefile”文件。

    1. 打开“/nio/yMakefile”文件。
      vim ncl_ncarg-6.3.0/ni/src/lib/nio/yMakefile
    2. 按“i”进入编辑模式,修改第85行的内容。
      #if defined(IRIX64) || defined(x86_64) || defined(__LP64__) || defined(aarch64)
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  9. 执行以下命令编辑“/ncl/yMakefile”文件。

    1. 打开“/ncl/yMakefile”文件。
      vim ncl_ncarg-6.3.0/ni/src/ncl/yMakefile
    2. 按“i”进入编辑模式,修改如下内容。
      • 修改第46行:
      EXTRA_CCOPTIONS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fsigned-char
      • 修改第113行:
      #if defined(IRIX64) || defined(x86_64) || defined(ia64) || defined(__LP64__) || defined(aarch64)
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  10. 执行以下命令删除原来的tar包,将修改过的源码打包。

    rm -f ncl_ncarg-6.3.0.tar.gz
    tar zcvf ncl_ncarg-6.3.0.tar.gz ncl_ncarg-6.3.0
    rm -rf ncl_ncarg-6.3.0

  11. 重新编译NCL。

    1. 执行以下命令进入“SPECS”目录。
      cd ~/rpmbuild/SPECS
    2. 执行以下命令修改“ncl.spec”文件。
      vim ncl.spec
    3. 按“i”进入编辑模式,在文件末尾添加以下内容。
      %define __debug_install_post   \
      %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
      %{nil}

      修改如下图所示。

    4. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 执行以下命令进行打包编译。
      rpmbuild -ba ncl.spec

      若报错缺少依赖,根据提示依次Yum安装即可,如下所示。

      yum install netcdf-fortran-devel hdf-static hdf-devel g2clib-static gdal-devel proj-devel imake libXaw-devel flex-static udunits2-devel

      直到rpmbuild -ba ncl.spec可以成功执行。如下图中出现“exit 0”,则表明成功执行。

  12. 执行以下命令安装NCL(需先删除原先安装的NCL)。

    yum erase ncl.aarch64 ncl-common.noarch ncl-devel.aarch64 ncl-examples.noarch -y

    cd ~/rpmbuild/RPMS
    cp noarch/* aarch64/
    cd aarch64
    yum localinstall ncl-6.3.0-6.el7.aarch64.rpm ncl-common-6.3.0-6.el7.noarch.rpm ncl-debuginfo-6.3.0-6.el7.aarch64.rpm ncl-devel-6.3.0-6.el7.aarch64.rpm ncl-examples-6.3.0-6.el7.noarch.rpm -y