Ruby: Hoe een specifieke versie van een Ruby Gem?

De opdrachtregel gebruiken gemTool, hoe kan ik een specifieke versie van een edelsteen installeren?


Antwoord 1, Autoriteit 100%

Gebruik de -vvlag:

$ gem install fog -v 1.8

Antwoord 2, Autoriteit 17%

Gebruik de --versionparameter (snelkoppeling -v):

$ gem install rails -v 0.14.1
…
Successfully installed rails-0.14.1

U kunt ook versie-comparators gebruiken zoals >=of ~>

$ gem install rails -v '~> 0.14.0'
…
Successfully installed rails-0.14.4

Met nieuwere versies van Rubygems U kunt uw vereisten aanscherpen:

$ gem install rails -v '~> 0.14.0, < 0.14.4'
…
Successfully installed rails-0.14.3

Sinds een tijdje kunt u nu ook versies van meerdere edelstenen specificeren:

$ gem install rails:0.14.4 rubyzip:'< 1'
…
Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

Maar dit werkt niet voor meer dan één comparator per edelsteen (nog).


Antwoord 3, Autoriteit 8%

voor installatie
gem install gemname -v versionnumber

voor de installatie van de installatie
gem uninstall gemname -v versionnumber


Antwoord 4, Autoriteit 8%

Voor Ruby 1.9+ gebruik Colon.

gem install sinatra:1.4.4 prawn:0.13.0

Antwoord 5, Autoriteit 2%

Zoals anderen hebben opgemerkt, gebruikt u in het algemeen de -vvlag voor de gemopdracht.

Als u lokaal een edelsteen ontwikkelt, na het snijden van een edelsteen van uw Gemspec:

$ gem install gemname-version.gem

Veronderstellen van versie 0.8, het zou er als volgt uitzien:

$ gem install gemname-0.8.gem

Antwoord 6

U kunt de -vof --versionVLAG gebruiken. Bijvoorbeeld

gem install bitclock -v '< 0.0.2'

Om de begrenzen van de bovenste en onderste versie op te geven, kunt u de --versionflag op twee keer

opgeven

gem install bitclock -v '>= 0.0.1' -v '< 0.0.2'

of gebruik de syntaxis (bijvoorbeeld)

gem install bitclock -v '>= 0.0.1, < 0.0.2'

De andere manier om het te doen is

gem install bitclock:'>= 0.0.1'

Maar met de laatste optie is het niet mogelijk om tegelijkertijd de bovenste en onderste grenzen te specificeren.

[Gem 3.0.3 en RUBY 2.6.6]


Antwoord 7

linux

Controleer de nieuwste versie van het pakket met de nieuwste versie van het pakket met aptzoals hieronder:

$ 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

Installeer het vervolgens:

$ sudo apt-get install ruby=1:1.9.3

Om te controleren wat de huidige versie, uit te voeren:

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

Als de versie is nog steeds oud, kunt u proberen om de versie te schakelen naar de nieuwe met behulp van ruby ​​versie manager (rvm) op:

rvm 1.9.3

Opmerking: U kunt het voorvoegsel door sudoals rvmis wereldwijd geïnstalleerd. Of run /usr/local/rvm/scripts/rvmals uw opdracht rvmis niet in uw algemene PATH. Als rvm installatieproces is mislukt, zie het gedeelte Problemen oplossen.


Problemen oplossen:

  • Als u nog steeds de oude versie, kunt u proberen te RVM (ruby versie manager) installeren via:

    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. 
    

    dan als lokaal (alleen voor de huidige gebruiker) geïnstalleerd, belasting rvm via:

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

    als globaal (voor alle gebruikers), dan:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
    
  • Als u nog steeds problemen met de nieuwe ruby ​​versie, proberen te installeren door rvm via:

    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.
    
  • als je een aantal edelstenen wereldwijd wilt installeren en je hebt rvm al geïnstalleerd, kun je het volgende proberen:

    rvmsudo gem install [gemname]
    

    in plaats van:

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

Opmerking: het heeft de voorkeur om GEEN sudo te gebruiken om met RVM-edelstenen te werken. Wanneer je dat doet?
sudo je voert opdrachten uit als root, een andere gebruiker in een andere shell
en daarom wordt alle instellingen die RVM voor u heeft gedaan genegeerd terwijl
de opdracht wordt uitgevoerd onder sudo (zoals GEM_HOME, enz…). dus om
herhaal, zodra je ‘sudo’ draait, draai je als het rootsysteem
gebruiker die uw omgeving en alle bestanden zal wissen
maakt kunnen niet worden gewijzigd door uw gebruiker en zal resulteren in:
er gebeuren vreemde dingen.

Other episodes