2012-04-19 13 views
4

ソースからRubyをコンパイルしてインストールし、インストール先を別の場所に移動したいとします。例えばRubyをインストールすると、Rubyのインストールが機能しなくなります。これを回避するには?

ruby-1.9.3-p125$ ./configure --prefix=/tmp/ruby-1.9.3-p125 

問題は、--prefixパスはRubyのバイナリにハードコードされているようだということです。 /tmp/ruby-1.9.3-p125/opt/ruby-1.9.3-p125と移動すると、インストールされたバイナリとスクリプトにハードコードされたパスが存在します。移動した後

、私はエラーを取得する:

 
&ltinternal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError) 
    from &ltinternal:gem_prelude>:1:in `&ltcompiled>' 

は、どのように私はこの問題を回避することができますか?

+0

実際にインストールするプレフィックスでコンパイルしないのはなぜですか? –

+0

私は、ruby-1.9に依存するアプリケーションを持っています。私はアプリケーションと一緒にプリコンパイルしてパッケージ化したい。もちろん、ライセンスごとにRubyソースをアプリケーションとともに配布しますが、ユーザーがアプリケーションをどこにインストールするかについては管理しません。したがって、私はそれを再配置できるように何らかの方法で設定したいと思います。 – nilweed

+1

その点については、[アプリケーションと一緒にRubyを配布する](http://stackoverflow.com/questions/9165216/distributing-ruby-along-with-application)を参照してください。 –

答えて

4

解決策は、configure時に--enable-load-relativeを使用することです。

+1

詳細については、こちらの記事を参照してください。 http://yehudakatz.com/2012/06/ – Evan

+0

設定の意味を説明できますか? – kibaekr

関連する問題