Raspberry Pi3(CentOS7)にRailsのショッピングカートシステム「エレコマ」をインストールしてみたよ
LPIC or LinuC の勉強のために、CentOSを使い始めて数日なのですが、
ただコマンドのためだけに使うのは何だかつまらなかったので、ラズベリーパイにRails製のショッピングカートシステム「エレコマ」をインストールしてみることにしました。
# で始まるコマンドはsu – rootして、$ で始まるコマンドはsudoして、それぞれ作業しました。
$ uname -a Linux CentPi 4.14.82-v7.1.el7 #1 SMP Sun Nov 25 22:42:27 UTC 2018 armv7l armv7l armv7l GNU/Linux
CentOS v7.1
ホスト名 CentPi
Raspberry Pi3 model B
Rubyのインストール
デフォルトではRubyが入っていなかったので、エレコマの動作条件が2.1か2.2系だったので、今現在2.2系で最新版だった2.2.10をインストールすることにしました。
rbenvでインストールしました。
$ rbenv install 2.2.10
(エラー1) makeがインストールされてなかった
BUILD FAILED (CentOS Linux 7 using ruby-build 20181225-3-g434bedd) Inspect or clean up the working tree at /tmp/ruby-build.20190124195350.1779 Results logged to /tmp/ruby-build.20190124195350.1779.log Last 10 log lines: checking whether -pie is accepted as LDFLAGS... yes checking for __builtin_setjmp... yes with cast () checking for setjmp type... __builtin_setjmp checking for prefix of external symbols... NONE checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking if make is GNU make... ./configure: line 23372: make: command not found no checking for safe null command for make... configure: error: no candidate for safe null command
どうやらmakeがないらしい・・・ということでインストールしました。
$ sudo yum -y install make
rubyのインストールが成功です。
$ rbenv versions 2.2.10 $ rbenv global 2.2.10
これで一応最低限の環境は整ったでしょうか。
エレコマ(依存ライブラリ)のインストール
エレコマ公式サイトに書いてある通りに(ほぼ)進めていきたいと思います。
# yum -y groupinstall "Base" "Development tools" # yum -y install zlib-devel # yum -y install openssl-devel # yum -y install ncurses-devel # yum -y install readline-devel
rbenvをインストールした時に被ったコマンドもありますが、気にせず打ち込んで実行していきます。
ユーザを追加して、エレコマをダウンロードします。
# adduser elecoma # passwd elecoma $ git clone git://github.com/appirits/elecoma.git
bundlerのインストールで躓きました。
$ gem install bundler
(エラー2) bundlerがruby2.3以上が必要でインストール出来なかった
ERROR: Error installing bundler: bundler requires Ruby version >= 2.3.0.
バージョン2系のbundlerをインストールしようとしているみたいでエラーとなってる感じだったので、bundlerのバージョンを下げてインストールしようと思います。
(参考) Ruby | bundler を特定のバージョンに切り替えて実行する
bundlerのバージョンリストを調べて、
$ gem search ^bundler$ --all
バージョン1系の1.17.3をインストールすることにしました。
$ gem install bundler -v 1.17.3 $ rbenv exec bundler -v Bundler version 1.17.3
今度は成功。
エレコマのインストールに戻ります。
$ bundle install --path vendor/bundle --without postgresql mysql
(エラー3) sqlite3がビルド出来ない
Installing sqlite3 1.3.10 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
コメントにある通りにします。
$ yum install sqlite-devel
もう一度、
$ bundle install --path vendor/bundle --without postgresql mysql
成功しました。
Bundle complete! 18 Gemfile dependencies, 116 gems now installed. Gems in the groups postgresql and mysql were not installed. Bundled gems are installed into `./vendor/bundle`
ここらへんで、このエレコマで使うrubyのバージョンを固定しておこうと思います。
$ rbenv local 2.2.10
データベースの初期化
$ bundle exec rake db:create
(エラー4) JavaScript runtime
rake aborted! ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
Gemfileにgem ‘therubyracer’を記入してbundle installすれば良いみたいですが、node.jsを使う方法もあるらしく、今回はnode.jsを使う方向で試してみます。
node.jsのインストール
(参考) NodeBrewインストール編
詳しくは上記リンク先をご確認ください。
$ curl -L git.io/nodebrew | perl - setup $ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile $ source ~/.bash_profile $ nodebrew ls-all
nodeをインストールします。
$ nodebrew install-binary stable
このコマンドでステーブルの最新版(v10.15.0)が入るという事ですが、ラズパイのCentOSでは
$ node -v node: /lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
とエラーが出ました。
ちょっと解決方法が分からなかったので、nodeのバージョンを下げて対応することにしました。
nodeの7系で試してみます。
$ nodebrew install-binary v7.10.1 $ nodebrew use v7.10.1 $ node -v v7.10.1
今度は成功しました。
再度、エレコマに戻ります。
$ bundle exec rake db:create $ bundle exec rake db:migrate $ bundle exec rake db:seed
エレコマの起動
$ bundle exec rails server -b 0.0.0.0
別なパソコンからアクセスする時は、ポートを開ける必要があります。
デフォルトでは3000番を使うので、設定します。
ポートの開放
$ firewall-cmd --zone=public --add-port=3000/tcp --permanent $ firewall-cmd --reload
ちなみに確認は
$ firewall-cmd --list-all
インストールされた(した)バージョンなど
まとめるとこんな感じでした。
- Raspberry Pi 3 Model B
- エレコマ v4.1.0
- Rails 4.2.1
- gem 2.4.5.5
- bundler 1.17.3
- node 7.10.1
意外とと言っては何ですが、時間的には半日くらいの作業でエレコマのインストールが成功して、デモ画面まで表示できました。
エラーとか出て少し焦ったけど、ネットで公開されている情報のおかげで解決していく事ができました。
昔のバージョンはもっと難しそうな感じでしたが、今回はインストール完了して嬉しい限りです。
開発者さんや参考サイトさんに感謝感謝です。
エレコマの応答速度
体感ですが、ラズベリーパイ+WEBrickという事で、反応は少々遅い感じですね。1秒くらい待たされる感じです。
機会があれば、WebサーバをNginx+Unicornにしてみたり、Linuxにインストールしてみたりして試してみようかと思ってます。