質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

3346閲覧

Rails バージョンアップ時の bundle update におけるバージョンコンフリクト解消方法について

tele

総合スコア5

Ruby

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

Ruby on Rails

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

1グッド

1クリップ

投稿2020/03/14 18:26

前提・実現したいこと

Ruby on Rails で Rails のバージョンアップを行おうと思っています。
現行:4.2.11.1 から、最終的には最新バージョンへと考えていますが
とりあえずは直近のメジャーバージョンの 5.0.0 へアップデートしようとしています。
bundle update rails を実施した際に、以下の依存関係のエラーが発生しました。

5.0.0 へのアップデートを考えたときに、メッセージに指定されているバージョン指定では
不整合は無いようにも見えますが、どのあたりが問題でしょうか。
アドバイスまたは解決に向けたヒント等ご指摘いただけると助かります。
よろしくお願いいたします。

発生している問題・エラーメッセージ

Bundler could not find compatible versions for gem "actionpack": In Gemfile: haml-rails was resolved to 1.0.0, which depends on actionpack (>= 4.0.1) rails (= 5.0.0) was resolved to 5.0.0, which depends on actionpack (= 5.0.0) devise (~> 4.3.0) was resolved to 4.3.0, which depends on responders was resolved to 2.4.1, which depends on actionpack (>= 4.2.0, < 6.0) rspec-rails (~> 3.7.1) was resolved to 3.7.2, which depends on actionpack (>= 3.0) simple_form was resolved to 3.5.1, which depends on actionpack (> 4, < 5.2) Bundler could not find compatible versions for gem "activemodel": In Gemfile: paperclip (~> 5.2.0) was resolved to 5.2.1, which depends on activemodel (>= 4.2.0) rails (= 5.0.0) was resolved to 5.0.0, which depends on activemodel (= 5.0.0) simple_form was resolved to 3.5.1, which depends on activemodel (> 4, < 5.2) web-console (~> 2.1.1) was resolved to 2.1.3, which depends on activemodel (>= 4.0) Bundler could not find compatible versions for gem "activesupport": In Gemfile: haml-rails was resolved to 1.0.0, which depends on activesupport (>= 4.0.1) jbuilder (~> 2.0) was resolved to 2.7.0, which depends on activesupport (>= 4.2.0) rails (= 5.0.0) was resolved to 5.0.0, which depends on activesupport (= 5.0.0) rspec-rails (~> 3.7.1) was resolved to 3.7.2, which depends on activesupport (>= 3.0) Bundler could not find compatible versions for gem "railties": In Gemfile: rails (= 5.0.0) was resolved to 5.0.0, which depends on railties (= 5.0.0) rails-i18n was resolved to 4.0.9, which depends on railties (~> 4.0)

試したこと

一部のものについては、バージョン指定の修正等を実施しましたが
actionpack, activemodel, activesupport, railties について、rails とともに
5.0.0 になれば問題ないようにも見えています。

知識や経験不足で勘違い等しているところもあるかと思いますので
併せてアドバイスいただけると助かります。
よろしくお願いいたします。

s.k👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

Bundler could not find compatible versions for gem "actionpack": In Gemfile: haml-rails was resolved to 1.0.0, which depends on actionpack (>= 4.0.1) rails (= 5.0.0) was resolved to 5.0.0, which depends on actionpack (= 5.0.0) devise (~> 4.3.0) was resolved to 4.3.0, which depends on responders was resolved to 2.4.1, which depends on actionpack (>= 4.2.0, < 6.0) rspec-rails (~> 3.7.1) was resolved to 3.7.2, which depends on actionpack (>= 3.0) simple_form was resolved to 3.5.1, which depends on actionpack (> 4, < 5.2)

これの意味を噛み砕いて説明すると

  • haml-railsGemfile.lock によって 1.0.0 が指定されている

  • その haml-railsactionpack4.x 系に依存している

  • 一方 rails5.0.0 に update される

  • その railsactionpack5.0.0 に依存している

haml-rails4.xactionpack に依存しているのに対して、 rails5.0.0actionpack に依存して矛盾しているため、 actionpack のバージョンを決めることができない、というエラーです

そのため、基本的には rails が依存する actionpack のバージョンに対応する haml-rails のバージョンにアップデートする必要があります。

単に通すのであれば
bundle update rails haml-rails devise rspec-rails ...出ているGemすべてを

必要であれば

  • それぞれの gem の必要なバージョン指定を Gemfile に加える
  • bundle update rails

すればよいかと思います。

投稿2020/03/15 00:05

編集2020/03/15 00:07
unhappychoice

総合スコア1531

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

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

unhappychoice

2020/03/15 00:09

あと、関係はないですがメジャーバージョンを上げるのであれば、 `5.0.0` ではなくセキュリティパッチ等が適用されている最新の `5.x.x` を入れたほうが良いかと思われます
tele

2020/03/15 08:29

ありがとうございます! >haml-rails was resolved to 1.0.0, which depends on > actionpack (>= 4.0.1) ここについては、actionpack は 4.0.1 以上だったら(いくらでも)良い、のではなく、 4.x までという解釈となるでしょうか。 そのあたりが曖昧というか理解できていませんでした。 アドバイスいただきありがとうございます。 いただいた内容をもとに進めてみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問