サーバインストールnetcdfの説明

5553 ワード

ブログの説明を参照して、linuxサーバにnetcdfをインストールする一般的な方法を紹介します.主な目的はデータ圧縮の機能を実現することであり、その他の詳細は公式ガイドを参照することができる.

コンパイルに必要なソースの取得


まず、必要なパッケージをインストールしてData Compressionを実装するために必要なパッケージは4つしかありません.
  • HDF5 1.8.9 or later (for netCDF-4 support)
  • zlib 1.2.5 or later (for netCDF-4 compression)
  • netcdfc (latest version)
  • netcdf-fortran(latest version)

  • 追加:必須でない:curl 7.18.0 or later(for DAP remote access client support)

    インストール


    多くのコンパイラが同時に共存する可能性があるため、ここではまずintelコンパイラを使用してコンパイルすることを指定します.

    コンパイラの指定


    linuxの場合:
    export CC=icc
    export CXX=icpc
    export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'
    export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'
    export F77=ifort
    export FC=ifort
    export F90=ifort
    export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'
    export CPP='icc -E'
    export CXXCPP='icpc -E'

    macの場合:
    export CC=icc
    export CXX=icpc
    export CFLAGS='-O3 -xHost -ip -no-prec-div'
    export CXXFLAGS='-O3 -xHost -ip -no-prec-div'
    export F77=ifort
    export FFLAGS='-O3 -xHost -ip -no-prec-div -mdynamic-no-pic'

    zlibインストール


    ここでは、後で管理を容易にするために、これらのパッケージをすべてコンパイルして/usr/local/フォルダにインストールすることを選択します.そのため、sudo権限も必要です.
    ZDIR=/usr/local/zlib    #     
    mkdir ${ZDIR}
    ./configure --prefix=${ZDIR}
    make check
    make install

    HDf 5取付

    H5DIR=/usr/local/hdf5
    mkdir ${H5DIR}
    ./configure --with-zlib=${ZDIR} --prefix=${H5DIR} -enable-fortran -enable-cxx
    make check
    make install

    ここで、hdf 5をインストールする場合は、-with-zlib=${ZDIR}が必要です.そうしないと、関連ライブラリファイルが見つかりません.また、パソコンにインストールすると、IS 90仕様では使用できないC++のコメント方式が提示される可能性があります.このエラーが発生した場合、現在の解決策は関連ファイルを見つけ、C++のコメント方式//をCのコメント方式//に変更することです.現在、インストール中に2つのファイルのうち2つを修正する必要があることが知られています.詳細はhdf 5関連構成オプションを参照してください

    HDf 4取付

             ,          hdf4 hdf5  ,      hdf4     。
       hdf4  ,       ,jpeg,szip

    jpegインストール


    上記の手順に従ってコンパイラを作成した後、jpegのWebサイトにソースパッケージをダウンロードし、解凍して実行します.
    JPEGDIR=/usr/local/jpeg
    mkdir ${JPEGDIR}
    ./configure --prefix=${JPEGDIR}
    make check
    make install

    szipインストール

    SDIR = /usr/local/szip
    mkdir ${SDIR}
    ./configure --prefix=${SDIR}
    make check
    make install

    コンパイルインストールhdf 4


    このステップでは、いくつかの問題が発生する可能性があります.注意してください./configureのパラメータ.実行前に使用することを推奨します.
    ./configure --help

    hdf 4インストールパッケージをダウンロードして解凍した後、サーバーにコンパイルに必要なyaccとflexがインストールされているかどうかを確認し、そうでない場合は、次のコードを実行してインストールします.
    # ubuntu 
    sudo apt-get install byacc
    sudo apt-get install flex
    
    # centos
    sudo yum instal byacc
    sudo yum install flex

    基本的なコンパイル条件が満たされたら、次のことを行います.
    mkdir /usr/local/hdf4
    ./configure --with-szip=/usr/local/szip --with-jpeg=/usr/local/jpeg --with-zlib=/usr/local/zlib  --disable-netcdf --enable-fortran --prefix=/usr/local/hdf4
    make check   #  source code  test      hdfnctest            ,     make check  make install     
    make install

    詳細なパラメータはnetcdfの公式紹介を参照してください

    netcdfcのインストール

    NCDIR=/usr/local/netcdf4c
    H5DIR=/usr/local/hdf5
    H4DIR=/usr/local/hdf4
    mkdir ${NCDIR}
    CPPFLAGS=-I${H5DIR}/include LDFLAGS=-L${H5DIR}/lib 
    CPPFLAGS=-I${H4DIR}/include LDFLAGS=-L${H4DIR}/lib
    export LD_LIBRARY_PATH=${H5DIR}/lib:${LD_LIBRARY_PATH}
    ./configure --prefix=${NCDIR} --enable-netcdf-4 --enable-largefile --disable-dap  #      --enable-hdf4         ,      hdf4 library,            hdf4 lib                    netcdf  hdf4          
    make check
    make install

    netcdffのインストール

    NFDIR=/usr/local/netcdf4f
    NCDIR=/usr/local/netcdf4c
    mkdir ${NFDIR}
    export CPPFLAGS="-I/usr/local/szip/include -I/usr/local/zlib/include -I/usr/local/hdf5/include -I/usr/local/netcdf4c/include"
    export LDFLAGS="-L/usr/local/szip/lib -L/usr/local/zlib/lib -L/usr/local/hdf5/lib -L/usr/local/netcdf4c/lib"
    export LD_LIBRARY_PATH=${NCDIR}/lib:${LD_LIBRARY_PATH}
    CPPFLAGS=-I${NCDIR}/include LDFLAGS=-L${NCDIR}/lib ./configure --prefix=${NFDIR} --disable-fortran-type-check
    make check
    make install

    インストール結果

    nc-config -all

    注意事項


    以上のコードの実行にはsudo権限が必要ですが、sudo実行を使用すると環境変数がリセットされるため、エラーが発生します.インストール時にsudo-Eを使用することを推奨します
    #-E   man page     
    -E
    
    The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.

    簡単に言えば、-Eオプションを加えると、ユーザーはsudoの実行時に現在のユーザーがすでに存在する環境変数を保持することができ、sudoにリセットされない.また、ユーザーが指定した環境変数に権限がない場合、エラーが発生する.
    しかし実際にインストールすると、intelコンパイラ環境変数の問題で、make installのときにicpc command not foundエラーが発生したため、事前にコンパイルしたターゲットフォルダ権限を設定してから、上記のスクリプトを直接実行し、sudo権限の使用をできるだけ避けるのが最善の方法だと思います.また、インストールの過程で、上記のいくつかのライブラリがリンクをコンパイルする際にバージョンの問題で正常にコンパイルできないことに気づきました.ここで私のコンパイルパッケージのバージョンを示します.
  • szip-2.1.1.tar.gz
  • zlib-1.2.11.tar.gz
  • hdf5-1.10.4.tar.gz
  • jpeg-9c-droppatch.tar.gz
  • szip-2.1.1.tar.gz
  • hdf-4.2.14.tar.gz
  • netcdf-4.6.1.tar
  • netcdf-fortran-4.4.4.tar.gz