1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GeoNLPのインストール手順まとめ

Last updated at Posted at 2019-12-23

GeoNLPのインストール手順をまとめています。(前半はLinuxのお作法的な部分なのであまり本題とは関係ありませんが)
GeoNLPの説明とそれを利用した検証の結果はこちらのページに書きました。

CentOSの初期設定

SSHの設定変更

# nanoエディタをインストール
$ sudo yum -y install nano

# SSHサーバーの設定ファイルsshd_configを開く
$ sudo nano /etc/ssh/sshd_config

デフォルトポート番号は攻撃を受けやすいので、変更する。

変更前 変更後
#Port 22 Port {任意の番号}
#PermitRootLogin yes PermitRootLogin no

SELinuxの設定変更

# SELinux設定変更コマンドのインストール
$ sudo yum install -y policycoreutils-python
# 先の任意番号を許可
$ sudo semanage port -a -t ssh_port_t -p tcp {任意の番号}
# 設定を確認
$ sudo semanage port -l | grep ssh
ssh_port_t                     tcp      {任意の番号}, 22
$ sudo systemctl restart sshd.service

ファイアウォールの設定

通常であれば、続いてfirewalld(ファイアウォール)の設定を変更し、先のポート番号を許可させるが、AWS EC2の場合はAWS謹製の「セキュリティグループ」がファイアウォールの働きを担保しているため、firewalldは設定しない(そもそもインストールすらされていない)
AWS EC2インスタンス一覧の画面 > 左メニューにある「セキュリティグループ」> 任意のセキュリティグループ選択 > インバウンド > 編集 から、
「カスタム TCP ルール」を追加する。

パッケージの更新

$ sudo yum -y update

パッケージの自動更新設定

# crontabによるYUM自動更新を行うパッケージのインストール
$ sudo yum -y install yum-cron
$ sudo nano /etc/yum/yum-cron.conf
変更前 変更後 内容
apply_updates = no apply_updates = yes 自動アップデートをON
update_cmd = default update_cmd = security 自動アップデートをセキュリティアップデートに限定
# yum-cronを起動
$ sudo systemctl start yum-cron
# 自動起動をON
$ sudo systemctl enable yum-cron

不要なサービスを停止

「サービス」は、OS本体と独立可能なサブシステムのこと。
デフォルトで起動されているサービスのうち、不要なものはセキュリティリスクになるため、OFFにする。
下記ではPostfixをOFFにした。(Linuxで標準的に使用されているメールサーバー)

# 有効化されているサービスを一覧表示
$ systemctl list-unit-files --type service | grep enabled

# 不要なサービスの起動状態を確認
$ systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-10-22 01:05:44 UTC; 2h 3min ago
 Main PID: 3930 (master)

# 不要なサービスの停止
$ sudo systemctl stop postfix.service

# 自動起動をOFF
$ sudo systemctl disable postfix.service

# ステータス確認
$ systemctl status postfix.service

# 自動起動を再度ONにした場合:
$ sudo systemctl enable postfix

ロケール・タイムゾーンの設定

# 現在のシステムロケールを確認
$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us
# システムロケールをjpに変更
$ sudo localectl set-locale LANG=ja_JP.utf8
$ localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: us
      X11 Layout: us
# タイムゾーンの変更
$ timedatectl status
$ sudo timedatectl set-timezone Asia/Tokyo

GeoNLPで使用するパッケージのインストール

# boostのインストール
$ sudo yum install -y gcc-c++ boost boost-devel

# SQLite3のインストール
$ sudo yum install -y sqlite3-devel

# automakeのインストール
$ sudo yum install -y automake

# autoconfのインストール
$ sudo yum install -y autoconf

MeCabのインストール

参考:CentOS7.6にMeCab+ipadic+neologd+pythonのmecabモジュールを丁寧にインストールする。

# 関連ライブラリのインストール
$ sudo yum install -y  bzip2 bzip2-devel gcc gcc-c++ git make wget curl openssl-devel readline-devel zlib-devel patch file

# 作業フォルダを作成して移動
$ mkdir -p ~/source/mecab
$ cd ~/source/mecab

# ソースのダウンロード
$ wget 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE' -O mecab-0.996.tar.gz

# 解凍
$ tar zxvf mecab-0.996.tar.gz

# インストール先フォルダを作成
$ cd mecab-0.996
$ sudo mkdir -p /opt/mecab

# configureの実行
$ ./configure --prefix=/opt/mecab --with-charset=utf8 --enable-utf8-only

# コンパイル
$ make

# インストール
$ sudo make install

# MeCab実行ファイルをパスに追加
$ echo "export PATH=/opt/mecab/bin:\$PATH" >> ~/.bashrc
$ source ~/.bashrc

