Ruby gemの特定のバージョンをインストールする方法は?


884

コマンドラインgemツールを使用して、gemの特定のバージョンをインストールするにはどうすればよいですか?

回答:


1158

-vフラグを使用:

$ gem install fog -v 1.8

60
私のように、以前に新しいバージョンのgemをインストールしたことがある場合は、たとえばを使用して新しいバージョンをアンインストールする必要がありますgem uninstall fog。複数ある場合は、アンインストールするバージョンを尋ねられます。
ディズリー2014年

3
私は熊手の3つのバージョンがあります:gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7)..私は2.3.5プロジェクトをレール持って、コマンド上で、私はプロジェクトごとにレーキの特定のバージョンを使用してくださいどのように私は同時にに取り組んでいることを3.0 ..(つまりだという別行?)
アブッド、2013年

@abbood rake _10.1.1_ ...は、知りたい人のために機能するはずです:)
公園。

これは実行可能バイナリに影響を与えないように見えることに注目する価値があります。ただし、以前のバージョンをアンインストールしてもバイナリは機能しました。
Ciro Santilli冠状病毒审查六四事件法轮功

もう一度、私が複数の賛成投票を行えることを願っています。おそらく、少なくとも1年は離れている必要があるでしょう。:)
ドンブランソン

192

--versionパラメータ(ショートカット-v)を使用します。

$ gem install rails -v 0.14.1

>=またはのようなバージョンコンパレータを使用することもできます~>

$ gem install rails -v '~> 0.14.0'

または、gemの新しいバージョンでも:

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

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

これは〜>で機能しましたが、「<0.9、> = 0.7」タイプの状況がある場合はどうなりますか?2つのv引数を適用しようとしましたが、最初の引数は無視されたようです。カンマ区切りを使用すると、解析すらできません。私は最終的に要件を超えるものを削除してしまい、たまたま許容できるバージョンをインストールしましたが、正式な解決策があればいいでしょう。
ジョセフココ

バージョンコンパレータは何を~>表していますか?
Dragas

それは最後の数字が(成長させていることを意味stackoverflow.com/questions/5170547/...を
schmijos

93

インストール用 gem install gemname -v versionnumber

アンインストールの場合 gem uninstall gemname -v versionnumber


80

Ruby 1.9以降ではコロンを使用します。

gem install sinatra:1.4.4 prawn:0.13.0

インストールしようとしているgem(およびバージョン)は何ですか?
Kokizzu

私の出力を教えてくださいgem sources、それが空の場合、このコマンドを使用してレポを追加し、:gem sources -a https://rubygems.org/
Kokizzu

私のgem -vショー1.8.23対あなた2.2.2。この機能は新しいようです:)
kolypto 2014年

Ruby 1.8はすでにサポートを終了していますruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu

24

他の人が指摘したように、通常-vgem installコマンドにフラグを使用します。

gemをローカルで開発している場合、gemspecからgemをカットした後:

$ gem install gemname-version.gem

バージョン0.8を想定すると、次のようになります。

$ gem install gemname-0.8.gem

3
すばらしい答えです。フラグ「-v」オプション用に別のコードブロックを追加することをお勧めします。私の目が答えを読んだとき、彼らはすぐにそれを取り巻くテキストではなくコードブロックに行きました。他の人が同じことをすると、「-v」の部分が欠落します。
CamHart 2016年

8

Linux

別のバージョンのrubyをインストールするにはapt、以下のようにしてパッケージの最新バージョンを確認します。

$ 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

次にインストールします。

$ sudo apt-get install ruby=1:1.9.3

現在のバージョンを確認するには、次のコマンドを実行します。

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

バージョンがまだ古い場合は、次の方法でrubyバージョンマネージャ(rvm)を使用してバージョンを新しいバージョンに切り替えてみてください。

rvm 1.9.3

注:がグローバルにインストールされているsudo場合rvmは、プレフィックスを付けることができます。または/usr/local/rvm/scripts/rvm、コマンドrvmがグローバルにない場合に実行しますPATH。rvmのインストールプロセスが失敗した場合は、トラブルシューティングのセクションを参照してください。


トラブルシューティング:

  • まだ古いバージョンがある場合は、次の方法でrvm(rubyバージョンマネージャ)をインストールしてみてください。

    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. 
    

    ローカルにインストールされている場合(現在のユーザーのみ)、次のようにしてrvmをロードします。

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

    グローバル(すべてのユーザー)の場合:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • それでも新しいrubyバージョンに問題がある場合は、次のようにしてrvmでインストールしてみてください。

    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.
    
  • いくつかのgemをグローバルにインストールする場合で、rvmがすでにインストールされている場合は、次の方法を試してください。

    rvmsudo gem install [gemname]

    の代わりに:

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

注:RVM gemを操作するためにsudoを使用しないことをお勧めします。sudoを実行すると、コマンドはrootとして実行され、別のシェルで別のユーザーが実行されるため、コマンドがsudoで実行されている間(GEM_HOMEなど)、RVMが行ったすべての設定は無視されます。繰り返しますが、「sudo」を実行するとすぐに、ルートシステムユーザーとして実行されます。これにより、環境がクリアされ、作成されたファイルもユーザーが変更できなくなり、奇妙なことが起こります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.