質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

2回答

429閲覧

仮想環境下でのrubyのアップグレード方法について

roronoazoro

総合スコア113

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2018/02/27 23:31

編集2018/02/28 23:25

仮想環境下のRubyのバージョンを2.2以上にしたく、バージョンをググりながら試しているのですが、うまくいきません。
現在仮想環境下で**【質問対応停止中】【作りながら覚える!】 Ruby on Rails を用いたウェブ**の環境構築をしております。
そこで、Rubyのバージョンを2.2.0以上にしないとrailsをインストールできないようなので、試し試しやっているのですが、なかなかうまく行きません。

  • Vagrant 1.9.7
  • bento/centos-6.8"
  • ゲストOS側 : ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

以前も同じようなことで質問したのですが、それを行っても解決いたしませんでした。下記コード 。

以前解決した時の対処法

sh

1[vagrant@localhost ~]$ sudo yum install -y openssl-devel readline-devel zlib-devel 2読み込んだプラグイン:fastestmirror 3base | 3.6 kB 00:00:00 4extras | 3.4 kB 00:00:00 5updates | 3.4 kB 00:00:00 6Loading mirror speeds from cached hostfile 7 * base: ftp.tsukuba.wide.ad.jp 8 * extras: ftp.tsukuba.wide.ad.jp 9 * updates: ftp.tsukuba.wide.ad.jp 10パッケージ 1:openssl-devel-1.0.2k-8.el7.x86_64 はインストール済みか最新バージョンです 11パッケージ readline-devel-6.2-10.el7.x86_64 はインストール済みか最新バージョンです 12パッケージ zlib-devel-1.2.7-17.el7.x86_64 はインストール済みか最新バージョンです 13何もしません

インストールする流れは下記のようです。pdfより抜粋。

pdf

1Step 1: Install Command line tools on terminal 2xcode-select --install 3 4Step 2: Install Homebrew 5ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 6 7step3 8sudo port uninstall ruby 9 10step4 11rvm implode 12brew install rbenv ruby-build 13echo 'eval "$(rbenv init -)"' >> ~/.bash_profile 14source ~/.bash_profile 15 16Step 5: Install​ ​Ruby 17rbenv install 2.3.0 18rbenv global 2.3.0 19ruby -v 20 21step 6 install bundller and​ ​rails 22gem install bundler 23bundle -v 24gem install rails 25rails -v

rbenvでRubyインストール

Try running yum install -y readline-devel to fetch missing dependencies.

上記のエラーメッセージの通りreadline-devel?をインストールしても相変わらずでした。

sh

