Raspberry PiにRedmine 3.4をインストールした

業務で不自由なRedmine(管理者権限なし)を使用するようになったので、 管理者のできることできないこと把握しとくか、という気持ちで立ててみた。

半日くらいで終わるかと思ったら丸2日ほどかかってしまった。。(Rubyまわりの知識なさすぎて苦戦)

環境

ソフトウェア バージョン
HW Raspberry Pi 2 Model B
OS Raspbian Stretch 4.19.34-v7
Redmine 3.4
PostgreSQL 9.6+181+deb9u
Apache 2.4.25-3+deb9
Ruby 2.4.1
bundler 1.17.1

手順

基本的に Redmine.JPの手順 を踏襲。 記事の手順そのままの部分はまるっと省略する。

主な変更したところ

  • fonts-takao-pgothic が無かったので fonts-takao-gothic に変更
  • Rubyのインストールにrbenvを使用

OSの設定、必要なパッケージのインストール

Redmine.JPの手順のまま実行

rbenv/ruby-buildのインストール

aptでも入れられるっぽいけど rbenvリポジトリの手順 に従ってgit cloneして入れてみた。

・・・と思ったら、今回のケースでは別ユーザでruby/bundler実行する必要があるので System wideにインストールする必要があった。 こちらの記事を参考にした。

0. rbenvを使用するグループの追加
$ sudo usermod -aG staff USERNAME

必要なユーザ分だけくりかえし。

1. rbenvをcloneする
$ cd /usr/local
$ sudo git clone git://github.com/rbenv/rbenv.git rbenv

権限変更

$ sudo chgrp -R staff rbenv
$ sudo chmod -R g+rwxXs rbenv

ここでターミナル開きなおして反映。 コンパイルして高速化(失敗しても気にするな、と書いてあるけど成功した)

$ sudo cd /usr/local/rbenv && src/configure && make -C src
2. rbenv/binにパス通す

/etc/profileに下記を追記

export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
3. rbenvの初期化

/etc/profileに下記を追記

eval "$(rbenv init -)"
4. ruby-buildのインストール

ruby-buildリポジトリの手順参照。 rbenvのpluginとしてインストールする

$ mkdir /usr/local/rbenv/plugins
$ git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build
5. rbenv-default-gemsのインストール

rbenvでRubyのインストール時に毎回デフォルトのgemを入れてくれる。

$ git clone https://github.com/rbenv/rbenv-default-gems.git $(rbenv root)/plugins/rbenv-default-gems

/usr/local/rbenv/default-gems に必要なgemをリストする。とりあえずbundlerだけ。

6. sudoで実行できるようにパスを通す
$ sudo visudo

secure_pathに/usr/local/rbenv/shims:/usr/local/rbenv/binを追加する

Rubyのインストール

# list all available versions:
$ rbenv install -l

# install a Ruby version:
$ rbenv install 2.4.1

Redmine JPの記事と同じ2.4.1にしてみた。 ここで40分くらいかかるので心穏やかに待つ。 前述のデフォルト設定したgemも一緒に入る。

使用するrubyバージョンの変更

$ rbenv global 2.4.1
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [armv7l-linux-eabihf]

bundlerのインストール

↑で最新版のbundlerがインストールされているものの、 Redmineのbundle installしようとすると「お前のbundlerは新しすぎるんじゃ」と言われてしまった。。

こちらの記事を参考に Gemfileの指定にあうバージョンを入れなおした。

$ gem search ^bundler$ --all
$ gem install bundler -v 1.17.3

バージョンを指定して実行する(Redmineのbundle install時に置き換える)

$ bundle _1.17.3_ install

PostgreSQLの設定

Redmine.JPの手順のまま実行

Redmineのインストール

Redmine.JPの手順のまま実行。bundlerはバージョンを指定する。

bundle installは結構時間かかる。

Redmineの初期設定と初期データ登録

Redmine.JPの手順のまま実行。bundlerはバージョンを指定しなくてOK。

Passengerのインストール

Redmine.JPの手順のまま実行。 passenger-install-apache2-module はかなり時間かかる(数十分)。

Apacheの設定

Redmine.JPの手順のまま実行。

設定の反映は

$ sudo service apache2 reload

ではなく

$ sudo systemctl reload apache2

とした。

Apacheの設定

Redmine.JPの手順のまま実行。 パターン2: サブディレクトリでRedmineを実行 の方で。 redmine.conf の場所の記載が間違っている(古い)と思う。

接続確認

http://(raspiのアドレス)/redmine にアクセス → トップページが開いた 🎉✨👍