2012-04-04 12 views
7

İstemci tarafına bir mücevher (JSON) yüklemek istiyorum, ancak zaten yüklü değilse (bazı 1.9 Ruby dağıtımında JSON paketi var).İstenirse taş yükleyin

Bunu gem help install'dan nasıl yapacağına dair bir ipucu bulamadım. Ve

ERROR: Error installing json: 
    The 'json' native gem requires installed build tools. 

içinde (JSON paketlenmiş birlikte) yüklü Ruby 1.9 ile Windows sisteminde sonuçları üzerinde gem install json çalışan - bu taş zaten orada olması görmezden o yüklemeye çalışır.

İstemci Windows olabileceğinden, gem list çıktısı gibi bash hileleri yapamıyorum.

Bir gemiyi yalnızca sistemde bulunmadığı taktirde çoklu platformun yolu nedir?

cevap

2

Bu işe yarayabilir yapar benim pencerelerde, 7 sistemi kurmak gerekir ...

begin 
    require "json" 
rescue LoadError 
    system("gem install json") 
end 

siz "json gerektirecek istemiyorsanız ", bunu LOAD_PATH $ 'dan kaldırabilirsiniz.

Veya, bir tek astar olarak koyun:

ruby -e 'begin; require "some_gem"; rescue LoadError; system "gem install some_gem"; end' 
+0

Harika olmadı, yarın test edecek ve cevabınızı çalışma çözümü gibi görerek kabul edeceksiniz. Tek sorun 'json' aslında iki mücevher - json_pure ve sadece json tarafından sağlanabilir, bu yüzden ihtiyacınız varyantına bağlı olarak 'json/ext' veya 'json/pure' gerektirir. –

+0

Evet. Aslında bu yolu el ile LOAD_PATH $ 'dan el ile kaldırmamız gerektiğinden en iyi yol olmadığını düşünüyorum. Json/ext veya json/pure aslında dahil değilse daha iyi olurdu. – Tomato

+0

Tek lineli komut satırından yürütüyorum, bu yüzden hiçbir şeyi kaldırmam gerekmiyor, bu yüzden gerçekten ihtiyacım olan şey teşekkürler! –

0
gem update json 
gerekirse

sadece

C:\Ruby193\bin>gem update json 
Updating installed gems 
Updating json 
Fetching: json-1.6.6.gem (100%) 
Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
Successfully installed json-1.6.6 
Updating multi_json 
Fetching: multi_json-1.2.0.gem (100%) 
Successfully installed multi_json-1.2.0 
Gems updated: json, multi_json 
Installing ri documentation for json-1.6.6... 
Installing ri documentation for multi_json-1.2.0... 
Installing RDoc documentation for json-1.6.6... 
Installing RDoc documentation for multi_json-1.2.0... 

C:\Ruby193\bin>gem update json 
Updating installed gems 
Nothing to update 

C:\Ruby193\bin> 
+1

Yüklemezse gem güncellemeyi yapmaya çalışırsanız - –

+0

başarısız olur, yukarıdaki ekran görüntüsü beni doğru kanıtlar, ilk kez kurulduğunu, yüklemediğini ve ikinci kez yükledim – peter

2

bir mücevher yüklü olup olmadığını sormak için: İhtiyaç duyulan ise

gem list --installed "^json$" 

bir mücevher takmak için:

ruby -e '`gem list -i \"^json$\"`.chomp=="true" or `gem install json`' 

için Bir komut satırı komut dosyası hazırlayın:

gem-install-fast json 
0

buldum iyi bu (kabuk komutu) 'dir: komut satırı komut dosyasını kullanmak için $ gem install asciidoctor --conservative

O taş Spec anda yüklü taşlar tarafından karşılanması mümkün değildir yalnızca kuracaktır.

İlgili konular