end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

install postgis & mapserver from source to postgres 14.1

先程の上記entryの続き & 前回2017年のinstall postgis & mapserver の2022年版です。

2017年に実施した際と異なり、 compilerが依存moduleを上手く見つけられず、 「from source」とタイトルに記載しておきながら、「yum」も使用しており、 結果は怪しい気がします。

目次

postgis

http://postgis.net/source/

Prerequisites

geos

$ wget http://download.osgeo.org/geos/geos-3.10.1.tar.bz2
$ tar -xvf geos-3.10.1.tar.bz2
$ cd geos-3.10.1
$ less INSTALL.md

$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make
$ make check
$ sudo make install

$ sudo vi /etc/ld.so.conf
/usr/local/lib64  ## ADD

$ sudo ldconfig

proj

$ wget --no-check-certificate \
  https://www.sqlite.org/2022/sqlite-autoconf-3370200.tar.gz
$ tar -xvf sqlite-autoconf-3370200.tar.gz
$ cd sqlite-autoconf-3370200

$ ./configure \
  --enable-editline --enable-readline --enable-session --enable-debug
$ make
$ sudo make install
$ sudo yum install libtiff-devel
$ wget --no-check-certificate \
  https://download.osgeo.org/proj/proj-8.2.0.tar.gz
$ tar -xvf proj-8.2.0.tar.gz
$ cd proj-8.2.0

$ export SQLITE3_LIBS="-L/usr/local/lib -lsqlite3"

$ ./configure
$ make
$ make check
$ sudo make install

GDAL

wget https://github.com/OSGeo/gdal/releases/download/v3.4.1/gdal-3.4.1.tar.gz
tar -xvf gdal-3.4.1.tar.gz
cd gdal-3.4.1
./configure --without-sqlite3 ※1
make
sudo make install

※1 make時に以下のエラーが表示され、※2を参考に sqlite の configure オプションを変更したものの、 解消しなかった為、「--without-sqlite3」を付加しています。

$ make
 :
/home/end0tknr/tmp/gdal-3.4.1/.libs/libgdal.so: undefined reference to `sqlite3_column_origin_name'
/home/end0tknr/tmp/gdal-3.4.1/.libs/libgdal.so: undefined reference to `sqlite3_column_table_name'
collect2: error: ld returned 1 exit status
make[1]: *** [gdalinfo] Error 1
make[1]: Leaving directory `/home/end0tknr/tmp/gdal-3.4.1/apps'
make: *** [apps-target] Error 2

※2 - refer to https://www.sqlite.org/compile.html#enable_column_metadata - https://ytyaru.hatenablog.com/entry/2021/03/05/000000

JSON-C

$ yum install json-c-devel

$ wget https://github.com/json-c/json-c/archive/refs/tags/json-c-0.15-20200726.tar.gz

less README.md

$ mkdir json-c-build
$ cd json-c-build
$ cmake ..
$ make
$ make test
$ sudo make install

libxml2-devel

$ sudo yum install libxml2-devel

postgis

$ wget --no-check-certificate \
  https://download.osgeo.org/postgis/source/postgis-3.2.0.tar.gz


$ tar -xvf postgis-3.2.0.tar.gz
$ cd postgis-3.2.0
$ ./configure \
    --with-pgsql=/usr/local/pgsql/bin/pg_config \
    --with-pgconfig=/usr/local/pgsql/bin/pg_config \
    --without-protobuf
$ make
$ sudo make install


$ /usr/local/pgsql/bin/createdb -U postgres -E utf8 gis_test
$ /usr/local/pgsql/bin/psql -U postgres -d gis_test \
    -f /usr/local/pgsql/share/contrib/postgis-3.2/postgis.sql
$ /usr/local/pgsql/bin/psql -U postgres -d gis_test \
    -f /usr/local/pgsql/share/contrib/postgis-3.2/spatial_ref_sys.sql

mapsserver

http://mapserver.org/installation/unix.html

Prerequisites

libpng

$ wget --no-check-certificate \
$   https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz
$ tar -xvf libpng-1.6.37.tar.gz
$ cd libpng-1.6.37
$ ./configure LDFLAGS="-L/usr/local/lib -lz" ※1
$ make
$ make check
$ sudo make install

※1 make時に以下のerrorとなる為、LDFLAGSを追加

$ make
 :
./.libs/libpng16.so: undefined reference to `inflateValidate'
collect2: error: ld returned 1 exit status
make[1]: *** [pngfix] Error 1
make[1]: Leaving directory `/home/end0tknr/tmp/libpng-1.6.37'
make: *** [all] Error 2

freetype

$ wget --no-check-certificate \
  https://download.savannah.gnu.org/releases/freetype/freetype-2.11.1.tar.gz
$ tar -xvf freetype-2.11.1.tar.gz
$ cd freetype-2.11.1
$ ./configure
$ make
$ sudo make install

libjpeg

$ wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz
tar -xvf jpegsrc.v9d.tar.gz
cd jpeg-9d
./configure
make
make check
sudo make install

FriBidi

sudo yum install libtool

$ wget https://github.com/fribidi/fribidi/archive/refs/tags/v1.0.11.tar.gz
$ tar -xvf v1.0.11.tar.gz
$ cd fribidi-1.0.11
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install

cario

$ wget --no-check-certificate \
  https://www.cairographics.org/releases/cairo-1.16.0.tar.xz
$ tar -xvf cairo-1.16.0.tar.xz
$ cd cairo-1.16.0

$ ./configure
  :
checking for cairo's PNG functions feature... 
configure: WARNING: Could not find libpng in the pkg-config search path
checking whether cairo's PNG functions feature could be enabled... no
configure: error: recommended PNG functions feature could not be enabled

$ sudo yum install libpng-devel  ※1
$ sudo yum install libpng-pixman
$ sudo yum install freetype-devel

$ ./configure
$ make
$ make check ※2
$ sudo make install

※1 libpng等は、sourceから install 済でしたが、 cairoがこれを見つけられない為、sudo yum install しました。

※2 make checkでは、failがありましたが、無視して make installしました。

harfbuzz

2022/1時点の最新は、ver.3.2.0ですが、make時にerrorとなった為、 ver.2系を使用しています。

$ wget https://github.com/harfbuzz/harfbuzz/archive/refs/tags/2.9.1.tar.gz
$ cd harfbuzz-3.2.0
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install

mapserver

$ sudo yum install harfbuzz-devel

$ wget --no-check-certificate \
  https://download.osgeo.org/mapserver/mapserver-7.6.4.tar.gz
$ tar -zxvf mapserver-7.6.4.tar.gz
$ cd mapserver-7.6.4

$ less INSTALL.CMAKE

$ mkdir build
$ cd build

$ cmake -DCMAKE_PREFIX_PATH=/usr/local/pgsql \
        -DWITH_PROTOBUFC=0 \
        -DWITH_GIF=0 \
    -DWITH_FCGI=0 \
        ..
$ make
$ sudo make install