2015-07-28 24 views
8

Ruby kaynağımdan bir Jar dosyası oluşturmak için Warbler'ı kullandım. Ayrıca RVM yüklü. kavanoz davranış Yakut sürümü RVM kullanarak hangi bağlı olarak farklılık gösterir:RVM'nin JRuby ile etkileşimini nasıl engeller

Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2 
Ignoring gem-wrappers-1.2.7 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.2.7 

Ve eğer ben: Sonra kavanozu normalde çalışır rvm use jruby eğer, ama rvm use 2.2 sonra kavanoz baskılar konsola bu uyarı mesajları çalışan eğer rvm use ruby-1.9.3-p484 sonra kavanoz aslında başarısız çalıştıran: Ben yüklü RVM olmadan bilgisayar üzerinde kavanoz çalıştırırsanız

Ignoring unf_ext-0.0.7.1 because its extensions are not built. Try: gem pristine unf_ext --version 0.0.7.1 
Ignoring nokogiri-1.6.2.1 because its extensions are not built. Try: gem pristine nokogiri --version 1.6.2.1 
Ignoring nokogiri-1.6.6.2 because its extensions are not built. Try: gem pristine nokogiri --version 1.6.6.2 
Ignoring nokogiri-1.6.6.2 because its extensions are not built. Try: gem pristine nokogiri --version 1.6.6.2 
Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2 
Ignoring gem-wrappers-1.2.7 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.2.7 
Ignoring nokogiri-1.6.2.1 because its extensions are not built. Try: gem pristine nokogiri --version 1.6.2.1 
Ignoring unf_ext-0.0.7.1 because its extensions are not built. Try: gem pristine unf_ext --version 0.0.7.1 
NameError: uninitialized constant Nokogiri::XERCES_VERSION 
const_missing at org/jruby/RubyModule.java:2733 
     to_hash at /vagrant/myproject!/gems/nokogiri-1.6.6.2-java/lib/nokogiri/version.rb:73 
     ... 

, iyi çalışıyor.

Buna ne neden oluyor ve RVM'nin kavanoza müdahale etmesini nasıl engellerim?

+0

belki de rbenv'i denemelisiniz https://github.com/sstephenson/rbenv – nisevi

cevap

2

sadece RVM'yi suçlamakla kalmaz, sistem Ruby yüklemesi de engellenmiş olabilir ... unset GEM_HOME ve GEM_PATH ortam değişkenleri kullanılmadığı şekilde.

o da paketlenmiş .jar arşiv kullanmak için jruby.runtime.env=false sistem özelliği (veya uygulama bağlam init parametresi)

kullanarak boş bir ENV Ruby çalışma zamanını başlatmak için embed JRuby tamamen izole deneyebilirsiniz .war ise config.override_gem_home (.war ile de çalışmalıdır)

+0

GEM_PATH çalışmayı iptal ettiniz! Bu bir değil. Bu yüzden 'jruby.runtime.env' kullanamıyorum. Kavanozun GEM_PATH ortam değişkenini kullanmaya çalışmasını engellemek için bazı yapılandırma seçenekleri var mı? – fblundun

+0

@fblundun yes ... 'config.override_gem_home' ile cevabı güncelledi – kares