GMTのインストール(開発版)

GMT6のインストール
GMT6のインストール方法について説明しています

多くの方々は、

sudo apt install -y build-essential cmake libcurl4-gnutls-dev libnetcdf-dev gdal-bin libgdal-dev libfftw3-dev libpcre3-dev liblapack-dev libblas-dev libglib2.0-dev ghostscript ghostscript-X graphicsmagick ffmpeg xdg-utils

として、GMTをビルドしてからインストールをするわけですが、Ubuntuの公式リポジトリはバージョンアップが遅いことが欠点として挙げられます。

たとえば、

sudo apt install gmt gmt-gshhg gmt-dcw

Ubuntu18.04 で実行するとインストールされるのはGMT5だったりします。

極力自分でビルドする

特にGDALはPythonで扱う際に厄介です。

python3 -m pip install gdal

とインストールすると高確率でエラーを吐きます。
PythonのGDALとLinuxのGDALのバージョンは同じものにする必要があるからです。

たとえば、aptで入るGDALはUbuntu20.04だと3.0.4ですが、
現在のGDALの最新バージョンやpipが入れようとするGDALは3.2.0です。

というわけで、極力自分自身で最新版をビルドしてインストールする方法を以下に書いていきます。

PROJのインストール

Download — PROJ 7.2.0 documentation

PROJとは測地系変換ライブラリです。

aptなら

sudo apt install proj-bin

で入ります。

ビルドするなら、

echo 'PATH=$PATH:/usr/local/proj/bin' >> ~/.bashrc
PROJ_VERSION="8.0.1"
wget https://download.osgeo.org/proj/proj-${PROJ_VERSION}.tar.gz
tar xzvf proj-${PROJ_VERSION}.tar.gz
cd proj-${PROJ_VERSION}
sudo ./configure --prefix=/usr/local/proj
sudo make -j4
sudo make install -j4

でインストールできます。

GDALのインストール

Download — GDAL documentation

これが面倒くさいです。

まず、

sudo apt install libopenjp2-7 libopenjp2-7-dev libopenjp2-tools\ 
libtiff-dev ogdi-bin libhdf4-dev curl libssl-dev \
libpng-dev libgeotiff-dev libgif-dev libcurl4-gnutls-dev

で依存するパッケージをインストールします。
これすらもビルドするのは面倒くさいので省略します。

そのあと、

GDAL_VERSION="3.3.0"
wget https://github.com/OSGeo/gdal/releases/download/v${GDAL_VERSION}/gdal-${GDAL_VERSION}.tar.gz
tar xzvf gdal-${GDAL_VERSION}.tar.gz
cd gdal-${GDAL_VERSION}
./autogen.sh
sudo ./configure --prefix=/usr/local/gdal
sudo make -j4
sudo make install

GDALのビルドにはかなりの時間と負荷がかかります。

GMTのインストール

最後にGMTです。

GMT_VERSION="6.2.0"
GSHHG_VERSION="2.3.7"
DCW_VERSION="1.1.4"
GSHHG_ROOT=/home/$USER/gshhg-gmt-${GSHHG_VERSION}
DCW_ROOT=/home/$USER/dcw-gmt-${DCW_VERSION}
GDAL_ROOT=/usr/local/gdal/
wget "http://www.scc.u-tokai.ac.jp/gmt/gmt-${GMT_VERSION}-src.tar.gz"
wget "http://www.scc.u-tokai.ac.jp/gmt/gshhg-gmt-${GSHHG_VERSION}.tar.gz"
wget "http://www.scc.u-tokai.ac.jp/gmt/dcw-gmt-${DCW_VERSION}.tar.gz"
tar xvzf gshhg-gmt-${GSHHG_VERSION}.tar.gz
tar xvzf dcw-gmt-${DCW_VERSION}.tar.gz
tar xvzf gmt-${GMT_VERSION}-src.tar.gz
cd gmt-${GMT_VERSION}
cat ./cmake/ConfigUserTemplate.cmake | \
sed -e 's%\#set (GSHHG_ROOT "gshhg_path"%'"set (GSHHG_ROOT ${GSHHG_ROOT}"'%g' | \
sed -e 's/\#set (COPY_GSHHG FALSE)/set (COPY_GSHHG TRUE)/g' | \
sed -e 's%\#set (DCW_ROOT "dcw-gmt_path"%'"set (DCW_ROOT ${DCW_ROOT}"'%g' | \
sed -e 's/\#set (COPY_DCW FALSE)/set (COPY_DCW TRUE)/g' | \
sed -e 's%\#set (GDAL_ROOT "gdal_install_prefix"%'"set (GDAL_ROOT ${GDAL_ROOT}"'%g' \
> ./cmake/ConfigUser.cmake
cat ./cmake/ConfigUserAdvancedTemplate.cmake | \
sed -e 's%\#set (GDAL_ROOT "gdal_install_prefix"%'"set (GDAL_ROOT ${GDAL_ROOT}"'%g' \
> ./cmake/ConfigUserAdvanced.cmake
mkdir build
cd build
sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -L
ncpu=$(nproc)
sudo make -j${ncpu}
sudo make -j${ncpu} install

これでインストールができるはずです。

GMTの開発版をインストールする

GMTの開発版はgitを使うことでインストールできます。
そこまでメリットはない気がしますが、こだわりたい方は。

# GMT_VERSION="6.2.0"
GSHHG_VERSION="2.3.7"
DCW_VERSION="1.1.4"
GSHHG_ROOT=/home/$USER/gshhg-gmt-${GSHHG_VERSION}
DCW_ROOT=/home/$USER/dcw-gmt-${DCW_VERSION}
GDAL_ROOT=/usr/local/gdal/
git clone https://github.com/GenericMappingTools/gmt.git
wget "http://www.scc.u-tokai.ac.jp/gmt/gshhg-gmt-${GSHHG_VERSION}.tar.gz"
wget "http://www.scc.u-tokai.ac.jp/gmt/dcw-gmt-${DCW_VERSION}.tar.gz"
tar xvzf dcw-gmt-${DCW_VERSION}.tar.gz
tar xvzf gmt-${GMT_VERSION}-src.tar.gz
cd gmt
cat ./cmake/ConfigUserTemplate.cmake | \
sed -e 's%\#set (GSHHG_ROOT "gshhg_path"%'"set (GSHHG_ROOT ${GSHHG_ROOT}"'%g' | \
sed -e 's/\#set (COPY_GSHHG FALSE)/set (COPY_GSHHG TRUE)/g' | \
sed -e 's%\#set (DCW_ROOT "dcw-gmt_path"%'"set (DCW_ROOT ${DCW_ROOT}"'%g' | \
sed -e 's/\#set (COPY_DCW FALSE)/set (COPY_DCW TRUE)/g' | \
sed -e 's%\#set (GDAL_ROOT "gdal_install_prefix"%'"set (GDAL_ROOT ${GDAL_ROOT}"'%g' \
> ./cmake/ConfigUser.cmake
cat ./cmake/ConfigUserAdvancedTemplate.cmake | \
sed -e 's%\#set (GDAL_ROOT "gdal_install_prefix"%'"set (GDAL_ROOT ${GDAL_ROOT}"'%g' \
> ./cmake/ConfigUserAdvanced.cmake
mkdir build
cd build
sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -L
ncpu=$(nproc)
sudo make -j${ncpu}
sudo make -j${ncpu} install

コメント

タイトルとURLをコピーしました