ラベル rbenv の投稿を表示しています。 すべての投稿を表示
ラベル rbenv の投稿を表示しています。 すべての投稿を表示

2014/04/28

rbenv で ruby がインストールできなくなった

おもむろに最新パッチレベルとそろそろruby2.1.1を入れようと思って、

CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl` --with-gcc=clang" rbenv install 2.0.0-p451
を叩いたらエラーでインストールできなかった。
エラーログを見てみると下記のようなエラーメッセージが出ていたので、どうやら readline 関連でエラーが出ているらしい。
readline.c:1886:26: error: use of undeclared identifier 'Function'
    rl_pre_input_hook = (Function *)readline_pre_input_hook;
                         ^
readline.c:1886:36: error: expected expression
    rl_pre_input_hook = (Function *)readline_pre_input_hook;

調べてみると、どうやら readline が 6.3 になって rbenv でインストールしようとしたらエラーになるということらしい。
参考:MacでRuby 2.x.xがインストールできないバグ (homebrew + rbenv) - Qiita
readline を以前のバージョンに戻せばインストールできるとのことなので、

pinzolo@ileach % brew info readline
readline: stable 6.3.3 (bottled) http://tiswww.case.edu/php/chet/readline/rltop.html This formula is keg-only. OS X provides the BSD libedit library, which shadows libreadline. In order to prevent conflicts when programs look for libreadline we are defaulting this GNU Readline installation to keg-only. /usr/local/Cellar/readline/6.2.2 (30 files, 1.6M) /usr/local/Cellar/readline/6.2.4 (30 files, 1.6M) /usr/local/Cellar/readline/6.3.3 (40 files, 2.1M) * Poured from bottle From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/readline.rb
6.2.4 が入っていることを確認して、
pinzolo@ileach % brew switch readline 6.2.4
Cleaning /usr/local/Cellar/readline/6.2.2 Cleaning /usr/local/Cellar/readline/6.2.4 Cleaning /usr/local/Cellar/readline/6.3.3 Opt link created for /usr/local/Cellar/readline/6.2.4
readline を切り替えて再度インストールしたら無事インストールできた。

2013/06/22

Ruby2.0.0をインストール

Ruby 2.0 がリリースされてしばらくしたのでそろそろ入れることにした。

% rbenv install 2.0.0-p195
Downloading ruby-2.0.0-p195.tar.gz... -> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.gz Installing ruby-2.0.0-p195... BUILD FAILED Inspect or clean up the working tree at /var/folders/1j/hw72brh57jv94vdl9567fr140000gn/T/ruby-build.20130621233411.34289 Results logged to /var/folders/1j/hw72brh57jv94vdl9567fr140000gn/T/ruby-build.20130621233411.34289.log Last 10 log lines: make[2]: *** [readline.o] Error 1 make[1]: *** [ext/readline/all] Error 2 make[1]: *** Waiting for unfinished jobs.... compiling ../.././ext/psych/yaml/reader.c compiling ../.././ext/psych/yaml/scanner.c compiling ../.././ext/psych/yaml/writer.c installing default psych libraries linking shared-object psych.bundle ld: warning: directory not found for option '-L/Users/pinzolo/.rbenv/versions/2.0.0-p195/lib' make: *** [build-ext] Error 2

なんか失敗した。
こちらを参考に再度挑戦。
readline は入っていたので openssl を入れて、`RUBY_CONFIGURE_OPTS`を指定してインストール。

% brew update
% brew install openssl
% brew link openssl --force
% brew install curl-ca-bundle
% brew list curl-ca-bundle
/usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt
% cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem % RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline` --enable-shared" rbenv install 2.0.0-p195
Downloading ruby-2.0.0-p195.tar.gz... -> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.gz Installing ruby-2.0.0-p195... Installed ruby-2.0.0-p195 to /Users/pinzolo/.rbenv/versions/2.0.0-p195

いけたみたいなので確認。

% ruby -v
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.4.0]

bundler は入れておかないと。

% gem install bundler
Fetching: bundler-1.3.5.gem (100%) Successfully installed bundler-1.3.5 1 gem installed

バッチリ!お疲れ様でした。

2012/05/14

rbenv で rubygem をインストールしても command not found となる場合

rails の開発環境をぼちぼちと整えようと思って、とりあえずグローバルな gem として pry と bundler だけインストールした。
ところが、pry はターミナルから使用できるが、bundle コマンドは command not found となった。
rbenv をインストールしていると、$HOME/.rbenv/shims と $HOME/.rbenv/bin に PATH が通っているはずなので、$HOME/.rbenv/shims を覗いてみた。
$ ll $HOME/.rbenv/shims
drwxrwxr-x 2 pinzolo pinzolo 4096  5月 14 07:52 .
drwxr-xr-x 9 pinzolo pinzolo 4096  5月 11 11:46 ..
-rwxrwxr-x 2 pinzolo pinzolo  100  5月 14 07:18 coderay
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 erb
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 gem
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 irb
-rwxrwxr-x 2 pinzolo pinzolo  100  5月 14 07:18 pry
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 rake
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 rdoc
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 ri
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 ruby
-rwxrwxr-x 8 pinzolo pinzolo  100  5月 11 11:46 testrb
こんな風になってた。全て同じサイズ??ということで diff を取ってみると、ファイル名以外は全て同じらしい。
$ cat shims/pry
#!/usr/bin/env bash
set -e
export RBENV_ROOT="/home/pinzolo/.rbenv"
exec rbenv exec "${0##*/}" "$@"
環境変数を設定して、rbenv 経由で処理を実行しているのね。
というわけで、bundle という名前でファイルをコピーしてやれば良さそうだ。
$ cp $HOME/.rbenv/shims/{pry,bundle}
$ bundle
Could not locate Gemfile
# 2012-05-15 追記
単に rehash していなかっただけだった
rbenv rehash しても command not found になるなら、お試し下さい。