LoginSignup
10
12

More than 5 years have passed since last update.

Ruby+gems+Railsインストールガイド

Last updated at Posted at 2015-08-12

Ruby+gems+Railsインストールガイド

動作環境

Component Version
Centos 6.6

1 Rubyの関連ツールをインストール

yum -y update
yum -y install gcc-c++ patch readline readline-devel zlib zlib-devel 
yum -y install libyaml-devel libffi-devel openssl-devel make 
yum -y install bzip2 autoconf automake libtool bison iconv-deve

2 Ruby Version Manager(RVM)をインストール

curl -L get.rvm.io | bash -s stable
cd /usr/local/rvm/archives/
find /usr/local/rvm/archives -name "*.tgz" | xargs tar xzvf
version=`find . -maxdepth 1 -type d | awk -F "-" '{print $2}'`
version=`echo $version | sed "s/\r//g"`; cd "rvm-$version"
./install
source /etc/profile.d/rvm.sh

3 Ruby&gemsをインストール

rvm install 1.9.3
rvm install 1.8.6

4 デフォルトのRubyバージョンを指定

rvm use 1.9.3 --default
ruby --version

5 Railsのインストール

gem install rails

==10分程度かかるはずだが、あまりに遅い場合は下記を実行==

echo 'options single-request-reopen' >> /etc/resolv.conf

Ruby Gemsのインストール

1 Rubyを最新版に更新します。(1.8系はNG)

1.1 RVM(Ruby Version Manager)を使って、Rubyを最新版に更新

1.2 Ruby2.2.1をインストール

rvm list known
rvm install 2.2.1
ruby -v
# ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]

2 ダウンロードとインストール

2.1 下記URLからダウンロードします。

http://rubygems.org/

yum -y update
yum -y install rubygems
yum install ruby-irb
gem update --system

3 bundlerをインストールします。

==bundlerは、javaでいうところのantやmavenのようなもの。必要なライブラリを自動でダウンロード、配置してくれるものです。==

bundlerの利点:使用するgemのバージョンを指定できる

あるプロジェクトではtwitter gem 5.x系を、別のプロジェクトでは4.x系を使いたい場合、bundlerなしでrequire 'twitter'と、すると、どちらのプロジェクトでも、バージョンの大きい5.xを読み込んでしまう。そのマシンに存在する最もバージョンの大きいtwitter gemを読み込んでしまうのだ。つまり、新しくtwitter gemを使ったプロジェクトを始めるだけで、古いプロジェクトは何も手を触れていないのに壊れてしまう。
作ったプログラムが1年後もちゃんと動くにはbundler必須である。

gem install bundler

3.2 Gemfileを編集します。

3.2.1 使用するgemを、Gemfileに列挙します。

gem init

->/root/Gemfileに、ひな形が生成されます。

/root/Gemfile

source "https://rubygems.org"
gem 'sinatra'
gem 'sinatra-contrib'

※意味 – sinatraはどのバージョンでもいい、オートリロードをするsinatra-contribを入れる。

3.3 bundle install

Gemfileを作成したディレクトリでbundle installを実行してください。--pathを指定しないとRuby環境のGemディレクトリにインストールされてしまいますので気を付けましょう。ディレクトリ名はvender/bundleが推奨されているようです。
また、毎回--pathを指定するのも面倒ですのでbundle config --global pathコマンドで初期値を設定しておきます。

bundle install --path vendor/bundle
bundle config --global path 'vendor/bundle'

4 bundlerで指定したgemを使います

※これやらないと、システムに入っている最新版gemを使ってしまいます。

4.A 実行時に指定する方法

今まで

ruby foo.rb
rackup config.ru

等で実行していたのを、

bundle exec ruby foo.rb
bundle exec rackup config.ru

とする。

4.B スクリプト内で指定する方法

  • a)使用バージョンがGemfile.lockに書かれている物に固定されます。
require 'bundler/setup'
  • b)gemを一括requireする方法。
Bundler.require

==注意点==

※Gemfileはカレントディレクトリにある物を参照するので、crontabで使う場合はプロジェクトの中にcdしてからrubyしないといけません。

  • 7時30分に実行する例
30 7 * * * cd $HOME/src/ruby/myapp && bundle exec ruby start.rb > /dev/null 2>&1

5 サンプルプログラムを配置

  • myapp.rb(場所はどこでも良い。)
Bundler.require
get '/' do
    "Hello world " 
end
  • 実行
bundle exec ruby myapp.rb -o 0.0.0.0 -p 12345

References

10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12