OSXにrbenv入れようとして半日以上潰した話
※このポストに書かれている解決法は、自分が忘れないようにうろ覚えで書いているため、重要なことが抜けていたりする可能性があります。
思い出したりもう一度試した時に加筆していきます。
あらまし
「試験前になってしまうと掃除がしたくなるあれ」になってしまったようで、コーディングをはじめなければならないのに、環境をいじくってしまい半日以上潰してしまいました。
半日以上潰した罪状をここに書き遺します。
ここでおすすめ本!
Development Environments for Web Designers
この本は本当にありがたい本。また感想を記事にしたいくらい、むっちゃおすすめです!
Webサイト制作の時流に乗り遅れないために、覚えておきたい開発環境の作り方…という、こもりまさあきさんの本です。(まだまだ、執筆中とのこと!)とても簡単に言うと、ウェブデザイナーのための黒い画面とその周りのツールの指南書です。
なにがすごいかというと、UNIXの基本的なコマンドから始まり、Web制作で「よくわからないけど何故か登場してしまう」「気になるけど難しそう」なツールの使い方やインストール方法を網羅しています。
このポストで「Bundlerってなんじゃい!」となってますが、他のツールを使うためによくわからないままなんとなく導入している、ということはあまり健全ではないです。とはいうものの調べようとすると開発者向けの記事にたどり着き、結局ツールの魅力や骨子がわからなかったりします。 知識がいい加減な私にとっては「あ〜〜〜そういうことだったのね」が満載であります。 電子書籍ですが、iPadやKindleを持っていなくても読めます。
やりたいこと
本を参考にしつつ、
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
ね…はははは……