[解決済み] Gemfileでrubygemを指定するときの~>と>=の違いは何ですか?
2022-07-08 06:31:30
質問
Gemfileで以下の表記(~>)をよく見かけます。
gem "cucumber", "~>0.8.5"
gem "rspec", "~>1.3.0"
記号(>=)は単に大きいか等しいかだけですが、(~>)の表記はどういう意味でしょうか? どちらも同じなのでしょうか、それとも何か大きな違いがあるのでしょうか?
どのように解決するのですか?
これは
悲観版制約
. RubyGems は提供されたバージョンの下一桁をインクリメントし、最大バージョンに達するまでそれを使用します。そのため
~>0.8.5
は意味的に同じです。
gem "cucumber", ">=0.8.5", "<0.9.0"
簡単に考えると、最後の桁が任意の値まで増加するのは構わないが、文字列中のその前の桁は指定した値より大きくすることはできないということです。したがって
~>0.8.5
の場合、3 桁目 (5) は 5 以上であればどのような値でも構いませんが、先頭の 0.8 は "0.8" でなければなりません。
たとえば、0.9 のバージョンでいくつかの破壊的な変更が実装されると考えているが、0.8.x リリース シリーズ全体が単なるバグフィックスであることを知っている場合、このようにすることができます。
しかし、単に
">=0.8.5"
を使うと
任意の
は 0.8.5 より遅い (または同じ) バージョンが許容されることを示します。上限はありません。
関連
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
-
[解決済み] Rubyのincludeとrequireの違いは何ですか?
-
[解決済み] RailsのERBにおける<%、<%=、<%#、-%>の違いは何ですか?
-
[解決済み】Ruby: Gemfileの「require: false」はどういう意味ですか?
-
[解決済み】Rubyのincludeとextendの違いって何?
-
[解決済み] Ruby: 文字列の最初の文字を取得する方法
-
[解決済み] Rubyでjavaのインターフェースに相当するものは何ですか?
-
[解決済み] ルビー 負の数を正の数に変換する?
-
[解決済み] Ruby: selfを拡張する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン