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
オプションはそれぞれri
、rdoc
形式のドキュメントの自動生成を行わないことを意味します。これらはいわゆるリファレンスドキュメントのようなものです。
以上で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 server
はrails s
という短縮形でも実行できます。また、-b 0.0.0.0
は、どこからのアクセスでも受け付けるようにするためのオプションになります。
development
環境のデフォルト設定ではlocalhost
からのアクセスしか受付ません。
ブラウザからhttp://サーバのIPアドレス:3000
にアクセスして以下の様な画面が表示されればRailsが正常に起動しています。
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
関連記事
- 公開日:2020/02/10 更新日:2020/02/10
UbuntuをmacOSのCatalinaっぽい見た目にする
UbuntuのデスクトップをmacOSのCatalinaっぽくするためのカスタマイズ手順をまとめます。
- 公開日:2019/12/31 更新日:2019/12/31
How to update Ubuntu's Kernel only
This article show you how to update Ubuntu's kernel using ukuu(Ubuntu Kernel Update Utility).
- 公開日:2019/10/04 更新日:2019/10/04
RailsとSendGridでメール送信処理を実装する
Ruby on RailsからAction Mailerを使用してSendGrid経由でメールを送信する処理を実装したのでその手順をまとめます。
- 公開日:2019/09/10 更新日:2019/09/10
Ubuntuで/var/cache/apt/archives/パッケージ名の処理中にエラーが発生した場合の対処法
Ubuntuで「dpkg: アーカイブ /var/cache/apt/archives/パッケージ名.deb の処理中にエラーが発生しました」、「Sub-process /usr/bin/dpkg returned an error code (1)」というエラーが共にでました。ここのエラーの解決策をまとめます。
- 公開日:2019/08/12 更新日:2019/08/12
UbuntuからRaspberry PiにVNC接続する手順
Raspberry PiにHDMIケーブルを使ってモニタに接続して使用していましたが、ケーブルが煩わしくなってきたためリモートデスクトップで他のPCからVNC接続してみました。この記事では、UbuntuからRaspberry PiにVNC接続するまでをまとめます。