RubyGems nasıl yükseltilir


206

Ben 1.8 için taşlar yükseltmek gerekir ilgili debian paketleri yüklemeyi denedim ama onun yükseltme değil gibi görünüyor

anujm@test:~$ dpkg -l |grep -i rubygem
ii  rubygems                               1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems-lwes                          0.8.2-1323277262                                LWES rubygems
ii  rubygems1.8                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems1.9                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
anujm@test:~$ 


anujm@test:~$ gem
gem     gem1.8  gem1.9  
anujm@test:~$ sudo gem1.8 install serve
ERROR:  Error installing serve:
        multi_json requires RubyGems version >= 1.3.6
anujm@test:~$

2
Sadece açıklığa kavuşturmak için, sorunuz Rubygems'in nasıl güncelleneceği ile ilgilidir - rubygems tarafından yönetilen herhangi bir mücevher değil.
Michael

Yanıtlar:


471

Rubygems-update yükle

gem install rubygems-update
update_rubygems
gem update --system

bu komutları root olarak çalıştırın veya sudo kullanın.


1
Ben ue öneri mücevher güncelleştirme - bu sistem Debian devre dışı olduğunda takip bu istisna alıyorum. RubyGems, resmi Debian depoları kullanılarak yetenek veya apt-get ile güncellenebilir.
Anuj

3
Burada unicode gem ile ilgili sorunlar nedeniyle ( github.com/blackwinter/unicode/issues/5 ): Cevaplayıcının çözümünü çalıştırdıktan sonra, gemiyigem pristine unicode yeniden inşa ederek kullanılabilir hale getirmek zorunda kaldım .
reallynice

1
Teşekkürler, minitestbir NFS bölümü cf yüklemek için bana yardımcı oldu . github.com/rubygems/rubygems/issues/1161
Tom

12
rubygems-updatevarsayılan olarak kurulur. Yani, sadece koşma meselesi gem update --system.
dskecse

2
Genellikle bu komutu asla çalıştırmak istemezsiniz sudo. Bu sistem yakutunu yükseltir. rvmVeyarbenv
Hendrik

54

Tüm taşları sadece şunları yaparak güncelleyebilirsiniz:

sudo gem update


44
Bu bir soru arayan cevaptır.
Michael

1
olmadan sudonormal bir kullanıcı olarak taşlar yüklüyse (kök çok güzel zaten değil gibi taşlar yükleme).
akostadinov

4
Soru "Tüm mücevherleri nasıl güncelleyebilirim?" Değil. daha çok "Makinemdeki RubyGems'i nasıl güncelleyebilirim?"
aceofbassgreg

19

Veya:

gem update `gem outdated | cut -d ' ' -f 1`

#brilliant Bunun için teşekkürler. Ben sadece --forceotomasyonun üzerine yazma onayı için durmasını önlemek için ekledim
SaxDaddy

soruyu cevaplamıyor
agbodike

Sırasıyla shellcheck hataları ile sabit: gem update "$(gem outdated | cut -d ' ' -f 1)";.
BernhardWebstudio

11

Gem'i böyle belirli bir sürüme güncelleyebilirsiniz,

gem update --system 'version'

gem update --system '2.3.0'

1
debian gem update --system "2.1.0" 'a dayalı dağıtım üzerinde çalışmazsınız HATA: gem yürütülürken ... (RuntimeError) gem update --system Debian'da devre dışı bırakılır, çünkü içeriğin üzerine yazılır rubygems Debian paketi ve Debian sisteminizi ince şekillerde bozabilir. Debian'ın rubygems'i güncellemenin yolu Debian resmi depolarını kullanarak apt-get yoluyladır. Ne yaptığınızı gerçekten biliyorsanız, yine de REALLY_GEM_UPDATE_SYSTEM ortam değişkenini ayarlayarak rubygems'i güncelleyebilirsiniz, ancak bunun Debian tarafından tamamen desteklenmediğini lütfen unutmayın.
jeff


5

Yanlış / güncel olmayan başka cevaplar buldum. En iyisi, gerçek belgelere başvurmaktır .

Kısa versiyon: çoğu durumda gem update --system yeterli olacaktır.

Körü körüne kullanmamalısınız sudo. Aslında bunu yapmanız gerekmiyorsa, büyük olasılıkla kullanmamalısınız.


4

Benim için koşmak yeterliydi

gem update

5
Bu, rubygems yazılımının kendisini değil, mücevherlerinizi güncellemek içindir.
Peter H. Boling

1
Doğru, ancak bu "güncelleme mücevher sürümü" gibi aramalar için ilk Google sonucudur, bu yüzden bu cevabın burada olduğuna sevindim.
ncrypticus

-1

Yalnızca bir mücevher güncellemek (ve bağımlılıkları), şunları yapın:

    bundle update gem-name

Ancak sadece gem'i tek başına güncellemek için (bağımlılıklarını güncellemeden)

    bundle update --source gem-name

1
Bu, rubygems yazılımının kendisini değil, belirli mücevherleri güncellemek içindir.
thisismydesign

1
@thisismydesign Bence bu sadece belirli bir mücevher güncelleme olacağını belirttim?
Ruto Collins

Evet ama sorunun konusu bu değil.
thisismydesign

1
Anlıyorum. Ama biliyorum ki bu benim gibi önce buraya gelen birine yardım edecek :)
Ruto Collins
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.