LoginSignup
13
6

More than 3 years have passed since last update.

Ruby 2.7でRailsがインストールできない (Windows 10 x64)

Posted at

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のダウングレードをするよりはオプションを使ってできる方法があるならそちらがベターかな。と思った次第でした。

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6