LoginSignup
4
2

More than 5 years have passed since last update.

Ubuntuにrbenvを導入しようとしてちょっと躓いた話

Last updated at Posted at 2017-12-02

(備忘録、あとで修正・追記するかも)

以下の記事に従って、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 なども使うことができました。

あとがき

とりあえず何とか使えるようになりました。
今後安定して動作するのか心配ですが、
不具合があれば追記などで報告します。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2