Techioz Blog

OSX Ventura での「__rvm_make -j8」RVM インストール実行中のエラー

概要

文字通り何か月も経ったので、ようやくここに来て質問してみようと思いました。 MacOS Ventura で RVM を使用して Ruby のどのバージョンもインストールできません。他の人がこれで抱えていた問題とは関係ないようです。他のすべての解決策を試しました。しかし、これは OpenSSL などとは関係ないようです。

私が受け取るエラーも、これらの場合とは少し異なります。

Error running '__rvm_make -j8'

まず最初に…rvm install 2.6.10 を実行したときに得られるログの最後の数行を次に示します。

objspace.c:630:23: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        imemo_type_ids[10] = rb_intern("imemo_parser_strterm");
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
objspace.c:630:23: note: '{' token is here
        imemo_type_ids[10] = rb_intern("imemo_parser_strterm");
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
objspace.c:630:23: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        imemo_type_ids[10] = rb_intern("imemo_parser_strterm");
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
objspace.c:630:23: note: ')' token is here
        imemo_type_ids[10] = rb_intern("imemo_parser_strterm");
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
1342 warnings generated.
linking shared-object objspace.bundle
make: *** [build-ext] Error 2
+__rvm_make:0> return 2

また、最新バージョンの macports をインストールし(そのパスが正しく機能している)、OpenSSL をアンインストールして再インストールしました。 HomeBrew を何度もアンインストールして再インストールしました…何も解決しないようです。

更新: これは私が見つけた唯一のエラーです。

error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \

ログを隅々まで検索しましたが、2 番目のエラーは見つかりませんでした。

解決策

この問題を解決するために私が何をしたかを正確に理解するのは難しいでしょう。でも頑張って遡ってみます。

1.アンインストールされたHomebrew

arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

M1 チップを使用している場合は、すべてのコマンドの前に Arch -arm64 を使用する必要があります。そうしないと失敗します。

  1. 残っているすべての Homebrew ディレクトリを削除
sudo rm -rf /opt/homebrew

3.Homebrewの再インストール

arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrew をアンインストールし、そのディレクトリをすべて削除する理由は、あなたが私と同じなら、おそらくこれを動作させるまでに何百万ものことを試したことがあるからです。 Homebrew とそれに関連するディレクトリを削除すると、犯した可能性のある間違いや、絶望的な設定ギャンブルがなくなるはずです。ただし、確実に言うと…隠し設定ファイルを探して、どのファイルも Ruby を参照していないことを確認する必要があります。

  1. RVM を使用して Ruby をインストールする
arch -arm64 rvm install 3.2.2

ここでも「arch -arm64」を使用する必要があります。そうしないと、インストールは絶対に失敗します。今回のみ、エラー コードは「2」ではなく「1」です。

それはそれでした!インストールが完了しました。これが誰かの役に立てば幸いです。