読者です 読者をやめる 読者になる 読者になる

へべれけ

ゲームとDTMと本と煙草と酒と泪と男と女

RubyとRuby on Railsの導入

書きたいことはあるけど、うまく文章になってくれないので、今日も技術的なことをメモしていくよ。

Ruby on Railsとはその名の通り、Rubyによるwebアプリのフレームワークだ。もうちょいざっくばらんに言うとRubyでwebアプリを作るための便利なツールみたいなもん。
ただし、インストールがちょっと面倒。

環境はLinux AmazonEC2
ポートは10000を使用する


まずは最初にrootになる。

sudo -s

githubを利用するため、gitをyumインスコ

yum install git

Rubyの使用とモジュール管理をするrbenvを使うために必要なものを揃える。
魔法の呪文をちょちょいと。

yum -y install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel libffi-devel libxml2 libxslt libxml2-devel libxslt-devel sqlite-devel
※途中でエラーが出たら、↓のもインストールしてみる
yum -y install  sqlite-devel.x86_64

rbenvのインストール。RubyRails使用にはかかせないものだ。githubバンザイ。

git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv
cp -p /etc/profile /etc/profile.ORG
diff /etc/profile /etc/profile.ORG
echo 'export RBENV_ROOT="/usr/local/rbenv"' >> /etc/profile
echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile
echo 'eval "$(rbenv init -)"' >> /etc/profile

rbenvにパスを通す。

# env | grep RBENV
下記の表示が出れば成功
RBENV_ROOT=/usr/local/rbenv
RBENV_SHELL=bash

念のためrbenvがちゃんとインスコされたか、バージョン確認がてらチェック。

# rbenv -v
rbenv 1.0.0-19-g29b4da7


rbenv上でRubyをビルドするためのツールをインストール

# git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build

ようやくRubyのビルドに入るよ!

# pwd
/root
# rbenv install -l
  (中略)
 2.1.5
 2.2.0-dev
 2.2.0-preview1
 2.2.0-preview2
 2.2.0-rc1
 2.2.0
 2.2.1 → このバージョンをインストールする。
 2.3.0-dev
 jruby-1.5.6

そしてインストール

# rbenv install -v 2.2.1

インストールしたバージョンのRubyを使用できるように選択する。

# rbenv rehash
# rbenv global 2.2.1

念のため設定できているか、バージョンの確認

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

Railsインストール。ようやっとここまできた。

pwd
/root
# gem update --system
# gem install nokogiri -- --use-system-libraries
# gem install --no-ri --no-rdoc rails
# gem install bundler
# rbenv rehash
#

念のためRailsのバージョン確認

# pwd
/root
# rails -v
Rails 4.2.1
#

gemでちゃんとインストールされたか確認

# gem list | grep rails
*** LOCAL GEMS ***
rails (4.2.5.1)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.7)
rails-html-sanitizer (1.0.3)

早速、Railsのサンプルwebアプリを作成する

# cp -p /etc/passwd /etc/passwd.ORG
# cp -p /etc/shadow /etc/shadow.ORG
# cp -p /etc/group  /etc/group.ORG
# groupadd rails
# useradd rails -g rails -d /home/rails -s /bin/bash
# id rails
uid=501(rails) gid=501(rails) groups=501(rails)
# su - rails ←ここでrailsの特権ユーザに切り替える
$ cd ~
$ pwd
/home/rails
$ rails new sample --skip-bundle
     create
     create  README.rdoc
     create  Rakefile
     create  config.ru
     create  .gitignore
     create  Gemfile
     create  app
     create  app/assets/javascripts/application.js
     create  app/assets/stylesheets/application.css
     <中略>
     create  vendor/assets/javascripts/.keep
     create  vendor/assets/stylesheets
     create  vendor/assets/stylesheets/.keep

サンプルアプリケーションのGemfile設定(therubyracerの行を追加)
呪文をちょちょいと。

$ cp -p /home/rails/sample/Gemfile /home/rails/sample/Gemfile.ORG
$ diff /home/rails/sample/Gemfile /home/rails/sample/Gemfile.ORG
$ cd /home/rails/sample
$ pwd
/home/rails/sample
$ echo "gem 'therubyracer'" >> /home/rails/sample/Gemfile
$ echo "gem 'sqlite3'" >> /home/rails/sample/Gemfile
$ bundle config build.nokogiri --use-system-libraries
$ bundle install --path=/home/rails/sample/vendor/bundle
Your Gemfile lists the gem sqlite3 (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of just one of them later.
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies....
Installing rake 10.5.0
Installing i18n 0.7.0
Installing json 1.8.3 with native extensions
Installing minitest 5.8.4
Installing thread_safe 0.3.5
Installing builder 3.2.2
Installing erubis 2.7.0
Installing mini_portile2 2.0.0
Installing rack 1.6.4
<中略>
Installing coffee-rails 4.1.1
Installing jquery-rails 4.1.0
Installing rails 4.2.5.1
Installing sass-rails 5.0.4
Installing web-console 2.3.0
Installing turbolinks 2.5.3
Bundle complete! 14 Gemfile dependencies, 57 gems now installed.
Bundled gems are installed into ./vendor/bundle.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!

サンプルwebアプリ、WEBrickを起動させる

$ pwd
/home/rails/sample
$ rails server -d -b 0.0.0.0
=> Booting WEBrick
=> Rails 4.2.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
$

curlコマンドで起動を確認

$ rails server -d -b 0.0.0.0  -p 10000
curl -s http://localhost:10000/ | grep "Ruby on Rails: Welcome aboard"
  <title>Ruby on Rails: Welcome aboard</title>

実際にアクセスしてみる。
http://GIP:10000
これで、「Welcome aboard You’re riding Ruby on Rails!」という表記の画面が表示されれば成功。
永く苦しい戦いだった。

ちなみに

Railsサーバの正式な停止方法が見当たらなかったので、killコマンドで停止させることにした。

# ps aux 
# kill -KILL "railsのPID"