0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rails newコマンドでのエラー対処

Posted at

背景

初めてローカル環境で、Rails アプリケーションをつくろうとして、Rails new コマンドを叩いたらいきなり躓いたので、メモ。

OS:Windows
使用しているアプリケーション:VSCode

1. ``': No such file or directory

出現したエラー
(略)``': No such file or directory - git config init.defaultbranch (Errno::ENOENT)

解決策

特定のファイル内に存在する「`」が、原因で発生していることが分かった。エラー文から、ファイルを特定できたため、当該ファイルの「`」をすべて「'」に変更した。

2. invalid byte sequence in UTF-8

出現したエラー
Failed to load C:/Users/ユーザー名/.gemrc, invalid byte sequence in UTF-8

解決策

ファイルがUTF-8ではないことが原因かと思い、ファイルをメモ帳で開き、UTF-8で保存しなおしたところ、このエラーは解消された。(なお、これが上手くいかなくてもプロジェクトは作成された。)

3. Failed to build gem native extension.

出現したエラー
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/psych-5.1.2/ext/psych        
C:/Ruby33-x64/bin/ruby.exe extconf.rb
checking for pkg-config for yaml-0.1... not found
checking for yaml.h... no
yaml.h not found
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.
(略)
To see why this extension failed to compile, please check the mkmf.log which can
be found here:

C:/Ruby33-x64/lib/ruby/gems/3.3.0/extensions/x64-mingw-ucrt/3.3.0/psych-5.1.2/mkmf.log

(なお、これが上手くいかなくてもプロジェクトは作成された。)

解決策

mkmf.logを確認したところ、以下の記載があった。

package configuration for yaml-0.1 is not found

以下のサイトの記述から、ruby3.2.0以降では、LibYAMLのインストールが必須になっているということを知った。

以下のサイトに準じて対応することでエラーが解決された。

  1. 以下のサイトから、https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libyaml-0.2.5-2-any.pkg.tar.zstをダウンロード
    https://packages.msys2.org/packages/mingw-w64-x86_64-libyaml
     
  2. ファイルを解凍
     
  3. "(ファイル解凍場所)\mingw-w64-x86_64-libyaml-0.2.5-2-any.pkg\mingw64\include\yaml.h"を、"(Rubyをインストールした場所)\Ruby32-x64\include\ruby-3.3.0"にコピー
    ※ インストールしたRubyのバージョンによりパスが異なる
     
  4. "(ファイル解凍場所)\mingw-w64-x86_64-libyaml-0.2.5-2-any.pkg\mingw64\lib"内のlibyaml.alibyaml.dll.aを、"(Rubyをインストールした場所)\Ruby33-x64\lib"にコピー
     
  5. もう一度rails newコマンドにトライ!(エラー解消!!)

ここでno such file エラーが出現する場合は、コピー先に誤りがないか確認する。

おわりに

ProgateやGitHub Codespacesでしか、コードを書いていなかったこともあり、エラーにおびえました。先人のお知恵のおかげで何とか次に進めそうです。感謝申し上げます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?