Wie installiere ich eine bestimmte Version eines Rubin-Edelsteins?


884

gemWie kann ich mit dem Befehlszeilentool eine bestimmte Version eines Edelsteins installieren?

Antworten:


1158

Verwenden Sie die -vFlagge:

$ gem install fog -v 1.8

60
Wenn Sie wie ich zuvor eine spätere Version Ihres Edelsteins installiert haben, müssen Sie die spätere Version mit z gem uninstall fog. Sie werden gefragt, welche Version deinstalliert werden soll, wenn Sie mehr als eine haben.
Dizzley

3
Ich habe 3 Versionen von Rake: gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. Ich habe ein Rails 2.3.5-Projekt und ein anderes, das 3.0 ist, an dem ich gleichzeitig arbeite. Wie verwende ich eine bestimmte Version von Rake für jedes Projekt (dh auf Befehl Linie?)
Abbood

@abbood rake _10.1.1_ ...sollte funktionieren, für alle, die es wissen wollen :)
Koen.

Es ist erwähnenswert, dass dies keine Auswirkungen auf ausführbare Binärdateien zu haben scheint. Die Deinstallation der vorherigen Version funktionierte jedoch für Binärdateien.
Ciro Santilli 法轮功 病毒 审查 六四 事件 21

Ich wünschte noch einmal, ich könnte mehrere Upvotes machen. Vielleicht, wenn sie mindestens ein Jahr voneinander entfernt sein müssten. :)
Don Branson

192

Verwenden Sie den --versionParameter (Verknüpfung -v):

$ gem install rails -v 0.14.1

Sie können auch Versionskomparatoren wie >=oder verwenden~>

$ gem install rails -v '~> 0.14.0'

Oder sogar mit neueren Versionen von gem :

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

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

Dies funktionierte für ~>, aber was ist, wenn Sie eine Situation vom Typ '<0,9,> = 0,7' haben? Ich habe versucht, zwei v-Argumente anzuwenden, und es scheint, als ob das erste ignoriert wurde. Die Verwendung eines Komma-Trennzeichens würde nicht einmal analysieren. Am Ende entfernte ich die über den Anforderungen liegende und es wurde zufällig eine akzeptable Version installiert, aber eine formale Lösung wäre schön.
Joseph Coco

Wofür steht der Versionskomparator ~>?
Dragas

Es bedeutet, dass die letzte Ziffer wachsen darf ( stackoverflow.com/questions/5170547/… )
schmijos

93

Zur Installation gem install gemname -v versionnumber

Zum Deinstallieren gem uninstall gemname -v versionnumber


80

Verwenden Sie für Ruby 1.9+ Doppelpunkt.

gem install sinatra:1.4.4 prawn:0.13.0

Welches Juwel (und welche Version) möchten Sie installieren?
Kokizzu

Bitte sagen Sie mir die Ausgabe von gem sources, wenn es leer ist, fügen Sie ein Repo mit diesem Befehl hinzu:gem sources -a https://rubygems.org/
Kokizzu

meine gem -vShows 1.8.23gegen deine 2.2.2. Sieht aus wie diese Funktion ist neu :)
kolypto

Ruby 1.8 ist bereits am Ende der Unterstützung ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu

24

Wie andere angemerkt haben, verwenden Sie im Allgemeinen das -vFlag für den gem installBefehl.

Wenn Sie einen Edelstein vor Ort entwickeln, nachdem Sie einen Edelstein aus Ihrer Edelsteinspezifikation herausgeschnitten haben:

$ gem install gemname-version.gem

Unter der Annahme von Version 0.8 würde dies folgendermaßen aussehen:

$ gem install gemname-0.8.gem

3
Gute Antwort. Ich schlage jedoch vor, dass Sie einen weiteren Codeblock für die Option "-v" hinzufügen. Als meine Augen die Antwort lasen, gingen sie sofort zu den Codeblöcken und nicht zu dem Text, der sie umgab. Wenn andere dasselbe tun, verpassen sie den Teil "-v".
CamHart

8

Linux

Um eine andere Version von Ruby zu installieren, überprüfen Sie die neueste Version des Pakets aptwie folgt:

$ 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

Dann installieren Sie es:

$ sudo apt-get install ruby=1:1.9.3

Führen Sie Folgendes aus, um die aktuelle Version zu überprüfen:

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

Wenn die Version noch alt ist, können Sie versuchen, die Version mithilfe von ruby ​​version manager ( rvm) auf neu zu ändern, indem Sie:

rvm 1.9.3

Hinweis: Sie können ihm ein Präfix voranstellen, sudowenn rvmes global installiert wurde. Oder führen Sie aus, /usr/local/rvm/scripts/rvmwenn sich Ihr Befehl rvmnicht in Ihrem globalen Befehl befindet PATH. Wenn der rvm-Installationsprozess fehlgeschlagen ist, lesen Sie den Abschnitt zur Fehlerbehebung.


Fehlerbehebung:

  • Wenn Sie noch die alte Version haben, können Sie versuchen, rvm (Ruby Version Manager) über Folgendes zu installieren:

    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. 

    Wenn lokal installiert (nur für den aktuellen Benutzer), laden Sie rvm über:

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

    Wenn global (für alle Benutzer), dann:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • Wenn Sie immer noch Probleme mit der neuen Ruby-Version haben, versuchen Sie, sie von rvm über Folgendes zu installieren:

    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.
  • Wenn Sie einige Edelsteine ​​global installieren möchten und rvm bereits installiert haben, können Sie Folgendes versuchen:

    rvmsudo gem install [gemname]

    anstatt:

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

Hinweis: Es wird bevorzugt, KEIN Sudo zu verwenden, um mit RVM-Edelsteinen zu arbeiten. Wenn Sie sudo ausführen, führen Sie Befehle als root aus, ein anderer Benutzer in einer anderen Shell und damit alle Einstellungen, die RVM für Sie vorgenommen hat, werden ignoriert, während der Befehl unter sudo ausgeführt wird (z. B. GEM_HOME usw.). Um es noch einmal zu wiederholen: Sobald Sie "sudo" sind, werden Sie als Root-Systembenutzer ausgeführt, der Ihre Umgebung sowie alle von ihm erstellten Dateien löscht. Sie können von Ihrem Benutzer nicht geändert werden und führen dazu, dass seltsame Dinge passieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.