RaspberryPi3でRuby on Rails環境を構築する方法 - 三流SEの技術LOG

三流SEの技術LOG

IT業界の片隅で生きているSEの雑記帳。勉強になると思い、自宅サーバを構築するときに「やったこと」、Windows10やMacの設定したことを記録します。技術、知識、Q&A情報まとめサイト

RaspberryPi

RaspberryPi3でRuby on Rails環境を構築する方法

2017/06/23

おはようございます、こんにちは、こんばんは

Webサービス開発を勉強するために、Ruby on Rails環境をRaspberryPi3上に構築してみようと思います。本当に自分用メモですが、公開してしまいます。
Ruby on Rails環境をRaspberryPi3上に構築しようという人の参考になれば幸いです。

やったこと

Ruby on Rails Tutorialに従ってみる

ここに従って、Ruby on Railsを勉強してみようと思っています。なお、環境構築はRaspberryPi3の勉強も兼ねているので、RaspberryPi3上に構築していく方針です。

Railsをインストールする

まずは、コンソール上でRubyがインストールされているか確認するために、下記のコマンドを実行する。

ruby --version

下記の結果が得られたので、RubyはRaspberryをインストールすると最初から入っているようです。ちなみに、Version 2.1.5が入っている(ここ重要)

ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf]

いきなり躓く

参考サイトに書いてあるとおりに、Rails環境をインストールする。

gem install rails -v 5.0.0.1

下記のエラーとなる。

Fetching: concurrent-ruby-1.0.5.gem (100%)
ERROR:  While executing gem ... (Errno::EACCES)
Permission denied @ dir_s_mkdir - /var/lib/gems

落ち着いてエラーを確認。Permission deniedってことは、アクセス権の問題らしい。たぶん、一般ユーザではインストールできないってことでしょう。
ということで、sudoを頭につけて再実行。

sudo gem install rails -v 5.0.0.1
Fetching: concurrent-ruby-1.0.5.gem (100%)
Successfully installed concurrent-ruby-1.0.5
Fetching: minitest-5.10.1.gem (100%)
Successfully installed minitest-5.10.1
Fetching: thread_safe-0.3.6.gem (100%)
Successfully installed thread_safe-0.3.6
Fetching: tzinfo-1.2.3.gem (100%)
Successfully installed tzinfo-1.2.3
Fetching: i18n-0.8.1.gem (100%)
Successfully installed i18n-0.8.1
Fetching: activesupport-5.0.0.1.gem (100%)
ERROR:  Error installing rails:
activesupport requires Ruby version >= 2.2.2.

最後の行で、エラーが発生。どうやらバージョンが2.2.2以上が必要ってことらしい。RaspberryPi3にインストールされているRubyは、「ruby 2.1.5」なのでバージョンが足りていないことは分かった。

RaspberryにRuby version 2.2.2をインストールしてみる

ここを参考にしました。
下記のコマンドを実行して、githubからダウンロード。

git clone https://github.com/sstephenson/rbenv.git ~/.rdenv

実行結果:
Cloning into '/home/pi/.rdenv'...
remote: Counting objects: 2595, done.
remote: Total 2595 (delta 0), reused 0 (delta 0), pack-reused 2595
Receiving objects: 100% (2595/2595), 476.26 KiB | 198.00 KiB/s, done.
Resolving deltas: 100% (1627/1627), done.
Checking connectivity... done.

bashにrbenvのパスを追加

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

githubからruby-buildを取ってくる。

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

実行結果:
Cloning into '/home/pi/.rbenv/plugins/ruby-build'...
remote: Counting objects: 7484, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 7484 (delta 5), reused 0 (delta 0), pack-reused 7467
Receiving objects: 100% (7484/7484), 1.51 MiB | 721.00 KiB/s, done.
Resolving deltas: 100% (4530/4530), done.
Checking connectivity... done.

インストールに必要なライブラリをインストール

下記のコマンドを実行して、必要なライブラリをインストールする。

