Windows 10環境のruby 2.7でrailsがインストールできない
@miu200521358 さんの
Windows10 + heroku + github + Ruby on Rails 事始め(2020/02版)
という記事をみかけRubyを最新版の2.7にアップデートするとともにRailsも最新化させようと試みるもRailsがnokogiriのエラーでインストールできません。
ERROR: Error installing nokogiri:
The last version of nokogiri (>= 0) to support your Ruby & RubyGems was 1.10.7. Try installing it with `gem install nokogiri -v 1.10.7`
nokogiri requires Ruby version >= 2.3, < 2.7.dev. The current ruby version is 2.7.0.0.
エラーメッセージ通りに gem install nokogiri -v 1.10.7
を指定しても2020-02-02版のプレリリース版を指定 gem inst nokogiri --pre
しても同様にインストールができませんでした。
用いたRubyはrubyinstaller2 (RubyInstaller-2.7.0-1 - 2020-01-05)
つまりWindows 10 x64 + **Ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x64-mingw32]**での話なのでレアケースとも思えないのですが検索して見つけた
@tsubasaman さんの記事
(Ruby2.7.0 )Ruby on Railsをうまくインストール出来ないとき(Windows)
こちらのコメント欄
@taichi-ishitani
https://github.com/sparklemotion/nokogiri/issues/1961#issuecomment-570071464
このコメントを参考に、
- 必要なライブラリを事前にインストール
- そのライブラリを見るように、nokogiri をインストール
したら、Ruby 2.7 + Windows 環境でも、最新の nokogiri が使えました。
での方法(nokogiri本家のissuesを試したところ)にてようやくインストールできたので手順を記しておきます。
libxsltなどを別途インストールして--use-system-libraries
で参照させる
以下のいずれかでインストール。当環境では後者の方法でインストールすることができました。
gem install nokogiri --platform=ruby // コンパイル失敗
ridk exec pacman -S mingw-w64-x86_64-libxslt
gem install nokogiri --platform=ruby -- --use-system-libraries
// 成功
nokogiriの開発者さんもイシューは把握しているようなので一両日中にはアップデートされるでしょうが--use-system-libraries
はbundleなどでも使えるオプションなので知ることができてよかったです。
取り急ぎの対応でしたがgemを編集したりRubyのダウングレードをするよりはオプションを使ってできる方法があるならそちらがベターかな。と思った次第でした。