1[vagrant@localhost ~]$ rbenv install 2.3.0 2Downloading ruby-2.3.0.tar.bz2... 3-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 4Installing ruby-2.3.0... 5ruby 2.0.0p648 (2015-12-16) [x86_64-linux] 6 7BUILD FAILED (CentOS Linux 7 using ruby-build 20180224) 8 9Inspect or clean up the working tree at /tmp/ruby-build.20180227134100.6140 10Results logged to /tmp/ruby-build.20180227134100.6140.log 11 12Last 10 log lines: 13installing rdoc: /home/vagrant/.rbenv/versions/2.3.0/share/ri/2.3.0/system 14installing capi-docs: /home/vagrant/.rbenv/versions/2.3.0/share/doc/ruby 15The Ruby readline extension was not compiled. 16ERROR: Ruby install aborted due to missing extensions 17Try running `yum install -y readline-devel` to fetch missing dependencies. 18 19Configure options used: 20 --prefix=/home/vagrant/.rbenv/versions/2.3.0 21 LDFLAGS=-L/home/vagrant/.rbenv/versions/2.3.0/lib 22 CPPFLAGS=-I/home/vagrant/.rbenv/versions/2.3.0/include 23[vagrant@localhost ~]$ ruby 2.0.0p648 (2015-12-16) [x86_64-linux] 24-bash: 予期しないトークン `(' 周辺に構文エラーがあります 25

ゲスト側.bash_profile

sh

1# .bash_profile 2 3# Get the aliases and functions 4if [ -f ~/.bashrc ]; then 5 . ~/.bashrc 6fi 7 8# User specific environment and startup programs 9 10PATH=$PATH:$HOME/.local/bin:$HOME/bin 11 12export PATH 13export PATH='/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin':"$PATH" 14export PATH="$HOME/.rbenv/bin:$PATH" 15eval "$(rbenv init -)"

随時試したことをのせていこうと思っていますがrubyのことを理解していないため、手探りでコマンドを打っている状態です。
アドバイスいただけますと幸いです。
よろしくお願いします。

3/1追記

vagrant provision行っているの忘れておりました。
下記キャプチャです。
文字数制限の問題でキャプチャ画像にいたしました。

なおキャプチャのエラーメッセージにもあった下記コマンドを実施しましたが、相変わらずでした。

ruby

1[vagrant@localhost ~]$ sudo yum install -y readline-devel 2読み込んだプラグイン:fastestmirror 3base | 3.6 kB 00:00:00 4extras | 3.4 kB 00:00:00 5updates | 3.4 kB 00:00:00 6(1/2): extras/7/x86_64/primary_db | 166 kB 00:00:03 7(2/2): updates/7/x86_64/primary_db | 6.0 MB 00:00:07 8Loading mirror speeds from cached hostfile 9 * base: ftp.tsukuba.wide.ad.jp 10 * extras: ftp.tsukuba.wide.ad.jp 11 * updates: ftp.tsukuba.wide.ad.jp 12パッケージ readline-devel-6.2-10.el7.x86_64 はインストール済みか最新バージョンです 13何もしません 14

provision

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

CentOSは窓から投げ捨てて、ubuntuかDebianを使いましょう。

投稿2018/02/28 03:03

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roronoazoro

2018/02/28 13:40

週末にでもまとまった時間使ってやってみようかと。。。 CentOSの環境構築でいつもつまづきます、、、
guest

0

Centos6.8だと最新のRuby2.5.0が(Ruby側の)バグでビルドできないので
とりあえずビルドできる中で最新の2.4.3を入れてみる。

以下をVagrantfile内のVagrant.configure("2") do |config|のブロック内に追記

vagrant

1 config.vm.provision "shell", inline: <<-SHELL 2 yum -y --releasever=6.8 update # &>/dev/null 3 yum -y install gcc gcc-c++ make git openssl-devel readline-devel zlib-devel 4 yum -y install automake libtool bzip2-devel sqlite-devel 5 SHELL 6 use_ruby_version = "2.4.3" 7 use_node_version = "v9.5.0" 8 config.vm.provision "shell", privileged: false, inline: <<-SHELL 9 if ! type anyenv &>/dev/null;then 10 git clone https://github.com/riywo/anyenv ~/.anyenv 11 echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile 12 echo 'eval "$(anyenv init -)"' >> ~/.bash_profile 13 source ~/.bash_profile 14 mkdir -p $(anyenv root)/plugins 15 git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update 16 fi 17 if ! type rbenv ndenv &> /dev/null;then 18 anyenv install rbenv --skip-existing 19 anyenv install ndenv --skip-existing 20 source ~/.bash_profile 21 fi 22 if ! type ruby &> /dev/null || ruby -e "exit RUBY_VERSION != '#{use_ruby_version}'";then 23 rbenv install #{use_ruby_version} --skip-existing 24 rbenv global #{use_ruby_version} 25 fi 26 if ! type node &> /dev/null || [ $(node -v) != "#{use_node_version}" ];then 27 ndenv install #{use_node_version} --skip-existing 28 ndenv global #{use_node_version} 29 fi 30 # gem update --system --no-document 31 # gem install --no-document --force bundler 32 # gem install --no-document rails pry 33 rbenv rehash 34 SHELL

後はホスト側でvagrant provisionを実行

use_ruby/node_versionで入れたいバージョンを選んでもいい

投稿2018/02/28 01:02

編集2018/02/28 01:15
asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roronoazoro

2018/02/28 13:32

詳しいご回答ありがとうございます。 上記をVagrantfileに記述後vagnrat up , vagrant reload , vagrant sshをしてゲスト側を確認してみてもruby 2.0.0p648 (2015-12-16) [x86_64-linux]のままでした。 このあとrbenvなどで再インストールするのでしょうか?
roronoazoro

2018/02/28 13:34

また、別件ですが、もしこのエラーが長引くようでしたら、ボックスイメージの変更も考えております。 現在インストール済のボックスイメージは下記なのですが、比較的スムーズ事が運びそうなボックスイメージなどありましたら教えていただきたいです、、 よろしくお願いいたします。 CentOS7 (virtualbox, 0) Ubuntu16.04 (virtualbox, 0) bento/centos-6.7-i386 (virtualbox, 2.2.7) bento/centos-6.8 (virtualbox, 2.3.4) bento/centos-6.9 (virtualbox, 2.3.5) bento/centos-7.3 (virtualbox, 2.3.8) centos/7 (virtualbox, 1705.02) ubuntu/trusty64 (virtualbox, 20170613.0.0)
asm

2018/02/28 14:03

回答に書いてある通り'vagrant provision'してください。 私は公式以外のディスクイメージが気持ち悪いので、centos/7で遊んでますが 気軽に作って壊せるのがvagrantの強みなので好きにすればいいと思います。
roronoazoro

2018/02/28 23:28 編集

記載し忘れておりましたが、vagrant provisionも行っておりました。 本文下に追記しましたのでご確認いただけますと助かります。 よろしくお願いします。 そうですね。強み活かして遊べればと思います。。
asm

2018/03/01 00:33

あー bento/centos-6.8って言うから6.8のまま使ってるのかと思ったらcentos7にアップグレードされてるのか [CentosのFAQ](https://wiki.centos.org/FAQ/General#head-3ac1bdb51f0fecde1f98142cef90e887b1b12a00) > (意訳) Q: メジャーバージョンをアップグレードしたいんだけど > A: オススメしないしサポートもしない。バックアップしてクリーンインストールがただ一つオススメできる方法です。 なお、centos/7では--releasever=6.8のところを消しとくといい感じでした。
roronoazoro

2018/03/01 03:30

無意識のうちにアップグレードしていたということですかね、、 このボックスイメージはデフォルトのものではなくなっているので、削除するという解釈で大丈夫でしょうか? >なお、centos/7では--releasever=6.8のところを消しとくといい感じでした。 かしこまりまりました。試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問