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

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

ただいまの
回答率

90.51%

  • Ruby

    9437questions

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

  • CentOS

    3146questions

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

  • Vagrant

    1389questions

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

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 543

roronoazoro

score 61

仮想環境下の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]

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

 以前解決した時の対処法

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

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

Step 1: Install Command line tools on terminal
xcode-select --install

Step 2: Install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

step3
sudo port uninstall ruby

step4
rvm implode
brew install rbenv ruby-build
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

Step 5: Install​ ​Ruby
rbenv install 2.3.0
rbenv global 2.3.0
ruby -v

step 6 install bundller and​ ​rails
gem install bundler
bundle -v
gem install rails
rails -v

 rbenvでRubyインストール

>Try running yum install -y readline-devel to fetch missing dependencies.  
上記のエラーメッセージの通りreadline-devel?をインストールしても相変わらずでした。

[vagrant@localhost ~]$ rbenv install 2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

BUILD FAILED (CentOS Linux 7 using ruby-build 20180224)

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

Last 10 log lines:
installing rdoc:              /home/vagrant/.rbenv/versions/2.3.0/share/ri/2.3.0/system
installing capi-docs:         /home/vagrant/.rbenv/versions/2.3.0/share/doc/ruby
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `yum install -y readline-devel` to fetch missing dependencies.

Configure options used:
  --prefix=/home/vagrant/.rbenv/versions/2.3.0
  LDFLAGS=-L/home/vagrant/.rbenv/versions/2.3.0/lib
  CPPFLAGS=-I/home/vagrant/.rbenv/versions/2.3.0/include
[vagrant@localhost ~]$ ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
-bash: 予期しないトークン `(' 周辺に構文エラーがあります

 ゲスト側.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
export PATH='/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin':"$PATH"
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

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

 3/1追記

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

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

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

provision

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/28 22:40

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

    キャンセル

0

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

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

  config.vm.provision "shell", inline: <<-SHELL
    yum -y --releasever=6.8 update # &>/dev/null
    yum -y install gcc gcc-c++ make git openssl-devel readline-devel zlib-devel
    yum -y install automake libtool bzip2-devel sqlite-devel
  SHELL
  use_ruby_version = "2.4.3"
  use_node_version = "v9.5.0"
  config.vm.provision "shell", privileged: false, inline: <<-SHELL
    if ! type anyenv &>/dev/null;then
      git clone https://github.com/riywo/anyenv ~/.anyenv
      echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
      echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
      source ~/.bash_profile
      mkdir -p $(anyenv root)/plugins
      git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
    fi
    if ! type rbenv ndenv &> /dev/null;then
      anyenv install rbenv --skip-existing
      anyenv install ndenv --skip-existing
      source ~/.bash_profile
    fi
    if ! type ruby &> /dev/null || ruby -e "exit RUBY_VERSION != '#{use_ruby_version}'";then
      rbenv install #{use_ruby_version} --skip-existing
      rbenv global #{use_ruby_version}
    fi
    if ! type node &> /dev/null || [ $(node -v) != "#{use_node_version}" ];then
      ndenv install #{use_node_version} --skip-existing
      ndenv global #{use_node_version}
    fi
    # gem update --system --no-document
    # gem install --no-document --force bundler
    # gem install --no-document rails pry
    rbenv rehash
  SHELL

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/28 22:32

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

    キャンセル

  • 2018/02/28 22: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)

    キャンセル

  • 2018/02/28 23:03

    回答に書いてある通り'vagrant provision'してください。

    私は公式以外のディスクイメージが気持ち悪いので、centos/7で遊んでますが
    気軽に作って壊せるのがvagrantの強みなので好きにすればいいと思います。

    キャンセル

  • 2018/03/01 08:25 編集

    記載し忘れておりましたが、vagrant provisionも行っておりました。
    本文下に追記しましたのでご確認いただけますと助かります。
    よろしくお願いします。

    そうですね。強み活かして遊べればと思います。。

    キャンセル

  • 2018/03/01 09: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のところを消しとくといい感じでした。

    キャンセル

  • 2018/03/01 12:30

    無意識のうちにアップグレードしていたということですかね、、
    このボックスイメージはデフォルトのものではなくなっているので、削除するという解釈で大丈夫でしょうか?

    >なお、centos/7では--releasever=6.8のところを消しとくといい感じでした。
    かしこまりまりました。試してみたいと思います。

    キャンセル

同じタグがついた質問を見る

  • Ruby

    9437questions

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

  • CentOS

    3146questions

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

  • Vagrant

    1389questions

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