🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

2回答

2068閲覧

Rubyの複数バージョンのGemの切り替え方法

opress338

総合スコア11

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/03/02 12:21

扱いたいRubyのバージョンが古く、
個別でGemをインストールしています。
あるGemの依存関係のGemがインストールされる際に
既存のGemが重複することがあります。
重複したGemを両方残しつつ切り替えを
行いたいです。ご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2021/03/02 12:46

状況がよく分かりませんでした。 bundler を使いたい、ということでしょうか? : http://bundler.io/
otn

2021/03/02 13:36

aaa を使うためには、xxx は 1.0でないといけないが、bbbを使うためにはxxxは2.0でないといけないということでしょう。
otn

2021/03/02 14:05

> 切り替えを行いたいです。 というのが具体的に何のことですか?
opress338

2021/03/02 15:18

gem listを実行すると複数バージョンが表示されます。 chunky_png (1.3.1, 1.3.0) これを場合に応じて1.3.1と1.3.0を切り替えたいです。 chunky_png -v #1.3.1 chunky_png -v #1.3.0
otn

2021/03/02 15:21

それは最初から分かっています。 > これを場合に応じて の場合とは?
opress338

2021/03/02 15:29

gemによってRubyのバージョンが2.3以上など制約がある場合に切り替えて使うためです。
guest

回答2

0

「切り替える」という表現から、1つのgemの複数バージョンを同時に使う必要は無くて、プログラム毎に1つのバージョンを使うということだとして回答します。

bundlerというツール(gem)を使って、そのプログラムで使う個々のgemのバージョンを指定することが出来ます。
「bundler 使い方」などで検索してください。

あるいは、bundlerを使わず、

Ruby

1gem "foo", "1.2.3" 2require "foo"

とすれば、指定したバージョンのgemが読み込まれます。何も指定しないと当然ながら最新バージョンが読み込まれます。

最初は、「aaaというgemを使うためには、xxxというgemは 1.0でないといけないが、bbbというgemを使うためにはxxxは2.0でないといけない。aaaとbbbの両方を1つのプログラムで利用することは可能か?」という質問かと思ったのですが、違いそうですね。

投稿2021/03/02 15:52

otn

総合スコア85882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Gemはバージョン毎にインストールされますので、自動的にお望みのようになると思います。

例 /Library/Ruby/Gems/2.3.0/gems/sinatra-1.2.9/lib/sinatra.rb /Library/Ruby/Gems/2.3.0/gems/sinatra-2.0.5/lib/sinatra.rb /Library/Ruby/Gems/2.6.0/gems/sinatra-2.0.5/lib/sinatra.rb /Library/Ruby/Gems/2.6.0/gems/sinatra-2.0.7/lib/sinatra.rb /Library/Ruby/Gems/2.6.0/gems/sinatra-2.1.0/lib/sinatra.rb

投稿2021/03/02 14:00

gambaldia

総合スコア266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問