2012-11-29 16 views
166

muszę uaktualnić perełki 1,8 Próbowałem instalacji odpowiednich pakietów Debiana, ale wydaje się jej nie uzyskiwanie zmodernizowaneJak uaktualnić rubygems

[email protected]:~$ 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 
[email protected]:~$ 


[email protected]:~$ gem 
gem  gem1.8 gem1.9 
[email protected]:~$ sudo gem1.8 install serve 
ERROR: Error installing serve: 
     multi_json requires RubyGems version >= 1.3.6 
[email protected]:~$ 
+1

Właśnie w celu wyjaśnienia, twój Pytanie brzmi, jak zaktualizować Rubygemy - nie żaden konkretny klejnot zarządzany przez rubygems. – Mike

Odpowiedz

406

Install rubygems-update

gem install rubygems-update 
update_rubygems 
gem update --system 

bieg tego polecenia jako root lub używać sudo.

+1

Otrzymuję ten wyjątek, gdy śledzę sugerowaną aktualizację gem - system jest wyłączony na Debianie. RubyGems można aktualizować przy użyciu oficjalnych repozytoriów Debiana według aptitude lub apt-get. – Anuj

+2

Tutaj z powodu problemów z gemem Unicode (https://github.com/blackwinter/unicode/issues/5): po uruchomieniu rozwiązania odpowiedzi musiałem uruchomić 'gem pristine unicode', który ponownie zbudował klejnot i uczynił go użytecznym . – reallynice

+0

Działa, aby zaktualizować rubygmaty w systemie Debian. Dzięki! – danger89

5

nie będę korzystać z pakietów Debiana, rzucić okiem na RVM lub Rbenv.

+0

Pakiet Debiana istnieje dla Rbenv – antono

15

Lub:

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

#brilliant Dzięki za to.Dodałem tylko '--force', aby powstrzymać automatyzację przed potwierdzeniem nadpisania – SaxDaddy

8

Można zaktualizować gem do żadnej konkretnej wersji jak ta,

gem update --system 'version' 

gem update --system '2.3.0' 
+1

Polecenie nie działa w dystrybucji na podstawie aktualizacji klejnotów Debiana - system" 2.1.0 "BŁĄD: Podczas wykonywania gem ... (RuntimeError) gem update - system jest wyłączony na Debianie, ponieważ nadpisze zawartość pakietu Debian Rubygem i może złamać twój system Debian w subtelny sposób. Obsługiwany przez Debian sposób aktualizowania rubygemów odbywa się przez apt-get, używając oficjalnych repozytoriów Debiana. Jeśli naprawdę wiesz, co robisz, nadal możesz aktualizować rubygemy, ustawiając zmienną środowiskową REALLY_GEM_UPDATE_SYSTEM, ale pamiętaj, że jest to całkowicie nieobsługiwane przez Debiana. – jeff

33

Można aktualizować wszystkie perełki po prostu wykonując:

sudo gem update

+21

To jest odpowiedź na pytanie. – Mike

+1

bez 'sudo' jeśli zainstalowałeś klejnoty jako zwykły użytkownik (instalowanie klejnotów jako root i tak nie jest zbyt dobre). – akostadinov

+1

Pytanie nie brzmi "Jak zaktualizować wszystkie klejnoty?" ale raczej "Jak zaktualizować RubyGems na moim komputerze?" – aceofbassgreg

0

Dla mi wystarczyło po prostu uruchomić

gem update 
+3

Służy do aktualizacji twoich klejnotów, a nie samego oprogramowania rubygem. –

-1

Whoa! Żadna z odpowiedzi nie jest dokładna ... Najlepsza jest refer to the actual documentation.

Po prostu w w większości przypadków wystarczygem update --system.

Nie powinieneś ślepo używać sudo. W rzeczywistości, jeśli nie musisz tego robić, najprawdopodobniej nie powinieneś go używać.

0

Aby zaktualizować tylko jeden gem (i jego zależności), wykonaj:

bundle update gem-name 

Ale aktualizować tylko gem samodzielnie (bez aktualizacji jego zależności), wykonaj

bundle update --source gem-name