[Rails] Bundlerが「less 2.0.13」を見つけてくれなくて困ったときの話

こんばんは。kadoppeです。最近は毎日必ずRailsを使ってWebアプリケーションの開発をしております。

そんなある日、Staging環境でbundle installコマンドを実行した時に以下のようなエラーが発生しました。

なんでも、「less」のバージョン2.0.13が見つからないからインストールできないとのこと。

ローカル開発環境では正しくインストールされているので、原因がわからず、どうしてだろうと悩んでしまいました。

色々調べながらネットをさまよい歩いた結果、Lessパッケージの全バージョンが記載されているページを発見。

よく見るとバージョン「2.0.13」の横に「yanked」と書かれているではありませんか。

「yanked」は普通に訳すと「取り除かれた」ということ、つまり廃止されたバージョンであることを意味します。廃止されたgemパッケージは、どうやらbundle installコマンドではインストールできないみたいです。

今回の現象の原因を推測すると、

  1. ローカル開発環境でbundle updateコマンドを実行。この時は「less 2.0.13」は「yanked」になっておらず正常にインストールされた。Gemfile.lockにも「less 2.0.13」が記録された。
  2. 「Less 2.0.13」が「yanked」に指定された。
  3. Staging環境でbundle installコマンドを実行。Gemfile.lockに記載されている「less 2.0.13」をインストールしようと試みるも、「yanked」が指定されているので失敗。

という感じでしょうか。再度、ローカル開発環境でbundle updateコマンドを実行した後は、Staging環境でも正常にインストールできるようになりました。

こんなことってあるんですね。
まあ、めでたしめでたし。

それでは。