2009-07-12 10 views
2

ruby​​またはrubygemsに、ソースに関係なく最新のgemを使用するように頼むことができますか?ソースに関係なく最新のgemバージョンを使用する

this questionのアップデートで説明したように、ルビはもっと最近インストールされた新しいルビーフォージの宝石(roo 1.3.6)より古いgithub gem(hmcgowan-roo 1.3.5)を使用しています。

魔法のpixy(rubyまたはrubygemsのいずれか)が "r"の下を見る前に "h"の下にあると疑われます。

私は

gem "roo" 

を行うことによって使用されるが、私はhmcgowan-カンガルーやカンガルーのいずれかを使用して幸せだけど、私は、最新のが欲しいルビー/ RubyGemsのを伝えることが可能であることをのRubyForge 1を強制することができますバージョン?

答えて

1

いや、残念ながら方法はありません。 RubyGemsに関する限り、それらは同じ宝石ではないので、RubyGemsは自動的にどちらが最新のバージョンであるかを判断することができません。パラノイアの目的のために、宝石方法への呼び出しがなく、同じライブラリの複数のバージョンがインストールされている場合、要求ラインは非決定論的であるとみなされるべきです。

一般的に、gemメソッドへの呼び出しを必要とする場所とは異なる場所に配置する(これによりファイルを遅延ロードすることができます)ので、実行するだけの頻繁に更新されるファイルあなたはすべてのものの正しいバージョンを持っていることを確認するために宝石のメソッドへの呼び出しの束。さらに、プロダクションでは、最新のバージョンがAPIを変更したり、いくつかのメソッドや類似の名前を変更したりする可能性があるため、通常は「最新のバージョンを教えて」いません。それが壊れるかどうかを知る。あなたは常に、サードパーティ製のすべてのライブラリの特定の動作するバージョンを使用していることを確認する必要があります。

ライブラリの作者として、私は通常、APIの古い使用法を変更するための変更を加える場合に、1つまたは2つのバージョンの見出しを提供します。しかし、しばしば人々はしばらく更新せず、これによって捕まってしまうことがあります。幸いにも、ほとんどの人は慎重であり、物事をステージングします。それらをテストせずに本番環境で直接ライブラリを更新する人にならないでください。 :-)

0

gemメソッドを使用して、必要なものを指定することができます。

RubyGems Manual - Chapter 4

+0

私の質問で「gem 'roo'」と似ていますか、いくつかの追加パラメータを使用していますか? –

+0

gemコマンドでも希望のバージョンを設定できます。それ以外に、方法があるかどうかはわかりません。私はマニュアルに何も表示されません。 –

関連する問題