サーバインストール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の場合:
macの場合:
ここでは、後で管理を容易にするために、これらのパッケージをすべてコンパイルして/usr/local/フォルダにインストールすることを選択します.そのため、sudo権限も必要です.
ここで、hdf 5をインストールする場合は、-with-zlib=${ZDIR}が必要です.そうしないと、関連ライブラリファイルが見つかりません.また、パソコンにインストールすると、IS 90仕様では使用できないC++のコメント方式が提示される可能性があります.このエラーが発生した場合、現在の解決策は関連ファイルを見つけ、C++のコメント方式//をCのコメント方式//に変更することです.現在、インストール中に2つのファイルのうち2つを修正する必要があることが知られています.詳細はhdf 5関連構成オプションを参照してください
上記の手順に従ってコンパイラを作成した後、jpegのWebサイトにソースパッケージをダウンロードし、解凍して実行します.
このステップでは、いくつかの問題が発生する可能性があります.注意してください./configureのパラメータ.実行前に使用することを推奨します.
hdf 4インストールパッケージをダウンロードして解凍した後、サーバーにコンパイルに必要なyaccとflexがインストールされているかどうかを確認し、そうでない場合は、次のコードを実行してインストールします.
基本的なコンパイル条件が満たされたら、次のことを行います.
詳細なパラメータはnetcdfの公式紹介を参照してください
以上のコードの実行にはsudo権限が必要ですが、sudo実行を使用すると環境変数がリセットされるため、エラーが発生します.インストール時にsudo-Eを使用することを推奨します
簡単に言えば、-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
コンパイルに必要なソースの取得
まず、必要なパッケージをインストールしてData Compressionを実装するために必要なパッケージは4つしかありません.
追加:必須でない: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権限の使用をできるだけ避けるのが最善の方法だと思います.また、インストールの過程で、上記のいくつかのライブラリがリンクをコンパイルする際にバージョンの問題で正常にコンパイルできないことに気づきました.ここで私のコンパイルパッケージのバージョンを示します.