ubuntu14.04にRuby on Rails環境を構築する手順

公開日:2015/03/02 更新日:2015/03/02
ubuntu14.04にRuby on Rails環境を構築する手順のサムネイル

はじめに

インストールしたてのubuntu14.04にRails環境を構築したのでその手順をメモしておきます。Ruby、rbenv、Railsをインストールして動作確認するまでの作業メモとなります。

環境と前提

  • OS: ubuntu server 14.04

下準備

まずはじめにapt-get updateでubuntuをアップデートし、その後RubyやRailsをインストールする際に必要となるライブラリやソフトウェアを同じくapt-getでインストールしておきます。以下では個人的にMySQLをRailsで使うのでMySQL関係のライブラリもインストールしていますが、不要な方はインストールしなくて大丈夫です。

$ sudo apt-get update
$ sudo apt-get install git build-essential libssl-dev libffi-dev
$ sudo apt-get install libxslt-dev libxml2-dev libsqlite3-dev nodejs libmysqld-dev libmysqlclient-dev mysql-server mysql-client

以上で下準備は完了です。

rbenvのインストール

続いてRubyのインストールや管理をするためにrbenvをインストールします。インストールは以下のようにgitを使います。

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

もしすでにrbenvをインストールしたことがあり、最新版にアップデートしたい場合は以下のコマンドを実行します。

$ cd ~/.rbenv
$ git pull origin master
$ cd ~/.rbenv/plugins/ruby-build
$ git pull origin master

また、rbenvを使用するためにパスを以下コマンドで通しておきます。

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

なお、パスを追加する際に.bash_profile.bashrcなどどれにパスを追加していいかわからなくなる場合がありましたが、以下の参考サイトが勉強になりました。ありがとうございました。

.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? | Qiita
パスを追加したら再読み込みします。
$ source .bash_profile

以上でrbenvのインストールは完了です。

Rubyをインストール

次にRubyをインストールします。まず以下コマンドでインストール可能なRubyのバージョンのリストを表示します。

$ rbenv install -l
...
2.1.3
2.1.4
2.1.5
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
2.2.0-rc1
2.2.0
2.3.0-dev
...

表示されたリストの中で数値だけでかつ値が最も大きいものが最新版になりますので、それをインストールします。上記の場合だと、2.2.0が最新版になります。これを以下のコマンドでインストールします。結構時間がかかります。

$ rbenv install 2.2.0

以下コマンドでデフォルトで使用するRubyのバージョンをいまインストールした2.2.0に指定します。

$ rbenv global 2.2.0

以上でRubyのインストールは完了です。

Ruby 2.2.0をインストールした時に遭遇したエラー

上記のrbenv install 2.2.0を実行した時に以下のようなエラーに遭遇しました。

ubuntu@ubuntu:~$ rbenv install 2.2.0
Downloading ruby-2.2.0.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/7671e394abfb5d262fbcd3b27a71bf78737c7e9347fa21c39e58b0bb9c4840fc
Installing ruby-2.2.0...

BUILD FAILED (Ubuntu 14.04 using ruby-build 20150226-3-g0901e41)

Inspect or clean up the working tree at /tmp/ruby-build.20150301009650.6655
Results logged to /tmp/ruby-build.20150301009650.6655.log

Last 10 log lines:
make[3]: Leaving directory `/tmp/ruby-build.20150301009650.6655/ruby-2.2.0/ext/fiddle/libffi-3.2.1'
linking shared-object fiddle.so
/usr/bin/ld: ./libffi-3.2.1/.libs/libffi.a(raw_api.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
./libffi-3.2.1/.libs/libffi.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [../../.ext/x86_64-linux/fiddle.so] Error 1
make[2]: Leaving directory `/tmp/ruby-build.20150301009650.6655/ruby-2.2.0/ext/fiddle'
make[1]: *** [ext/fiddle/all] Error 2
make[1]: Leaving directory `/tmp/ruby-build.20150301009650.6655/ruby-2.2.0'
make: *** [build-ext] Error 2

このエラーは冒頭の下準備の際にインストールしたはずのlibffi-devをインストールし忘れたことが原因でした。2.2.0のインストールにはlibffi-devがインストールされている必要があるようです。ちなみに2.1.5をインストールした場合にはlibffi-devが無くても問題なくインストールが完了しました。

bundlerをインストール

次にGemパッケージを管理するためのbundlerを以下コマンドでインストールします。

$ gem install bundler

Gemやbundlerについては下記サイトが参考になるかもしれません。

Bundlerを使ったGemパッケージの管理 } RubyLife
以上でBundlerのインストールは完了です。

Railsのインストールと動作確認

最後にRailsをインストールして動作確認を行います。Railsのインストールは以下のようにgemコマンドでOKです。

$ gem install rails --no-ri --no-rdoc

なお、--no-ri--no-rdocオプションはそれぞれrirdoc形式のドキュメントの自動生成を行わないことを意味します。これらはいわゆるリファレンスドキュメントのようなものです。 以上でRailsのインストールは完了です。あとは動作確認を行います。

$ cd # ホームディレクトリに移動。もちろん各自任意の場所でOKです。
$ mkdir railsapp # railsアプリ用のディレクトリ作成
$ cd railsapp # railsアプリ用のディレクトリに移動
$ rails new first_app # railsコマンドで新規Railsアプリ作成

以上でrailsappディレクトリにfirst_appという名前のディレクトリが作成されます。そしてこのfirst_appに移動して、以下コマンドを実行すればRailsが起動します。

$ cd first_app
$ rails server -b 0.0.0.0

上記のrails serverrails sという短縮形でも実行できます。また、-b 0.0.0.0は、どこからのアクセスでも受け付けるようにするためのオプションになります。 development環境のデフォルト設定ではlocalhostからのアクセスしか受付ません。

ブラウザからhttp://サーバのIPアドレス:3000にアクセスして以下の様な画面が表示されればRailsが正常に起動しています。

rails-default-screen.png

rails server実行時のエラー

ちなみに私の環境では、rails server -b 0.0.0.0を実行した際に以下のようなメッセージが最初表示されました。

ubuntu@ubuntu:~/railsapp/first_app$ rails s -b 0.0.0.0
bin/rails:6: warning: already initialized constant APP_PATH
/home/ubuntu/railsapp/first_app/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]

The most common rails commands are:
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s")
dbconsole Start a console for the database specified in config/database.yml
(short-cut alias: "db")
new Create a new Rails application. "rails new my_app" creates a
new application called MyApp in "./my_app"

In addition to those, there are:
destroy Undo code generated with "generate" (short-cut alias: "d")
plugin new Generates skeleton for developing a Rails plugin
runner Run a piece of code in the application environment (short-cut alias: "r")

All commands can be run with -h (or --help) for more information.

この場合はRailsアプリディレクトリにあるGemfileに以下を追記してbundle installを実行してください。

gem 'rb-readline'

bundle installしたあとで改めてrails s -b 0.0.0.0を実行すればRailsが起動すると思います。もしこの作業でも解決できなかった場合は、まずgem uninstall rb-readlineを実行して改めてbundle installしてみるといいかもしれません。

おわりに

ubuntu14.04にRails環境を構築する手順をメモしました。色々調べながら行いましたが、もし間違えなどあったら指摘して頂けると嬉しいです。

参考サイト様

rbenvとruby-buildでRuby環境を最新に保つ | GitHub Gist

関連記事

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。