# mecabのライブラリにリンク作成
$ sudo bash -c "echo \"/opt/mecab/lib\" > /etc/ld.so.conf.d/libmecab.conf"
$ sudo ldconfig

NAIST辞書のインストール

参考:MeCabのセットアップ

# ソースのダウンロード
$ wget http://iij.dl.sourceforge.jp/naist-jdic/53500/mecab-naist-jdic-0.6.3b-20111013.tar.gz

# 解凍
$ tar xvzf mecab-naist-jdic-0.6.3b-20111013.tar.gz

# configureの実行
$ cd mecab-naist-jdic-0.6.3b-20111013
$ ./configure --with-mecab-config=/opt/mecab/bin/mecab-config --with-charset=utf8

# コンパイル
$ make

# インストール
$ sudo make install

# 辞書の参照先を変更
$ mecab -D
$ sudo nano /opt/mecab/etc/mecabrc
変更前 変更後
dicdir = /opt/mecab/lib/mecab/dic/ipadic dicdir = /opt/mecab/lib/mecab/dic/naist-jdic

SQLite3のインストール

参考:Amazon Linux 2でSQLite3を最新バージョンにする

$ wget https://www.sqlite.org/2019/sqlite-autoconf-3270100.tar.gz
$ tar xvfz sqlite-autoconf-3270100.tar.gz
$ cd sqlite-autoconf-3270100

# インストール先フォルダを作成
$ sudo mkdir -p /opt/sqlite3

# configureの実行
$ ./configure --prefix=/opt/sqlite3

# コンパイル
$ make

# インストール
$ sudo make install

# 元からインストールされていた方をみにいってしまうので、シンボリックリンクを貼る
$ find /usr/ -name sqlite3
/usr/bin/sqlite3
/usr/lib64/python2.7/sqlite3
$ mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
$ ln -s /opt/sqlite3/bin/sqlite3 /usr/bin/sqlite3
$ sqlite3 --version
3.27.1 2019-02-08 13:17:39 0eca3dd3d38b31c92b49ca2d311128b74584714d9e7de895b1a6286ef959a1dd

DAMSのインストール

東京大学空間情報科学研究センターサイトの引用

ジオコーダDAMS(Distributed Address Matching System)は、住所文字列を経緯度に変換する「ジオコーディング」機能を提供するソフトウェアです。

# 作業フォルダを作成して移動
$ mkdir -p ~/source/dams
$ cd ~/source/dams

# ソースのダウンロード
$ wget http://newspat.csis.u-tokyo.ac.jp/download/dams-4.3.3.tgz

# 解凍
$ gzip -dc dams-4.3.3.tgz | tar xf -
$ cd dams-4.3.3

# 利用条件を確認
$ cat COPYING
# インストール先フォルダを作成
$ sudo mkdir -p /opt/dams

/home/centos/source/dams/dams-4.3.3

# configureの実行
$ ./configure --prefix=/opt/dams --with-charset=UTF8
% ./configure --with-charset=UTF8 LIBS=-liconv CPPFLAGS=-I/usr/local/include 


# コンパイル
$ export LIBS=-liconv
$ make
# テキスト位置参照データからバイナリ位置参照データを作成
$ make dic

# インストール
$ sudo make install

(GDAL を利用する場合)GDALのインストール

# EPEL リポジトリを追加
$ sudo rpm -Uvh https://download.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install -y gdal-devel

#GeoNLPのインストール

# 作業フォルダを作成して移動
$ mkdir -p ~/source/geonlp
$ cd ~/source/geonlp

# ソースのダウンロード
$ wget https://geonlp.ex.nii.ac.jp/software/geonlp-1.2.0.tgz

# 解凍
$ gzip -dc geonlp-1.2.0.tgz | tar xfv -

# インストール先フォルダを作成
$ cd geonlp-1.2.0
$ sudo mkdir -p /opt/geonlp

# configureの実行
$ cd ~/source/geonlp/geonlp-1.2.0
$ ./configure --prefix=/opt/geonlp LDFLAGS="-L/opt/mecab/lib -L/opt/sqlite3/lib" CXXFLAGS="-I/opt/mecab/include -I/opt/sqlite3/include"

$ ./configure --prefix=/opt/geonlp LDFLAGS="-L/opt/mecab/lib -L/opt/sqlite3/lib -L/usr/lib64" INCLUDE="-I/opt/mecab/include -I/opt/sqlite3/include -I/usr/include" CXXFLAGS="-I/opt/mecab/include -I/opt/sqlite3/include -I/usr/include"

# コンパイル
$ make

# インストール
$ sudo make install
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?