AWS構築 格闘日記-2 忘備録

rbenvにてインストールできない。

このようなエラーが出る

$ rbenv install -v 2.5.3
configure: error: in `/tmp/ruby-build.20190101085547.10626/ruby-2.5.3':
configure: error: no acceptable C compiler found in $PATH
$ rbenv -v
rbenv 1.1.1
$ which rbenv
~/.rbenv/bin/rbenv

gcc コンパイラが無いと行っているのか? rubyビルド がおかしいのか?

一つ問題はもともとamazon linuxには デフォルトでrubyがインストールされている。 それを削除しないと行けないのか? ログはここみたい

Results logged to /tmp/ruby-build.20190101085547.10626.log

ログをみると

checking for ruby... /usr/bin/ruby
tool/config.guess already exists
tool/config.sub already exists
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-build.20190101085547.10626/ruby-2.5.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

このページを読むとRuby-buildで入れるにしても、rbenvのRuby-buildを利用しないと行けないみたいだ。 rbenvで複数のバージョンのRubyを管理する - Qiita

デフォルトRuby-buildを削除して、入れ直してみよう

その前にlogの確認

See `config.log' for more details

BUILD FAILED (Amazon Linux AMI 2018.03 using ruby-build 20181225-1-g095d9db)

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

指示されているように`config.log' を見てみる しかしどこにあるのかわからない ruby-buildのパスが取っていないのか?

このページをみると

rbenvで複数のバージョンのRubyを管理する - Qiita

必要なパッケージのインストールをしないと行けないみたいだ。

$ sudo yum install gcc openssl-devel

gccらしきものはあるがopenssl-develが無いみたいだ。

//yumでインストールした一覧表示
$ yum list installed | grep gcc
libgcc72.x86_64                      7.2.1-2.59.amzn1              installed    
$ yum list installed | grep openssl-devel

インストール実行

$ sudo yum install openssl-devel

これで

$ rbenv install -v 2.5.3

しかしまた同じエラー ruby-buildにパスをとおす?

$ whic ruby-build
-bash: whic: command not found

これをやっていなかった。 このページにrbenv とruby-buildの関係がわかりやすく書いてある。

rbenv + ruby-build はどうやって動いているのか - takatoshiono's blog

~/.rbenv/bin/rbenv init

やってみたけどだめ。

本家サイトによると

Home · rbenv/ruby-build Wiki · GitHub

これらをインストールしなさいとある。 はじめからここに行けばよかった。本家は大切!

$ sudo yum install -y gcc-6 bzip2 openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel

でもエラー

 no acceptable C compiler found in $PATH

CコンパイラのPATHを通ささないと行けないみたいだ。

rubyが邪魔しているのかもしれない

[ec2-user@udemy-rails-web1 ~]$ which ruby
/usr/bin/ruby

rubyのアンインストールを調べる そもそもyumでインストールされていた ラッキ-!

$ yum list installed | grep ruby
ruby.noarch                          1:2.0-0.3.amzn1               installed    
ruby20.x86_64                        2.0.0.648-1.31.amzn1          installed    
ruby20-irb.noarch                    2.0.0.648-1.31.amzn1          installed    
ruby20-libs.x86_64                   2.0.0.648-1.31.amzn1          installed    
rubygem20-bigdecimal.x86_64          1.2.0-1.31.amzn1              installed    
rubygem20-json.x86_64                1.8.3-1.51.amzn1              installed    
rubygem20-psych.x86_64               2.0.0-1.31.amzn1              installed    
rubygem20-rdoc.noarch                4.2.2-1.43.amzn1              installed    
rubygems20.noarch                    2.0.14.1-1.31.amzn1           installed  

成功!

$ sudo yum erase ruby.noarch

//===
Dependency Removed:
  vim-enhanced.x86_64 2:8.0.0503-1.45.amzn1                                     

Complete!

これをするといっぱいパッケージがインストールされた。 入っていなかったのか?

$ sudo yum install gcc

//==
Dependency Installed:
  cpp48.x86_64 0:4.8.5-28.142.amzn1                                             
  gcc48.x86_64 0:4.8.5-28.142.amzn1                                             
  glibc-devel.x86_64 0:2.17-260.175.amzn1                                       
  glibc-headers.x86_64 0:2.17-260.175.amzn1                                     
  kernel-headers.x86_64 0:4.14.88-72.73.amzn1                                   
  libgcc48.x86_64 0:4.8.5-28.142.amzn1                                          
  libgomp.x86_64 0:6.4.1-1.45.amzn1                                             
  libmpc.x86_64 0:1.0.1-3.3.amzn1                                               
  mpfr.x86_64 0:3.1.1-4.14.amzn1                                                

Complete!

パスは通さなくていいのか?疑問である。

$ ruby -v
-bash: /usr/bin/ruby: No such file or directory

今度はrubyのパスが通っていない???