rbenvのインストール、Railsプロジェクトの作成まで

Pocket

rvmよりシンプルなRubyバージョン管理システムです。
rvmは高機能なのですが、進化がめちゃくちゃ速いのと、インストールするとくっついて離れないので、最近はこっちがトレンドになってきています。

  • CentOS6系
  • Ubuntu13.04

もろもろ必要なパッケージのインストール

gitのインストールはrbenvもろもろを入れるのに大前提。
また、開発系のパッケージをインストールしていないそのままだとgemもまともに使えないので、
事前に開発用ヘッダーをインストールしておきます。

CentOS

# yum -y groupinstall "Development Tools"
# yum -y install openssl-devel zlib-devel readline-devel mysql-devel sqlite-devel git

Ubuntu

sudo aptitude -y install libssl-dev zlib1g-dev libreadline-dev libmysqlclient-dev sqlite3 libsqlite3-dev g++ git

rbenvのインストール

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

ruby-buildのインストール

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build/
sudo ./install.sh

Installed ruby-build at /usr/local

Rubyのインストール

インストール可能なRubyの一覧は以下のようにして得られる。

rbenv install --list
Available versions:
(snip)
  1.8.7-p358
  1.8.7-p370
  1.8.7-p371
  1.9.1-p378
(snip)
  1.9.3-p125
  1.9.3-p194
  1.9.3-p286
  1.9.3-p327
  1.9.3-p362
  1.9.3-p374
  1.9.3-p385
  1.9.3-p392
  1.9.3-preview1
  1.9.3-rc1
  2.0.0-dev
  2.0.0-p0
  2.0.0-preview1
  2.0.0-preview2
  2.0.0-rc1
  2.0.0-rc2
  2.1.0-dev
(snip)

以下のコマンドでインストール。

rbenv install 1.9.3-p392
rbenv global 1.9.3-p392
rbenv rehash

ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]

gem -v
1.8.23

Ruby on Railsのインストール

Bundlerのインストール

rbenv exec gem install bundler --no-ri --no-rdoc
rbenv rehash

空のrailsプロジェクトを作成する

mkdir project
cd project/
cat << EOS > Gemfile
source "https://rubygems.org"
gem "rails"
EOS
bundle install --path vendor/bundle
bundle exec rails new example --skip-bundle
rm -rf Gemfile Gemfile.lock vendor/ .bundle/

Railsプロジェクトに必要なgemを一式インストール

cd example/
cat <<EOF >> Gemfile
gem 'execjs'
gem 'therubyracer'
EOF
bundle install --path vendor/bundle

バージョン管理に入れる

<

pre>echo '/vendor/bundle' >> .gitignore
git init
git add .
git config --global user.name "Wataru Noguchi"
git config --global user.email "foo@unicast.ne.jp"
git commit -m "Initial commit."
[/text]

Railsプロジェクト始動

bundle exec rails server

シェルスクリプトにしました

冪等性(べきとうせい)は保証しません。
以下に掲載するスクリプトはまるごとコピペするとダメ文字を含んでうまく動かないので、
rbenv and rails environement one shot install script.
を使用してください。

ダメ文字に関してはこちら: C2A0問題を解決する | ユニキャストラボ

#!/bin/bash

#=====================================
# Settings Here
#=====================================
# Platform
PLATFORM=Ubuntu
#PLATFORM="CentOS"

# Rails Application Name
RAILS_APP_NAME=example

# Ruby Version 
#RUBY_VERSION=2.0.0-p247
RUBY_VERSION=1.9.3-p392

# Rails Version
#RAILS_VERSION=4.0.0
RAILS_VERSION=3.2.14

# Git User Configuration
GIT_USER_NAME="Wataru Noguchi"
EMAIL="user@example.com"
GIT_OPTIONS=--global
#=====================================
 
if [ "$PLATFORM" = "Ubuntu" ]; then
  sudo apt-get -y install libssl-dev zlib1g-dev libreadline-dev libmysqlclient-dev sqlite3 libsqlite3-dev g++ git curl
else
  yum -y groupinstall "Development Tools"
  yum -y install openssl-devel zlib-devel readline-devel mysql-devel sqlite-devel git
fi

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

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
 
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build/
sudo ./install.sh
 
rbenv install $RUBY_VERSION
rbenv global $RUBY_VERSION
rbenv rehash
rbenv exec gem install bundler --no-ri --no-rdoc
rbenv rehash
 
cd ~
mkdir rails_projects
cd rails_projects/
cat << EOS > Gemfile
source "https://rubygems.org"
gem "rails", "$RAILS_VERSION"
EOS
bundle install --path vendor/bundle
bundle exec rails new $RAILS_APP_NAME --skip-bundle
 
cd $RAILS_APP_NAME
cat <<EOF >> Gemfile
gem 'execjs'
gem 'therubyracer'
EOF
bundle install --path vendor/bundle
 
echo '/vendor/bundle' >> .gitignore
git init
git add .
git config $GIT_OPTIONS user.name $USERNAME
git config $GIT_OPTIONS user.email $EMAIL
git commit -m "Initial commit."

echo "finished!"

rvmにサヨナラバイバイする

以下のコマンドで行けるようです。
rvmも意外に便利になったものですね。
ログインしなおさないとcdしたときとかシェルがエラーを吐くのでいったんログアウトしたほうがよさげです。

rvm implode

後日談

何度もやるようならchefのcookbookの方がいいんじゃないか・・・。

参考サイト

Railsまわり

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

コメントを残す

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

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