背景
初めてローカル環境で、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のインストールが必須になっているということを知った。
以下のサイトに準じて対応することでエラーが解決された。
- 以下のサイトから、
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
- ファイルを解凍
-
"(ファイル解凍場所)\mingw-w64-x86_64-libyaml-0.2.5-2-any.pkg\mingw64\include\yaml.h"
を、"(Rubyをインストールした場所)\Ruby32-x64\include\ruby-3.3.0"
にコピー
※ インストールしたRubyのバージョンによりパスが異なる
-
"(ファイル解凍場所)\mingw-w64-x86_64-libyaml-0.2.5-2-any.pkg\mingw64\lib"
内のlibyaml.a
とlibyaml.dll.a
を、"(Rubyをインストールした場所)\Ruby33-x64\lib"
にコピー
- もう一度rails newコマンドにトライ!(エラー解消!!)
ここでno such file エラーが出現する場合は、コピー先に誤りがないか確認する。
おわりに
ProgateやGitHub Codespacesでしか、コードを書いていなかったこともあり、エラーにおびえました。先人のお知恵のおかげで何とか次に進めそうです。感謝申し上げます。