2012-11-29 15 views
166

necessario aggiornare le gemme per 1.8 Ho provato a installare i rispettivi pacchetti debian, ma a quanto pare la sua non sempre aggiornatocome aggiornare 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

solo per chiarire, la vostra la domanda è su come aggiornare Rubygems stesso - non una gemma particolare gestita da rubygems. – Mike

risposta

406

Installare rubygems-aggiornamento

gem install rubygems-update 
update_rubygems 
gem update --system 

run comanda come root o usare sudo.

+1

sto ricevendo questa eccezione quando seguo ue suggerimento gem update - system è disabilitato su Debian. RubyGems può essere aggiornato usando i repository ufficiali Debian di aptitude o apt-get. – Anuj

+2

Qui a causa di problemi con unicode gem (https://github.com/blackwinter/unicode/issues/5): dopo aver eseguito la soluzione di risposta ho dovuto eseguire 'gem pristine unicode' che ha ricostruito il gioiello e lo ha reso utilizzabile . – reallynice

+0

Works greate per aggiornare i rubygems sul sistema Debian. Grazie! – danger89

5

non vorrei usare i pacchetti Debian, hanno uno sguardo al RVM o Rbenv.

+0

Il pacchetto Debian esiste per Rbenv – antono

15

Oppure:

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

#brilliant Grazie per questo.Ho solo aggiunto '--force' per impedire all'automazione di fermarsi per la conferma di sovrascrittura – SaxDaddy

8

È possibile aggiornare gemma a qualsiasi versione specifica come questo,

gem update --system 'version' 

gem update --system '2.3.0' 
+1

il comando non funziona sulla distribuzione basata su debian gem update --system" 2.1.0 "ERRORE: durante l'esecuzione di gem ... (RuntimeError) aggiornamento gem - il sistema è disabilitato su Debian, perché sovrascriverà il contenuto del pacchetto Debian di rubygems e potrebbe violare il sistema Debian in modo sottile. Il modo supportato da Debian per aggiornare rubygems è attraverso apt-get, usando i repository ufficiali di Debian. Se sai davvero cosa stai facendo, puoi comunque aggiornare i rubygems impostando la variabile d'ambiente REALLY_GEM_UPDATE_SYSTEM, ma per favore ricorda che questo non è completamente supportato da Debian. – jeff

33

È possibile aggiornare tutte le gemme, semplicemente eseguendo:

sudo gem update

+21

Questa è una risposta alla ricerca di una domanda. – Mike

+1

senza 'sudo' se hai installato gems come utente normale (installare gems come root non è comunque molto carino). – akostadinov

+1

La domanda non è "Come posso aggiornare tutte le gemme?" ma piuttosto "Come aggiorno RubyGems sulla mia macchina?" – aceofbassgreg

0

Per mi bastava semplicemente eseguire

gem update 
+3

Questo serve per aggiornare le tue gemme, non il software rubygems stesso. –

-1

Whoa! Nessuna delle risposte è accurata ... La migliore è quella di refer to the actual documentation.

Inserire semplicemente nella maggior parte dei casigem update --system.

Non utilizzare ciecamente sudo. Infatti se non sei obbligato a farlo, probabilmente non dovresti usarlo.

0

Per aggiornare solo una gemma (ed è dipendenze), fare:

bundle update gem-name 

Ma per aggiornare solo la gemma da solo (senza l'aggiornamento è dipendenze), fanno

bundle update --source gem-name 
Problemi correlati