やりたいこと
ローカルの 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