CentOSにruby on railsをインストールする

Author:

CentOSにrailsをインストールするまでの手順を説明します。
最初はけっこうつまづくのですよ、これ。

さてrailsを入れるにはまずrubyを入れます。
rubyはyumとかでも入れられますが、rbenvってのを使ってインストールするのが主流です。
rbenvのインストールにはgitってのが必要です。

ってことで、まずはgitを入れましょう。

Gitのインストール

sudo yum install git.x86_64

rbenvをインストール

次にgitのcloneでrbenvをインストールします。
ホームディレクトリに入れる人と/usr/local/に入れる人がいるみたいですね。
前者はユーザーごと、後者は全ユーザー共通で使えます。
ただし前者はパーミッションで怒られること多いです。

git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv

もしくは

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

これでインストールができました。

環境設定

次は環境設定が必要です。
毎回ログインするたびに環境設定をするのは面倒臭いので、ログイン時に呼ばれる .bash_profileに設定します。

vi ~/.bash_profile

下記を追記します。rbenvを~/.rbenvに入れた方は修正してください。

export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"

bash_profileを読み直します。

source ~/.bash_profile

ruby_buildをインストール

次はruby-buildをインストールします。

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

これもrbenvを~/.rbenvに入れた方は修正してください。
僕が以前やった時はインストールシェルを叩かないと駄目でした。

sudo /usr/local/rbenv/plugins/ruby-build/install.sh

rubyをインストールする

続いてruby本体をインストールします。

rbenv install --list

色々なバージョンが表示されるので、入れたいバージョンをインストールしてください。

rbenv install 2.2.0

これでインストールできます。
少々時間がかかりますが、/tmp/ruby-build.20150722231922.1512.logとかいう感じのログが出力されるのでtail -fで進捗を確認できます。

エラーが出たらResults logged to /tmp/ruby-build.20150722231453.20780.logとか出力されていると思うのでそれを確認。

もしこんなエラーが出ていたら

/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: could not read symbols: Bad value

libffiをインストールしてください。

yum install libffi-devel

こんなのも要求されるかもしれません。

yum install -y readline-devel

次は環境を読み直します。

rbenv rehash

んでインストールされているか確認してみましょう。

rbenv versions

インストールされていれば、次のコマンドで使えるようになります。

rbenv global 2.2.0

試しに実行してみましょう。

[tea@localhost ~]$ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]

ちゃんと使えるみたいですね。

Ruby on Railsをインストール

さてラスト。railsを入れます。
rbenvインストールした時点でgemっていうツールが使えるようになっているため、これを使います。
まずは探してみましょう。

gem search -r rails

いっぱい出てくるかと。
この中のrails本体を入れます。

gem install rails

インストール終わったら試しに何か作ってみましょう。
ちなみにsqlite入ってないとコケます。

rails new first
cd first
rails server

こんなエラーが出た場合、Gemfileを修正しましょう。

/home/tea/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/execjs-2.5.2/lib/execjs/runtimes.rb:48:in `autodetect': Could not find a JavaScript runtime.

Gemfileを開いて、

vi Gemfile

下記コメントを外します。

# gem 'therubyracer', platforms: :ruby

インストールをやり直して、

bundle install

再度起動。

rails server

さらにこんなエラーが出た場合、もう一つ入れるものがあります。

    Sorry, you can't use byebug without Readline. To solve this, you need to
    rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get
    install libreadline-dev` and then reinstall your Ruby.

これ一度直しちゃうと基本的にもう出なくなるから、大抵のサイトにメモが無かったりするのですよね。

Gemfileを開いて、

vi Gemfile

下記行を追加します。どこでもいいです。

gem 'rb-readline'

インストールをやり直して、

bundle install

再度起動。

rails server

これで終了。

アクセスする

railsはhttpdよりもアクセスが大変だったり。
ただrails serverするだけだとlocalhostからはつなげますが、外部からはつなげません。
すなわちCentOS上のFirefoxからlocalhost:3000とすればつなげますが、windowsやMacから192.168.88.128:3000とやってもつなげないのです。
ってことでVMやvpsからつなぐ場合はifconfigで自分のipを見て、-bオプションをつけましょう。

rails server -b 192.168.88.128

もちろんファイアーウォールとかSELinuxにも気をつけて。
CentOSのファイアウォールとSELinux設定解除方法

ぼちぼち使ってみよう編も書きます。

Share on Facebook
Pocket