sudo apt-get install libssl-dev

下記のコマンドを実行して、ruby-devをインストールする。

sudo apt-get install ruby-dev

下記のコマンドを実行して、rbenvをインストールする

sudo apt-get install rbenv

インストールする

下記のコマンドを実行して、version 2.2.2をインストールする。

rbenv install 2.2.2

結果:
Downloading ruby-2.2.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.bz2
Installing ruby-2.2.2...
BUILD FAILED (Raspbian 8.0 using ruby-build 20170405-2-g3b15693)
Inspect or clean up the working tree at /tmp/ruby-build.20170415103752.7161
Results logged to /tmp/ruby-build.20170415103752.7161.log
Last 10 log lines:
installing rdoc:              /home/pi/.rbenv/versions/2.2.2/share/ri/2.2.0/system
installing capi-docs:         /home/pi/.rbenv/versions/2.2.2/share/doc/ruby
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libreadline-dev` to fetch missing dependencies.
Configure options used:
--prefix=/home/pi/.rbenv/versions/2.2.2
LDFLAGS=-L/home/pi/.rbenv/versions/2.2.2/lib
CPPFLAGS=-I/home/pi/.rbenv/versions/2.2.2/include

1時間弱の時間かけたくせに失敗・・。
落ち着いてエラー内容を確認
これを実行しろって書いてあるので実行してみました。

apt-get install -y libreadline-dev

上記を実行したあとで、再度下記のコマンドを実行してみました。

rbenv install 2.2.2

こんどはうまく実行できました〜。時間は1時間弱かかってます。
バージョンを変更するために、下記コマンドを実行。

rbenv global 2.2.2
rbenv rehash

上記だけでは、うまく変更できなかったので、下記も実行

source ~/.bashrc

これで、バージョンが変更できました。

ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [armv7l-linux-eabihf]

rails環境をインストール

下記コマンドを実行して、rails環境を作成しようとしたけど、sqlite3のgemインストールで躓いた。

rails _5.0.0.1_ new hello_app

gem install sqlite3 -v '1.3.13'

を実行してみたけど、うまくいかない。
libsqlite3-devが足りていないようなので、apt-getでインストール
再度、インストールを試みたら、成功した。

gem install sqlite3 -v '1.3.13'

再度、rails環境構築を試してみる。conflictが発生したけど、「Y」で上書き。今度は成功する。

rails _5.0.0.1_ new hello_app

Gemfileを指定通りに書き換えて、

bundle install 

を実行。しかし、エラーになる。
bundle updateを実行しろってエラーなので、素直に従って「bundle update」を実行する。
もう一度、

bundle install 

を実行して、成功する。
次は、node.jsのインストールと思ったら、インストール済みだったので飛ばす。

sudo apt-get npm

は実行した。
rails serverを実行して、localhost:3000にアクセスすると、rails環境が動作していることを確認できます。

まとめ

長かった・・・。もう少し簡単に出来ると思っていたのですが、苦労しました。



プログラミング・Webデザインに興味のある方へ

近年、IoT化やスマートフォンの普及によりエンジニアの需要が高まり続けています。
2020年にはプログラミングが義務教育となり、不足するエンジニアは37万人にもなると言われています。

特に、Web業界は裾野が広く、まだまだ開拓されていない分野、人材が足りていない分野が数多くあります。そんなWeb業界に、就職・転職を検討されている方向けのスクールを3つご紹介します。

Webスク

Web業界への転職を目指す方向けにプログラマーコース、Webデザイナーコースが選べるスクールです。Web業界で活躍したい方にオススメです。

WebCamp

就職・転職・独立・キャリアアップを目指す方向けに一ヶ月集中コースのスクールです。Web業界に興味があるがなかなか踏み出す機会がない方にオススメです。

CodeCamp

現役エンジニアによるプログラミング個別指導です。まずは、無料体験レッスンを試してみてください。



関連コンテンツ



スポンサードリンク

-RaspberryPi
-, , , ,