Come installare una versione specifica di una gemma rubino?


884

Utilizzando lo gemstrumento da riga di comando, come posso installare una versione specifica di una gemma?

Risposte:


1158

Usa la -vbandiera:

$ gem install fog -v 1.8

60
Se, come me, hai precedentemente installato una versione successiva della tua gemma, devi disinstallare la versione successiva con es gem uninstall fog. Ti chiederà quale versione disinstallare se ne hai più di una.
Dizzley,

3
ho 3 versioni di rake: gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. ho un progetto di rotaie 2.3.5 e un altro che è 3.0 su cui sto lavorando allo stesso tempo .. come posso usare una versione specifica di rake per ogni progetto (cioè su comando linea?)
circa

@abbood rake _10.1.1_ ...dovrebbe funzionare, per chiunque voglia sapere :)
Koen.

Vale la pena notare che questo non sembra influenzare i file binari eseguibili. La disinstallazione della versione precedente ha funzionato per i file binari.
Ciro Santilli 21 冠状 病 六四 事件 法轮功

Ancora una volta, desiderando poter fare più voti. Forse se dovessero essere separati da almeno un anno. :)
Don Branson,

192

Utilizzare il --versionparametro (collegamento -v):

$ gem install rails -v 0.14.1

Puoi anche usare comparatori di versioni come >=o~>

$ gem install rails -v '~> 0.14.0'

O anche con le versioni più recenti di gem :

$ gem install rails:0.14.4 rubyzip:'< 1'

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

Questo ha funzionato per ~>, ma cosa succede se si ha un tipo di situazione '<0.9,> = 0.7'? Ho provato ad applicare due argomenti v e sembra che il primo sia stato ignorato. L'uso del separatore virgola non analizzerebbe nemmeno. Ho finito per rimuovere il requisito maggiore del necessario e mi è capitato di installare una versione accettabile, ma avere una soluzione formale sarebbe bello.
Joseph Coco,

Cosa rappresenta il comparatore di versioni ~>?
Dragas,

Ciò significa che l'ultima cifra è permesso di crescere ( stackoverflow.com/questions/5170547/... )
schmijos

93

Per l'installazione gem install gemname -v versionnumber

Per la disinstallazione gem uninstall gemname -v versionnumber


80

per Ruby 1.9+ usa i due punti ..

gem install sinatra:1.4.4 prawn:0.13.0

quale gemma (e quale versione) stai cercando di installare?
Kokizzu,

per favore dimmi l'output di gem sources, se è vuoto, aggiungi un repository usando questo comando:gem sources -a https://rubygems.org/
Kokizzu,

i miei gem -vspettacoli 1.8.23contro i tuoi 2.2.2. Sembra che questa funzionalità sia nuova :)
kolypto,

Ruby 1.8 ha già terminato il supporto ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu l'

24

Come altri hanno notato, in generale utilizzare la -vbandiera per il gem installcomando.

Se stai sviluppando una gemma a livello locale, dopo aver tagliato una gemma dal tuo gemspec:

$ gem install gemname-version.gem

Supponendo la versione 0.8, sarebbe simile al seguente:

$ gem install gemname-0.8.gem

3
Bella risposta. Ti suggerisco di aggiungere un altro blocco di codice per l'opzione flag "-v". Mentre i miei occhi leggevano la risposta, andarono immediatamente ai blocchi di codice e non al testo che la circondava. Se gli altri fanno lo stesso, perderanno la parte "-v".
CamHart,

8

Linux

Per installare una versione diversa di ruby, controlla l'ultima versione del pacchetto usando aptcome di seguito:

$ apt-cache madison ruby
      ruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
      ruby |        4.5 | http://ftp.uk.debian.org/debian/ squeeze/main amd64 Packages

Quindi installalo:

$ sudo apt-get install ruby=1:1.9.3

Per verificare qual è la versione corrente, esegui:

$ gem --version # Check for the current user.
$ sudo gem --version # Check globally.

Se la versione è ancora obsoleta, puoi provare a passare alla versione nuova usando ruby ​​version manager ( rvm):

rvm 1.9.3

Nota: è possibile aggiungere il prefisso sudose è rvmstato installato a livello globale. O esegui /usr/local/rvm/scripts/rvmse il tuo comando rvmnon è nel tuo globale PATH. Se il processo di installazione di rvm non è riuscito, consultare la sezione sulla risoluzione dei problemi.


Risoluzione dei problemi:

  • Se hai ancora la versione precedente, puoi provare a installare rvm (ruby version manager) tramite:

    sudo apt-get install curl # Install curl first
    curl -sSL https://get.rvm.io | bash -s stable --ruby # Install only for the user.
    #or:# curl -sSL https://get.rvm.io | sudo bash -s stable --ruby # Install globally. 

    quindi se installato localmente (solo per l'utente corrente), caricare rvm tramite:

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3

    se a livello globale (per tutti gli utenti), quindi:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • se hai ancora problemi con la nuova versione di ruby, prova a installarlo tramite rvm tramite:

    source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3 # Locally.
    sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3" # Globally.
  • se desideri installare alcune gemme a livello globale e hai già installato rvm, puoi provare:

    rvmsudo gem install [gemname]

    invece di:

      gem install [gemname] # or:
      sudo gem install [gemname]

Nota: si preferisce NON usare sudo per lavorare con gemme RVM. Quando esegui sudo stai eseguendo i comandi come root, un altro utente in un'altra shell e quindi tutta l'installazione che RVM ha fatto per te viene ignorata mentre il comando viene eseguito su sudo (cose come GEM_HOME, ecc ...). Quindi, per ribadire, non appena esegui il "sudo" sei in esecuzione come utente del sistema di root che cancellerà il tuo ambiente e tutti i file che crea non potranno essere modificati dall'utente e comporteranno cose strane.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.