RASPIで開発系を構築
「転職」を機にメイン端末(Mac)を買替えた。ついでにiPad(Air)も買ったのだがその話はまた別の機会に。MacBook Proの最新機種でスペックは16GB Memory/1TB SSDというハイスペック、当然CPUはIntelからApple Silicon(M1)へと変更されている。Microsoft OfficeなどのOA系はApple Silicon(M1)でもほとんど問題なく使える。。。肝心なのはVMwareが稼働するかどうかだが、残念ながら現時点ではVMware FusionのM1対応はRosetta経由でUbuntuのARM64は稼働しない。何が困るかというとブログとウィキの開発環境が無くなること。本体のバージョンアップの確認やプラグインやエクステンションなどの拡張機能のバグ修正と日本語対応などの作業をいきなり本番環境で実施して不具合を起こすと閲覧不可になる可能性もあり、作業や確認の為の環境は個人サーバーであっても必須。
VMwareのTechPreview 2021 M1といういわゆるベータ版が公開されていたでの、早速ダウンロードしてインストールしてみる。VMware自体は稼働するものの、Ubuntuのインストールでいろいろと不具合が発生する。バージョンを上げてみたり、ググってみたりと試行錯誤するものの安定稼働には程遠い(トホホ)。VMware Fusionは正式対応するまで待つことにする。そこで3台目を手に入れたラズベリーパイに挑戦してみることに。ちなみにラズベリーパイもApple Siliconの基になったARMアーキテクチャベースのCPUを使用している。OSの導入までは前回の「記事」を参照のこと。
OSが無事インストールされ、アップデートも安定的に実行可能な環境になったところで、開発機としてのセットアップをする。
nginx mariaDB PHP7.4 WordPress Mediawiki Elasticsearch
辺りをインストールして設定したいところである。リポジトリ類の追加で選択するアーキテクチャを「ARM64」にすることに注意すればほとんど問題無いと思っていたが、一番力を入れている「Elasticsearch」が以下の公式リポジトリでは「ARM64」に対応していないことが判明、ここから多少の迷走が始まる(笑)。ちなみに公式リポジトリでも7.xバージョンは対応しているのだが、Mediawikiの7.x対応がまだ未完のため当面は6.xを使う必要がある。WordPress(ElasticPress)は7.x対応済みだった。
deb https://artifacts.elastic.co/packages/6.x/apt stable main
とりあえず公式から以下のファイル(6.8.23)をダウンロードする。適当なところに解凍して設定ファイルを編集する。今回は公式リポジトリで指定される「/usr/share/elasticsearch」に解凍することにする。設定ファイルも公式に合わせ「/etc/elasticsearch」とする。シンボリックリンクなどを貼っておくと後々何かと便利なのでやっておく。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.23.tar.gz tar -xvf elasticsearch-6.8.23.tar.gz -C /usr/share/ ln -s /usr/share/elasticsearch-6.8.23 /usr/share/elasticsearch
設定ファイルは公式に合わせ以下の内容とする。「ARM64」では非対応の機能を設定ファイルの最後に以下の一行追加することで停止対応する。
... xpack.ml.enabled: false
公式の「elasticsearch.service」設定ファイルに合わせてインストール先を調整する。以下は参照する設定ファイルの一部なので注意。
... [Service] Environment="JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64" RuntimeDirectory=elasticsearch PrivateTmp=true Environment=ES_HOME=/usr/share/elasticsearch Environment=ES_PATH_CONF=/etc/elasticsearch Environment=PID_DIR=/var/run/elasticsearch EnvironmentFile=-/etc/default/elasticsearch WorkingDirectory=/usr/share/elasticsearch User=elasticsearch Group=elasticsearch ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet ...
Elasticsearch本体のインストールが完了したらプラグインを追加する。使用するプラグインは従来通りの4種類である。
Analysis-ICU Analysis-Kuromoji Analysis-Sudachi Ingest-Attachment
「Analysis-Sudachi」はプラグインを作成してファイルからのインストールとなるが、ここで多少手間取った(笑)。Sudachiの公式から対応するバージョンのコードをダウンロードしてコンパイルするだけのはずが、何故か上手くいかない。中身をみてみると、どうやらバージョン違いをダウンロードしてしまっているようだったので、改めてバージョンを指定してZIP形式でダウンロードし直すことでプラグインのコンパイルに成功した。4つのプラグインを追加したら、WordPressとMediawikiからインデックスを作成する。確認用の単語で検索をかけて期待値が得られれば正常稼働ということにしている。詳細は後日ということで、RASPIでの開発環境の構築成功を祝すこととする。