CentOS7にRuby on Railsを導入する方法
2016/09/04
こんにちは、okutani(@okutani_t)です。本記事ではCentOS7にRuby on Railsを導入する手順を紹介しています。
Ruby自体の導入は、『rbenv』という複数バージョンのRubyを利用できるツールを使っています。詳しく知りたい方は、下記の記事を先に一読しておくとより理解が深まるかと思います。
参考rbenvを使って複数バージョンのrubyを導入する | vdeep
本記事では、rbenvを使ったrubyの導入から解説しています。
また、本記事で導入したCentOSのバージョンは以下のとおりです。
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
では、さっそくCentOS7にRuby on Railsを導入してみましょう。
スポンサーリンク
rbenvを使ってrubyを導入
まずは、rbenvを使ってrubyを導入します。今回はruby2.3.0を導入。
先にrbenvの依存関係を解消しておきます。
$ sudo yum -y install gcc gcc-c++ make bzip2 libyaml-devel libffi-devel zlib-devel openssl-devel readline-devel gdbm-devel ncurses-devel
rbenvを導入しましょう。
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
次にruby-buildを導入します。
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
「~/.bash_profile」に以下を記述。
$ sudo vi ~/.bash_profile
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
シェルの再読み込みをおこないます。
$ source ~/.bash_profile
rbenv導入確認。
$ rbenv --version
rbenv 1.0.0-19-g29b4da7
rubyの導入。
$ rbenv install 2.3.0
このrubyのバージョンをグローバルに利用するよう設定。
$ rbenv global 2.3.0
ruby導入の確認。
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
無事にruby2.3.0が導入できました。
rbenvをシステムワイドに導入する場合
もし、rbenvをシステムワイドに導入するには「/usr/local/」にインストールすればOKです。システムワイドに利用したい場合はこちらの方法で導入しましょう。
初めにrootに切り替えておきます。
$ su -
「/usr/local/」にrbenvとruby-buildを導入。
# git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv
# git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build
rbenv init時に「/rbenv/shims, rbenv/versions」が無いと、作成する権限がないうんぬんでエラーが起きてしまうので先に作成。
# cd /usr/local/
# mkdir rbenv/shims rbenv/versions
新しくrbenvユーザーを作成し、権限を設定しておきます。
# groupadd rbenv
# chgrp -R rbenv rbenv
# chmod -R g+rwxXs rbenv
# chgrp -R rbenv rbenv/plugins/ruby-build
# chmod -R g+rwxs rbenv/plugins/ruby-build
全ユーザーがsudoでgemを使えるように、「# visudo」から設定ファイルを開き、下記を追記。毎回、gem利用時はrootに切り替えるよって場合は設定しなくてOKです。
# visudo
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims
Defaults env_keep += "RBENV_ROOT"
全ユーザーが読み込む「/etc/profile.d/」にrbenv.shを作成&以下を記述。
# vi /etc/profile.d/rbenv.sh
export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
シェル読み込み。
# source /etc/profile.d/rbenv.sh
rubyインストール。
# rbenv install 2.3.0
# rbenv global 2.3.0
これでroot以外のユーザーでもrubyが使えますね。
root以外のユーザーがrbenvコマンドを使いたい場合は次のようにします。
$ sudo gpasswd -a `whoami` rbenv
システムワイドでrubyを使いたい場合は上記の方法で設定すればOKですね。
Ruby on Railsの導入
では、Ruby on Railsを導入していきましょう。
導入はgemコマンドでおこなうので、はじめにgemをアップデートしておきます。
$ sudo gem update --system
$ gem -v
2.6.2
次に、Railsを利用するために必要なツールを導入しましょう。
C言語のライブラリ依存に必要なNokogiriを導入します。libxml2はHTML/XML解析ライブラリで、Nokogiriの導入に必要なので先にインストールします。
$ sudo yum -y install libxml2 libxslt libxml2-devel libxslt-devel
$ sudo gem install nokogiri -- --use-system-libraries
データベースのSQLite3を導入。ちなみに、SQLite3はRailsの標準データベースとして採用されています。
$ sudo yum -y install sqlite sqlite-devel
$ sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
gemでSQLite3を利用できるようにしておきます。
$ sudo gem install sqlite3
次に、Bundlerという、Gemfileに記述した設定項目を一括でインストールできる便利ツールを導入しておきます。
本来ならBundler経由でnokogiriやSQLite3のライブラリを導入できるかと思いますが、本記事ではそれらライブラリは直接gemでインストールしています。以下を実行して、Bundlerをインストール。
$ sudo gem install bundler
$ bundle -v
Bundler version 1.11.2
前準備が整ったので、Ruby on Railsを導入しましょう。導入できるバージョンを確認します。
$ gem search -r rails
もしくは
$ gem search -r ^rails$ -a # 完全一致ですべてのバージョンを検索したい場合
今回は「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」で使用している4.2.2を導入します。
$ sudo gem install rails --version 4.2.2
導入を確認。
$ rails -v
Rails 4.2.2
無事にRuby on Railsが導入されました。
Ruby on Railsの動作確認
Ruby on Railsの動作確認をおこなってみましょう。
次のコマンドでアプリケーションを作成します。
$ rails new myapp
作成したアプリのディレクトリへ移動し、Webサーバーを立ち上げてみましょう。
$ cd myapp
$ rails server -b 0.0.0.0 #もしくは rails s -b 0.0.0.0
大量のエラーが出てしまう場合は、myappの中にあるGemfileを次のように編集します。
$ sudo vi Gemfile
# gem 'therubyracer', platforms: :ruby
↓#を外す
gem 'therubyracer', platforms: :ruby
Gemfileを使ってコメントアウトしたtherubyracerを導入します。
$ bundle install
こちらでもエラーが出る場合は、gcc-c++を導入すればOKです(本記事では冒頭で導入済です)。
$ sudo yum install -y gcc-c++
エラーが出ていないこと確認して、「http://IPアドレス:3000」へアクセス。
このように表示されれば、Ruby on Railsが正常に動作しています。サーバーはターミナル上でCtrl + cで停止させることができます。
CentOS7にRuby on Railsを導入する方法は以上です。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク