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番を使うので、設定します。

ポートの開放

(参考) 【すぐわかる】CentOSのポート開放のやり方

$ 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にインストールしてみたりして試してみようかと思ってます。

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください