CENTOS8にJuman++とElasticsearch（＆Kibana）とPython(Jupyter notebook)を入れる

#タイトルにあるようなことをする理由
Bertをぐりぐり使ってあれこれするのに必要な環境を以前作ったんですが、
（↓これ）
https://qiita.com/shiraitsukasa/items/53dbf792696c69a77d96

すでにある環境を一部間借りする感じでした。
そうではなくて、もっとゼロから環境構築する方法を記録しておこうと思ってみたしだいです。

Bertの設定とかPythonの書いたのとかは先述のところを御覧ください。
ここから書き記すのは、基本環境設定のみであって、コーディングとかはないです。

#環境
CentOS 8.1.1911
CUIがコワいので、ServerGUIでセットアップしました。
VMware(R) Workstation 15 Player(15.5.5 build-16285975)の仮想マシン
３万円台のM●USEコンピュータのB5ノート上で作成。
もう結構前のPCだからファンがひゃーひゃー言ってるのをむりやり動かしました。
ごめんねB5ノート。
#前設定
何かと色々入れておく必要があるようです。
ちなみに以下はsuやsudoは省略してあります。
全然関係ないけどsuとかsudoってなんて読むんだろ。chmodとかも。

```bash
dnf install -y libkkc libkkc-data ibus-kkc 
dnf install -y zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel git
```
#Juman++をインストール
gccとboostが必須らしいです。CentOSではデフォでバージョンを満たしていたので、そのままdnfにおまかせしました。

```bash
dnf install -y gcc gcc-c++ boost boost-devel make
```

gperftoolsとlibunwindを入れると高速化するらしいです。これも入れておこう。

```bash
dnf install -y https://extras.getpagespeed.com/release-el8-latest.rpm
dnf install -y gperftools libunwind
```
そういやCMakeも必要なんでした。

```bash
wget https://cmake.org/files/v3.15/cmake-3.15.2.tar.gz
tar zxvf cmake-3.15.2.tar.gz
cd cmake-3.15.2
./bootstrap --prefix=/opt/cmake --no-system-libs
make -j4
sudo make install
```
CMakeはパスを通しておく必要があります

```bash
vi /etc/profile
```
profileの末尾に以下を追記して保存します。

```vim
PATH=$PATH:/opt/cmake/bin
```
直ちに反映させるには以下のコマンドを実行します。
いやちょっとなあという人は再起動でも構いません。

```bash
source /etc/profile
```
やれやれです。やっとこれでJuman++をインストールできます。

```bash
#ソースコード取得
wget https://github.com/ku-nlp/jumanpp/releases/download/v2.0.0-rc3/jumanpp-2.0.0-rc3.tar.xz

# 解凍してディレクトリに入る
tar xvf jumanpp-2.0.0-rc3.tar.xz 
cd jumanpp-2.0.0-rc3
mkdir build
cd build

# ビルド
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make
sudo make install
```
分かち書きができることを確認してください。

```bash
echo "こんなふうに分かち書きを試してみる" | jumanpp
```
#Elasticsearchをインストールする
その前にJavaをインストールしないとです。

```bash
dnf -y install java-1.8.0-openjdk-devel
```
ちゃんとインストールができたかを確認してください。

```bash
java -version
```
事前にrpmレポジトリの設定をします。

```bash
#KEYのインポート
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
#レポジトリの編集
vi /etc/yum.repos.d/elasticsearch.repo
```
/etc/yum.repos.d/elasticsearch.repoに、以下のとおり書いて保存します。

```vim
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
```
そしたらインストールです。一緒にKibanaも入れてしまいます。
サービス化もしてしまいましょう。
Elasticsearchがちゃんと起動していないと、Kibanaはちゃんと動きません。
ああ、それから、Kibanaの初期起動は結構重いです。気長に待ちましょう。

```bash
#インストール
dnf -y install elasticsearch kibana

#Elasticsearchのサービス登録と開始
systemctl enable elasticsearch
systemctl start elasticsearch

#systemctl status elasticsearchでサービスが起動しているか確認すると良い

#Kibanaのサービス登録と開始
systemctl enable kibana
systemctl start kibana
```
Kibanaが何故かうまく行かなかったりする場合があるので、その場合はシステム再起動して、サービスのステータスを確認したほうがいいみたいです。

ブラウザから
http://localhost:5601/
にアクセスして、Kibanaga起動することを確認してください。

#Pythonをインストールする
Bertとか動かすのがわかっているので、Anacondaで設定することにしました。
機械学習や深層学習じゃない方からPythonに入ってきた人なんかは、AnacondaよりもPythonを丁寧に設定することを好む傾向にある気がします。
個人的にはテンソルをぶん回せればいいので、むしろAnacondaを好んで使っています。

ウィザード方式でインストールします。
その他設定もまとめてやってしまいます。

```bash
#ダウンロード
curl -OR https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
#実行権限を付与
chmod +x Anaconda3-2020.02-Linux-x86_64.sh
#一時的にアクセス権を与えて…
chmod o+w /opt
#シェルスクリプトを実行
./Anaconda3-2020.02-Linux-x86_64.sh


######################################################
#以下、順番に聞いてきます

#ライセンス確認
#Do you accept the license terms? [yes|no]
#[no] >>> yes 

#インストールパスの確認
#[/home/elasticsearch/anaconda3] >>> /opt/anaconda3

#とりあえずno
#Do you wish the installer to initialize Anaconda3
#by running conda init? [yes|no]
#[no] >>> no
#####################################################

#アクセス権戻す
sudo chmod o-w /opt
```
インストールはここまでですが、パスを通しておきます。
CMakeと同じように…

```bash
vi /etc/profile
```
で、末尾に以下のとおり記載して保存してください。

```vim
#path for python
PATH=/opt/anaconda3/bin:$PATH
```
最後に「source /etc/profile」で環境変数を即時反映させてもいいけど、一応ここで再起動したほうがいいかもしれません。

```bash
jupyter notebook
```
で、jupyter notebookが起動することを確認してください。
#おわりに
というわけでなんとか設定できました。
でも、３万円B5ノート内じゃ当然ちゃんとしたGPU環境はないわけで、やってはみたものの今後どうしようかと悩む日々であります。