茶鏡のブログ

HTMLコーダーが文句ばっかりぐちぐちぐちぐち言う日記です。

OSXにrbenv入れようとして半日以上潰した話

※このポストに書かれている解決法は、自分が忘れないようにうろ覚えで書いているため、重要なことが抜けていたりする可能性があります。
思い出したりもう一度試した時に加筆していきます。

あらまし

「試験前になってしまうと掃除がしたくなるあれ」になってしまったようで、コーディングをはじめなければならないのに、環境をいじくってしまい半日以上潰してしまいました。

半日以上潰した罪状をここに書き遺します。

ここでおすすめ本!

Development Environments for Web Designers

この本は本当にありがたい本。また感想を記事にしたいくらい、むっちゃおすすめです!

Webサイト制作の時流に乗り遅れないために、覚えておきたい開発環境の作り方…という、こもりまさあきさんの本です。(まだまだ、執筆中とのこと!)とても簡単に言うと、ウェブデザイナーのための黒い画面とその周りのツールの指南書です。

なにがすごいかというと、UNIXの基本的なコマンドから始まり、Web制作で「よくわからないけど何故か登場してしまう」「気になるけど難しそう」なツールの使い方やインストール方法を網羅しています。

このポストで「Bundlerってなんじゃい!」となってますが、他のツールを使うためによくわからないままなんとなく導入している、ということはあまり健全ではないです。とはいうものの調べようとすると開発者向けの記事にたどり着き、結局ツールの魅力や骨子がわからなかったりします。 知識がいい加減な私にとっては「あ〜〜〜そういうことだったのね」が満載であります。 電子書籍ですが、iPadKindleを持っていなくても読めます。

やりたいこと

本を参考にしつつ、 Mac OSX 10.6.8 (古い)に、rbenv (Rubyのバージョンを切り替える)を導入します。
マシン買ってほしいなぁ。

やっぱりはまりました

あれやこれやいい加減に試すのでマシンの中はグッチャグチャで、するっと行かないのが世の常です。
Homebrewを削除してインストールからやり直しました。

問題1:rbenvが実行できない

rbenvとruby-buildを同時にインストールすると、ruby-buildのインストールに失敗する(後述)ので、1個ずつインストールしてみました★

/usr/local/bin/rbenv: fork: Resource temporarily unavailable
/usr/local/bin/rbenv: fork: Resource temporarily unavailable
/usr/local/bin/rbenv: line 63: rbenv---version: command not found
/usr/local/bin/rbenv: line 63: rbenv-help: command not found

ruby-buildをインストールせずに実行すると、コマンドのリファレンスのようなものがズドドドーーっと出たあとにこんなかんじで怒られました。

XAMPPがよくなかったようです。

わたしは横着者なのでたとえマシンが止まってもXAMPPを使います。

XAMPPを使用していると ~/.bash_profile にこんな記述があると思います。 この1行を ~/.bash_profile の一番下の行にカット&ペーストします。優先順位を下の方に持っていくのだそうです。

export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH

さらに、XAMPPのHEADファイルをリネームします。※sudo がいるかもしれません。

$ cd /Applications/XAMPP/xamppfiles/bin/
$ mv HEAD HTTP_HEAD

参考:これの2つ目の回答
rvm - Head usage unknown option -1 / -n error. Possibly ruby related - Stack Overflow

コレでインストールできました!

rbenv 0.4.0
Usage: rbenv <command> [<args>]

Some useful rbenv commands are:
  commands    List all available rbenv commands
  local       Set or show the local application-specific Ruby version
  global      Set or show the global Ruby version
  shell       Set or show the shell-specific Ruby version
  install     Install a Ruby version using ruby-build
  uninstall   Uninstall a specific Ruby version
  rehash      Rehash rbenv shims (run this after installing executables)
  version     Show the current Ruby version and its origin
  versions    List all Ruby versions available to rbenv
  which       Display the full path to an executable
  whence      List all Ruby versions that contain the given executable

See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/sstephenson/rbenv#readme

問題2:ruby-build のインストールが途中で止まる

調子に乗って $rbenv install -l などとやってみたらやっぱり怒られました。

rbenv: no such command `install'

ruby-build のインストールすっとばしたので当然なのですが、

brew install ruby-build

と正攻法でやっても、必要なファイルのGNUほげほげ(名前を失念しました…)が見つからないと、インストールが止まってしまいます。

手動インストール

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

この記事を読み、手動インストールできるんじゃね?という発想に…。これやってよいのかわからなかったのですが…、、

(1) ruby-buildのReleaseのところからソースコードをダウンロードしてきます。

(2)Homebrewでインストールしたパッケージが入っている下記のディレクトリにそのまま解凍。 /usr/local/Cellar/

(3)もう一回、brew install ruby-build を実行。

(4)このメッセージの言う通り、/usr/local/bin/ruby-build をどこか別の場所へ… ※これ以降は、基本的にメッセージの言うとおりにします。

The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/ruby-build
Target /usr/local/bin/ruby-build
already exists. You may want to remove it:
 rm '/usr/local/bin/ruby-build'

(5)関連付け(?)をします。

To force the link and overwrite all conflicting files:
 brew link --overwrite ruby-build

(6) で き た

$ rbenv install -l
Available versions:
 1.8.6-p383
 1.8.6-p420
 1.8.7-p249
 1.8.7-p302
 1.8.7-p334
 1.8.7-p352
 1.8.7-p357
 1.8.7-p358
 1.8.7-p370
 1.8.7-p371
 1.8.7-p374
(以下略)

Ruby複数バージョンのインストールができたのか

いくつかやってみましたができました。
ただ今まで使用していた(おそらく、システムのRubyに入っていた)gemが使えなくなったり、今使っているcompassはどこにインストールしたものなの??とwhichコマンドを駆使し探しまわったりしてました。
別の話になりますが、

$bundle exec compass

ね…はははは……