質問: ### 前提・実現したいこと→Ubuntu15.10でRuby2.2.2を使える環境を構築したい Ubuntu15.10でRuby2.2.2以上の環境を導入するやり方を教えていただきたいです。 〜実装環境〜 Ubuntu15.10 ### 試したこと→Ubuntu14.04にrbenvでRuby2.2.2をインストール ``` $sudo apt-get update #rbenvとgit、OpenSSLをインストール $sudo apt-get install -y git rbenv libssl-dev # .bashrcに以下を追記してrbenvのパスを通す $vi .bashrc # export PATH="$HOME/.rbenv/bin:$PATH" # eval "$(rbenv init -)" $source .bashrc #ruby-buildリポジトリを取得し、.rbenv/plugins配下に展開 $git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build #rbenvでruby2.2.2をインストール $rbenv install 2.2.2 #rubyバージョン2.2.2を使用 $rbenv global 2.2.2 #2.2.2と出力されれば成功 $ruby -v ``` `$git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build` 以降進みません。 `$ rbenv install 2.2.2` とすると ``` Downloading ruby-2.2.2.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.bz2 Installing ruby-2.2.2... BUILD FAILED (Ubuntu 15.10 using ruby-build 20160913-13-g8ef0c34) Inspect or clean up the working tree at /tmp/ruby-build.20161102172115.2176 Results logged to /tmp/ruby-build.20161102172115.2176.log Last 10 log lines: make[2]: *** [ossl_ssl.o] Error 1 make[2]: Leaving directory '/tmp/ruby-build.20161102172115.2176/ruby-2.2.2/ext/openssl' exts.mk:201: recipe for target 'ext/openssl/all' failed make[1]: *** [ext/openssl/all] Error 2 make[1]: *** 未完了のジョブを待っています.... linking shared-object sdbm.so make[2]: Leaving directory '/tmp/ruby-build.20161102172115.2176/ruby-2.2.2/ext/sdbm' make[1]: Leaving directory '/tmp/ruby-build.20161102172115.2176/ruby-2.2.2' uncommon.mk:189: recipe for target 'build-ext' failed make: *** [build-ext] Error 2 ``` とでました。 `$ rbenv global 2.2.2` とすると ``` rbenv: version `2.2.2' not installed ``` となります。 ### 余談 ``` Ubuntu Ruby 2.2.2 導入 ``` 等でググった時、 Ubuntu14.04等のバージョンの違うUbuntuの情報などが大半です。Macでのやり方もよくヒットします。 バージョン等が違ってもコマンドをコピペして実行等しても大丈夫でしょうか? Ubuntuで開発環境の構築の仕方について詳しい方は基礎をどこで学んだのでしょうか?そのようなサイトがあれば是非知りたいです。 ### 補足情報(言語/FW/ツール等のバージョンなど) Ubutu15.10 `ruby -v` ``` ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-linux-gnu] ``` です。よろしくお願いします。
回答: 精神論から書いてしまいますが > > Ubuntuで開発環境の構築の仕方について詳しい方は基礎をどこで学んだのでしょうか?そのようなサイトがあれば是非知りたいです。 > > > もうこれは実地訓練あるのみです。 正に今dlrowollehさんがぶちあたっているような壁にぶちあたり、ああでもないこうでもないと色々調べ試し失敗しと繰り返す事でそれが血となり肉となり骨となっています。 そしてそこで得た知見などをblogにまとめたり、teratailで同じような問題にぶちあたっている人を助けたりしてオープンソースの世界が互助精神でなりたっています。 で、 Ruby 2.2.2 のインストールですね。 WindowsやMacなどはバイナリファイルとしてコンパイル済のアプリケーションが提供される事がほとんどですがUbuntuなどLinuxではソースコードで提供される場合もあります。 Ruby はバイナリパッケージとしての提供もありますが、自分の使いたいバージョンのRubyをインストールするには自分でソースコードを取得しコンパイルする必要があります。 が、その辺を簡単にしてくれるのがrbenvというツールです。 しかし実際には裏でソースコードのコンパイルを行っています。 RubyのRubyだけでなく他のオープンソースのライブラリを使用している部分もあるので、その部分も必要なのですが、これはrbenvは世話をしてくれないので自分で入れる必要があります。 そしてOSによって(Ubuntuのバージョンなどによって)最初から入っているライブラリが異なるのでOSによって導入手順も異ります。 ですので > > Ubuntu14.04等のバージョンの違うUbuntuの情報などが大半です。Macでのやり方もよくヒットします。 > > バージョン等が違ってもコマンドをコピペして実行等しても大丈夫でしょうか? > > > うまくいく場合もありますし。だめな場合もあります。 またOSのセットアップ方法によっては最初から入っているライブラリなどが異なるためバージョン等が同じでもうまくいかない事もあります。 今回の場合現時点では ``` exts.mk:201: recipe for target 'ext/openssl/all' failed ``` という事になっているので openssl で失敗だな。と読みとき、じゃぁ openssl の何が失敗か?足りてないものはないのかを調べ、足りてないものは apt-get install するという作業を繰替えす事になります。 というのが正攻法ですが。。。。 ubuntu15.10にrbenv使ってRubyをインストールする に書いてある ``` $ sudo apt-get install build-essential bison libreadline6-dev curl git-core zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf libncurses5-dev ``` を実行すれば必要なものは全部入る気がします。 (余計なものもある気もしますが。。。。) (気がします。というのは手元にUbuntu 15.10がないので試せていないためです。)