Ruby: ビルドに失敗しました (ruby-build 20210119 を使用した macOS 11.2) Mac Big Sur
概要
macOS Big Sur で Ruby のインストール (2.2.2) が失敗することを確認しました。
私の macOS は Big Sur で、バージョンは 11.2 で、これが OS で発生している問題に最も近いものでした。できる限りのことを試してみました。
CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.5.3
そしてまた
RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.5.3
これは私のターミナルでの出力です:
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/richard/.rbenv/versions/2.5.3
Downloading ruby-2.5.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.bz2
Installing ruby-2.5.3...
WARNING: ruby-2.5.3 is nearing its end of life.
It only receives critical security updates, no bug fixes.
ruby-build: using readline from homebrew
/opt/homebrew/bin/ruby-build: line 1121: 31528 Killed: 9 "$RUBY_BIN" -e '
manager = ARGV[0]
packages = {
"apt-get" => Hash.new {|h,k| "lib#{k}-dev" }.update(
"openssl" => "libssl-dev",
"zlib" => "zlib1g-dev"
),
"yum" => Hash.new {|h,k| "#{k}-devel" }.update(
"yaml" => "libyaml-devel"
)
}
failed = %w[openssl readline zlib yaml].reject do |lib|
begin
require lib
rescue LoadError
$stderr.puts "The Ruby #{lib} extension was not compiled."
end
end
if failed.size > 0
$stderr.puts "ERROR: Ruby install aborted due to missing extensions"
$stderr.print "Try running `%s install -y %s` to fetch missing dependencies.\n\n" % [
manager,
failed.map { |lib| packages.fetch(manager)[lib] }.join(" ")
] unless manager.empty?
$stderr.puts "Configure options used:"
require "rbconfig"; require "shellwords"
RbConfig::CONFIG.fetch("configure_args").shellsplit.each { |arg| $stderr.puts " #{arg}" }
exit 1
end
' "$(basename "$(type -p yum apt-get | head -1)")" 1>&4 2>&1
BUILD FAILED (macOS 11.2 using ruby-build 20210119)
Inspect or clean up the working tree at /var/folders/rn/c7nmr3x12gg5r8qwsr4ty8hh0000gn/T/ruby-build.20210209143521.94730.xfFT9O
Results logged to /var/folders/rn/c7nmr3x12gg5r8qwsr4ty8hh0000gn/T/ruby-build.20210209143521.94730.log
Last 10 log lines:
installing bundled gems: /Users/richard/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0 (build_info, cache, doc, extensions, gems, specifications)
power_assert 1.1.1
net-telnet 0.1.1
did_you_mean 1.2.0
xmlrpc 0.3.0
rake 12.3.0
minitest 5.10.3
test-unit 3.2.7
installing rdoc: /Users/richard/.rbenv/versions/2.5.3/share/ri/2.5.0/system
installing capi-docs: /Users/richard/.rbenv/versions/2.5.3/share/doc/ruby
上記の両方のコマンドでこのエラーが発生し、どちらも同じ出力を返します。 Ruby のバージョンも関係ないようです。3.0.0 も試してみましたが、同じ結果が得られました。
さらに、これは rbenv install で Ruby をインストールしようとしたときの元の出力です
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/richard/.rbenv/versions/2.5.3
Downloading ruby-2.5.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.bz2
Installing ruby-2.5.3...
WARNING: ruby-2.5.3 is nearing its end of life.
It only receives critical security updates, no bug fixes.
ruby-build: using readline from homebrew
BUILD FAILED (macOS 11.2 using ruby-build 20210119)
Inspect or clean up the working tree at /var/folders/rn/c7nmr3x12gg5r8qwsr4ty8hh0000gn/T/ruby-build.20210209143107.60561.YqaRpk
Results logged to /var/folders/rn/c7nmr3x12gg5r8qwsr4ty8hh0000gn/T/ruby-build.20210209143107.60561.log
Last 10 log lines:
compiling ../.././ext/psych/yaml/reader.c
compiling ../.././ext/psych/yaml/emitter.c
compiling ../.././ext/psych/yaml/parser.c
linking shared-object json/ext/generator.bundle
5 warnings generated.
linking shared-object date_core.bundle
linking shared-object zlib.bundle
1 warning generated.
linking shared-object psych.bundle
make: *** [build-ext] Error 2
xcode-select のバージョンは 2384 です。 Homebrew のバージョンは 3.0.0 で、醸造博士は醸造の準備ができたと言いました。
私の .zshrc ファイルには、次の行も含まれています。 eval “export PATH=”/Users/itayayuicularu/.rbenv/shims:${PATH}" エクスポート RBENV_SHELL=sh コマンド rbenv rehash 2>/dev/null rbenv() { ローカルコマンド コマンド="${1:-}” if [ “$#” -gt 0 ];それから シフト フィ
「$command」の場合 リハッシュ|シェル) eval "$(rbenv “sh-$command" "$@”)“;; *) コマンド rbenv “$command" "$@”;; イーサック }”
現時点では、他にどこに頼ればいいのかわかりません🤷 ログ ファイルで確認したい詳細がある場合は、どこから取得したかをお知らせください。ログ ファイルは大きすぎてここで共有できません。なぜこれが起こっているのでしょうか?どうすれば解決できますか? 🤦u200d♂️
解決策
rbenv のインストール中に、MacOS Monterey 12.2 (M1 Pro チップ) でも同じ問題に直面しました。 この解決策は私にとってはうまくいきました-
これを実行する代わりに- rbenv インストール 2.5.3
これを実行してください- RUBY_CFLAGS=“-Wno-error=暗黙的関数宣言” rbenv インストール 2.5.3