(備忘録、あとで修正・追記するかも)
以下の記事に従って、rbenvを導入しようとしたところ、ちょっと躓きました。。
rbenv で ruby の環境を整える - Qiita
一応解決済みです。
多分自分の環境に特有の問題なのだと思いますが、
誰かのためにメモを残しておきます。
自分のLinux環境
Ubuntu 14.04.05 LTS
(VMware Workstatin 12 Playerを使ってWindows10上で動かしている)
build-essentialがインストールできない
元記事から引用
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
git clone は問題なし。
apt-get でエラーが出てインストールが止まりました。
メッセージを見ると
The following packages have unmet dependencies:
build-essential : Depends: dpkg-dev (>= 1.13.5) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
とのこと。
それでは、と dpkg-devとやらを入れようとしたところ、今度は
$ sudo apt-get install dpkg-dev
The following packages have unmet dependencies:
dpkg-dev : Depends: libdpkg-perl (= 1.17.5ubuntu5.6) but 1.17.5ubuntu5.7 is to be installed
Recommends: build-essential but it is not going to be installed
Recommends: fakeroot
Recommends: libalgorithm-merge-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
ということでインストールできませんでした。
perlのパッケージのダウングレードが必要ということでしょうか?
一筋縄では行かない気配を感じます。
apt-get で直接 rbenvをインストール
元記事では「apt-getを使って rbenv をインストールすることもできる」
と書いてありましたので、そちらの方法をとることにしました。
その前に、gitで作った ~/.rbenv/ はバックアップを取っておきます。
~$ mv .rbenv/ dot_rbenv_backup/
apt-getによるrbenvのインストールは滞りなく済みました。
~$ sudo apt-get install rbenv
(略)
Setting up rbenv (0.4.0+debian1-2) ...
すぐには動かなかったので微調整
rbenvのバージョンを確認しようとすると
$ rbenv -v
/usr/lib/rbenv/libexec/rbenv---version: line 17: cd: /home/USERNAME/.rbenv: No such file or directory
となりました
「aptって色々な依存関係とかを全部何とかしてくれるのでは?」
と首を捻りつつ、さきほどバックアップをとった
~/dot_rbenv_backup/(git からクローンしてきたもの)
の名前を ~/.rbenv に戻して再度実行してみると
~$ mv dot_rbenv_backup/ .rbenv/
$ rbenv -v
rbenv 1.1.1-25-g6aa70b6
となりました。
このまま進んでいいのか不安になりつつも、
適当なバージョンのrubyのインストールをしてみます。
$ rbenv install -l | grep 2.4.2
2.4.2
$ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
BUILD FAILED (Ubuntu 14.04 using ruby-build 20170914-17-g331a408)
Inspect or clean up the working tree at /tmp/ruby-build.20171202170107.31978
Results logged to /tmp/ruby-build.20171202170107.31978.log
Last 10 log lines:
installing rdoc: /home/USERNAME/.rbenv/versions/2.4.2/share/ri/2.4.0/system
installing capi-docs: /home/USERNAME/.rbenv/versions/2.4.2/share/doc/ruby
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libreadline-dev` to fetch missing dependencies.
Configure options used:
--prefix=/home/USERNAME/.rbenv/versions/2.4.2
LDFLAGS=-L/home/USERNAME/.rbenv/versions/2.4.2/lib
CPPFLAGS=-I/home/USERNAME/.rbenv/versions/2.4.2/include
「libreadline-devというのを入れてみなさい」と書いてありますので、
指示に従ってから再び ruby のインストールに挑戦します。
$ sudo apt-get install -y libreadline-dev
(略)
Setting up libreadline-dev:amd64 (6.3-4ubuntu2) ...
$ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
Installed ruby-2.4.2 to /home/USERNAME/.rbenv/versions/2.4.2
今度はインストールできました。
この後、$ which ruby などを確認してパスが通ってないことに気づき、
元記事に従って .bashrc を書き換えたところ、
rbenv local なども使うことができました。
#あとがき
とりあえず何とか使えるようになりました。
今後安定して動作するのか心配ですが、
不具合があれば追記などで報告します。