Edited at

CentOS6.9 に ruby の環境を作って、Ruby on Rails のプロジェクトを作る

More than 1 year has passed since last update.


やりたいこと

ローカルの vagrant 上で ruby をインストールして、Ruby On Rails5 のプロジェクトを新規作成する


環境、条件


  • Vagrant 2.0.1

  • CentOS release 6.9 (Final)


手順


1. 関連するパッケージを追加

$ sudo yum install gcc make openssl-devel libffi-devel readline-devel git


2. rbenv を入れる

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

$ pwd
/home/vagrant

$ ls -la
合計 68
...
drwxr-xr-x. 9 vagrant vagrant 4096 1月 6 18:38 2018 .rbenv
...

//rbenv のバージョン見てみる
$ rbenv -v
rbenv 1.1.1-28-gb943955

//パスの追加
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile


3. rbenv-buildを入れる

$ cd .rbenv

$ pwd
/home/vagrant/.rbenv

$ mkdir plugins

$ cd plugins/
$ pwd
/home/vagrant/.rbenv/plugins

$ git clone git://github.com/sstephenson/ruby-build.git ruby-build

$ ls -la
合計 12
...
drwxr-xr-x. 7 vagrant vagrant 4096 1月 6 18:42 2018 ruby-build


4. インストール可能な rubyバージョンを確認

$ rbenv install -l

Available versions:
1.8.5-p52
1.8.5-p113
1.8.5-p114
...


5. rubyのインストール

$ rbenv install 2.5.0

ここで、2.5.0を入れようとしたら、エラーで引っかかりました。

Downloading ruby-2.5.0.tar.bz2...

-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2
Installing ruby-2.5.0...

BUILD FAILED (CentOS release 6.9 (Final) using ruby-build 20171226)

Inspect or clean up the working tree at /tmp/ruby-build.20180106184642.3957
Results logged to /tmp/ruby-build.20180106184642.3957.log

Last 10 log lines:
prelude.c: In function ‘prelude_eval’:
prelude.c:204: error: #pragma GCC diagnostic not allowed inside functions
prelude.c:205: error: #pragma GCC diagnostic not allowed inside functions
prelude.c:221: error: #pragma GCC diagnostic not allowed inside functions
トップレベル:
cc1: 警告: unrecognized command line option "-Wno-self-assign"
cc1: 警告: unrecognized command line option "-Wno-constant-logical-operand"
cc1: 警告: unrecognized command line option "-Wno-parentheses-equality"
cc1: 警告: unrecognized command line option "-Wno-tautological-compare"
make: *** [prelude.o] エラー 1

調べてみると、どうやら CentOS6.9 で rbenv の rbenv-build を使って ruby 2.5.0 をビルドしようとすると出るrubyのエラー……なのかな……?ruby にチケット立ってたんだけど。。。

参考:https://bugs.ruby-lang.org/issues/14234

バージョン下げたらうまく行きました。

$ rbenv install 2.4.3

Downloading ruby-2.4.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.bz2
Installing ruby-2.4.3...
Installed ruby-2.4.3 to /home/vagrant/.rbenv/versions/2.4.3


6. 使うバージョンを指定

$ rbenv global 2.4.3

//ruby のバージョンを確認
$ ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]


7. rails をインストール

$ gem install rails

//rails のバージョンを確認
$ rails -v
Rails 5.1.4


8. rails プロジェクトを新規作成

$ rails new project-name

したら、なぜか怒られた。

An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue.

Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.

In Gemfile:
sqlite3
run bundle exec spring binstub --all
Could not find gem 'sqlite3' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.

エラー文見たらこれ試してみてーってのが書いてあったので、

yum install sqlite-devel

gem install sqlite3 -v '1.3.13'

これをしてから再度 rails new をしたら、無事にプロジェクトが新規作成出来ました。

最初にパッケージで入れとかないといけなかったかな…?


参考

http://blog.mitsuto.com/ruby-install-centos

https://blog.bungu-do.jp/tutorials/how-to-install-ruby-with-rbenv-on-centos-6

Railsの本家 http://guides.rubyonrails.org/getting_started.html