きっかけ
Redmineでチケット管理しているシステムの設計書を同じRedmineで管理したくなった。
どうせなら脱Excel化して、Wikiで設計書を作りたい。
環境
Amazon LightsailのBitnami版Redmine
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Redmineの情報
Environment:
Redmine version 4.1.1.stable
Ruby version 2.5.8-p224 (2020-03-31) [x86_64-linux]
Rails version 5.2.4.2
Environment production
Database adapter Mysql2
Mailer queue ActiveJob::QueueAdapters::AsyncAdapter
Mailer delivery smtp
導入手順
Javaのインストール
$ sudo apt-get install default-jdk
Javaのインストールバージョンとパスが通っているかを確認
$ java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
Graphvizのインストール
$ sudo apt-get install graphviz
Graphvizのインストールバージョンとパスが通っているかをdotコマンドで確認
$ dot -V
dot: error while loading shared libraries: libgvc.so.5: cannot open shared object file: No such file or directory
おやおや、エラーが発生しました。共有ライブラリがない??
dotコマンドのパスを確認します。
$ which dot
/opt/bitnami/common/bin/dot
ん、apt-getでインストールしたのに、bitnamiの配下を参照している??
dpkgコマンドでgraphvizのインストール先を確認します。
$ dpkg -L graphviz
(抜粋)
/usr/bin/dot
(抜粋)
/usr/bin/dotにあるのね。
では、改めてdotコマンドで確認します。
$ /usr/bin/dot -V
dot - graphviz version 2.40.1 (20161225.0304)
成功!
$ echo $PATH
(抜粋):/opt/bitnami/common/bin(抜粋):/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PATHの優先順位がbitnamiの方が高かったということですね。
日本語フォントのインストール
何も考えず、IPAフォントをインストールします。
$ sudo apt-get install fonts-ipafont fonts-ipaexfont
PlantUMLの入手
参考サイトでは、wgetで取得していますが、自分のPCにダウンロード後、SCPでホームディレクトリ(/home/bitnami)にアップしました。
PlantUMLの動作確認
下記の内容を test.umlとして保存します。
@startuml
Alice -> Bob: test
@enduml
画像ファイルに変換します。
$ java -jar plantuml.jar test.uml
下記のようなファイルが生成されると成功です。
コマンド化
PlantUMLのjarファイルをホームディレクトリ以外に移動します。
$ sudo cp plantuml.jar /usr/local/bin
/usr/bin/plantumlにシェルスクリプトを作ります。
#!/bin/bash
export LANG=ja_JP.UTF-8;
/usr/bin/java -Djava.io.tmpdir=/var/tmp -Djava.awt.headless=true -jar /usr/local/bin/plantuml.jar -charset UTF-8 ${@}
ファイル作成後、ファイルのパーミッションを変更します。
$ sudo chmod 755 /usr/bin/plantuml
先ほどと同様画像ファイルが作成できるかを確認します。
$ sudo chmod 755 /usr/bin/plantuml
PlantUML Redmine pluginのインストール
RedmineのPluginsディレクトリに移動する。
cd ~/apps/redmine/htdocs/plugins
git cloneし、所有者をRedmineの他のディレクトリと合わせる。
$ git clone https://github.com/dkd/plantuml.git
$ sudo chown -R bitnami:daemon plantuml
プラグインをインストールする。
sudo無しでは、「production.logに書き込めないよ」というエラーが出たので、sudoを付けました。
$ sudo bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Redmineの添付ファイル保存ディレクトリのパーミッションを変更する。
$ chmod 775 /home/bitnami/apps/redmine/htdocs/files
パーミッションを変更しないと下記のようなエラーが表示される場合があります。
念のため、諸々再起動します。
$ sudo /opt/bitnami/ctlscript.sh stop
$ sudo /opt/bitnami/ctlscript.sh start
再起動後、Redmineに管理者ユーザでログインします。
ログイン後、「設定」→「プラグイン」画面を表示します。
PlantUMLのパスに「/usr/bin/plantuml」を入力し、[適用]ボタンをクリックします。
RedmineのWikiで動作確認
Wikiに下記のように入力します。日本語で表示できるかもテストします。
Wikiページを保存後、以下のように表示されると成功です。
ちなみに、クラス図も動作確認します。
以上で作業は完了です。