# やりたいこと

Ruby3.1.3をインストールしたい

# 環境

M2 MacBook Air macOS Monterey バージョン 12.5.1  
Homebrew 3.6.12  
rbenv 1.2.0  
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]

## 経緯

もともとはCocoapodsをインストールしたかったのですが、以下のようなエラーが出ました。

```

    ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
    
```

そこで、[こちらの記事](https://qiita.com/ryamate/items/e51c77fbabc2aec185fc)を参考に、一般ユーザの領域にrubyの環境を作ろうとしていました。

```

    rbenv install 3.1.3
    
```

を実行したところ、以下のようなエラーが発生しました。

```

    -> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.gz
    Installing ruby-3.1.3...
    ruby-build: using readline from homebrew
    ruby-build: using gmp from homebrew
    
    BUILD FAILED (macOS 12.5.1 using ruby-build 20221124)
    
    Inspect or clean up the working tree at /var/folders/w5/592h_r3d57547m_h6k0tywk80000gn/T/ruby-build.20221126180230.2526.AiU8cm
    Results logged to /var/folders/w5/592h_r3d57547m_h6k0tywk80000gn/T/ruby-build.20221126180230.2526.log
    
    Last 10 log lines:
    compiling ossl_x509ext.c
    compiling ossl_x509name.c
    linking shared-object psych.bundle
    compiling ossl_x509req.c
    3 warnings generated.
    compiling ossl_x509revoked.c
    compiling ossl_x509store.c
    linking shared-object openssl.bundle
    linking shared-object ripper.bundle
    make: *** [build-ext] Error 2
    
```

/var/folders/w5/592h_r3d57547m_h6k0tywk80000gn/T/ruby-
build.20221126180230.2526.logの内容です。文字数制限のため一部です

```

    compiling psych.c
    compiling ripper.c
    readline.c:1903:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
                                        rl_username_completion_function);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                        rl_username_completion_function
    readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
    # define rl_username_completion_function username_completion_function
                                             ^
    /usr/local/opt/readline/include/readline/readline.h:494:14: note: 'rl_username_completion_function' declared here
    extern char *rl_username_completion_function (const char *, int);
                 ^
    1 error generated.
    make[2]: *** [readline.o] Error 1
    make[1]: *** [ext/readline/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    checking ../.././parse.y and ../.././ext/ripper/eventids2.c
    installing default libraries
    
    compiling ossl_pkey_dh.c
    compiling ossl_pkey_dsa.c
    ossl_pkey_dh.c:87:14: warning: 'DH_new' is deprecated [-Wdeprecated-declarations]
            dh = DH_new();
                 ^
    /Users/komatsu/.rbenv/versions/3.1.3/openssl/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
    #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                       ^
    44 warnings generated.
    compiling ossl_x509.c
    compiling ossl_x509attr.c
    40 warnings generated.
    compiling ossl_x509cert.c
    linking shared-object date_core.bundle
    compiling ossl_x509crl.c
    compiling ossl_x509ext.c
    compiling ossl_x509name.c
    linking shared-object psych.bundle
    compiling ossl_x509req.c
    3 warnings generated.
    compiling ossl_x509revoked.c
    compiling ossl_x509store.c
    linking shared-object openssl.bundle
    linking shared-object ripper.bundle
    make: *** [build-ext] Error 2
    
```

# やったこと

Xcode再インストール

```

    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    sudo xcodebuild -runFirstLaunch
    
```

[こちらの記事](https://ja.stackoverflow.com/questions/77921/m1mac%E3%81%A7rbenv-
install-2-7-2%E3%82%92%E5%AE%9F%E8%A1%8C%E6%99%82-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93)を参考に下記コードを実行

```

    arch -arm64 rbenv install 3.1.3
    
```

[こちらの記事](https://qiita.com/mikan3rd/items/d1dfd7cb62cc23393dd9)を参考にCommandLineToolsの再インストール.zshに環境変数の追加、openssl@1.1の指定なども行いました。
CC BY-SA 4.0
2022-11-26T12:14:46.307
92447
2022-11-27T01:41:54.953
55605
question
ruby macos cocoapods rbenv
M2 Macでrbenv install 3.1.3を実行時、エラーが発生してインストールできない
自己解決しました

# やったこと

homebrewの再インストール  
OpenSSLがインストールされていないことを確認

```

    brew list | grep openssl
    
```

ruby 3.1.xはOpenSSL3を要求するらしい

```

    brew install openssl@3 readline libyaml gmp
    export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3)"
    
```

普通にインストールしたら通った

```

    rbenv install 3.1.3
    rbenv global 3.1.3
    rbenv versions
    
```

.zshrcを編集

```

    open ~/.zshrc
    
```

```

    # rbenv にパスを通す
    [[ -d ~/.rbenv  ]] && \
      export PATH=${HOME}/.rbenv/bin:${PATH} && \
      eval "$(rbenv init -)"
    
```

sourceコマンドを実行

```

    source ~/.zshrc
    
```

# 参考記事

[ruby-build](https://github.com/rbenv/ruby-build/wiki#build-failure-of-fiddle-
with-ruby-220)  
[Missing OpenSSL](https://github.com/rbenv/ruby-
build/discussions/1961#discussioncomment-4031745)  
[エラーが出て、 CocoaPods
をインストールできない。](https://qiita.com/ryamate/items/e51c77fbabc2aec185fc)
CC BY-SA 4.0
2022-11-27T01:41:54.953
92455
2022-11-27T01:41:54.953
55605
92447
answer