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?

【環境構築】 OpenSSL が見つかりません

Posted at

新しい Mac(M1/M2)で Ruby というプログラミング言語を使おうとした時、
「OpenSSL が見つかりません」というエラーが出ました。

この記事では、その問題を解決した方法を紹介します:pencil:

前提条件

  1. Macを使用していること
  2. Homebrewが導入していること(パソコンにプログラムをインストールするためのツール)
  3. rbenvがインストールされていること(Ruby のバージョンを管理するためのツール)
  4. ターミナルを使用(もしくはiTerm)

今回のエラー

環境構築でruby-3.3.4をインストールしようとしたらエラーになった。

rbenv install 3.3.4  //バージョンを指定してRubyをインストール

「OpenSSLライブラリが見つかりません。」とエラー

OpenSSL library could not be found. 
You might want to use --with-openssl-dir=<dir> option to 
specify the prefix where OpenSSL is installed.

解決方法:bulb:

1. 古いOpenSSLをアンインストール

OpenSSLとは、インターネットで安全に通信するためのツール。
分かりやすく説明すると、インターネットで手紙を送るようなもの。
普通の手紙だと、鍵が掛かっていないため、誰かに中身を見られる可能性が:smiling_imp:
でもOpenSSLを使うと、手紙を「秘密の箱」に入れて、鍵をかけて送信。
正しい鍵を持っている受信者だけが箱を開けられるので、安全:closed_lock_with_key:

まず、古い OpenSSLをアンインストールして、新しくインストールし直す。
ターミナルで以下のコマンドを順番に実行

# 古い OpenSSL をアンインストール
brew uninstall --ignore-dependencies openssl@3

# 設定ファイルも消す(※パスワードを聞かれたらPC立ち上げ時のパスワードを入力)
sudo rm -rf /usr/local/etc/openssl@3

# 新しい OpenSSL をインストールする
arch -arm64 brew install openssl@3

2. 環境変数を設定

環境変数とは、コンピュータへの「道案内」のようなもの。
コンピュータが動くときに「どこに必要なファイルがあるか」や「どう動いてほしいか」を教えるもの。
今回は、コンピュータに「OpenSSLがどこにあるか」を教えるために設定する!
これがないと、コンピュータはOpenSSLを見つけられず、Rubyが正しく動かない。

以下の設定を ~/.zshrc というファイルの最後に追記

# Ruby が OpenSSL を見つけられるようにする設定
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/opt/openssl@3"
export LDFLAGS="-L/usr/local/opt/openssl@3/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@3/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
export PATH="/usr/local/opt/openssl@3/bin:$PATH"

設定を追加したら、以下のコマンドで設定を有効化

source ~/.zshrc

3. Ruby をインストールしよう

最後に、Ruby をインストール
以下のコマンドを実行:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/opt/openssl@3" arch -x86_64 rbenv install 3.3.4

うまくいかないときは?

以下のコマンドを実行して確認してみよう

  1. Homebrew が最新か
    brew update
    
  2. rbenv が最新か
    brew upgrade rbenv ruby-build
    
  3. 環境変数で設定がした内容が正しく読み込まれているか
    source ~/.zshrc
    

覚えておくと便利なこと:writing_hand:

  • Rubyをインストールする時に、「arch -x86_64」をつけて実行するといい!

「arch -x86_64」とは・・新しいMac(M1/M2チップ)でも、古いIntel用のソフトウェアを動かすための命令。RubyやOpenSSLのようなツールは、もともとIntelチップ用に作られている。新しいMac(M1/M2チップ)でそのまま動かそうとすると、うまく動かないことがあるため「arch -x86_64」をつけてインストールすると:thumbsup:

  • インストールが終わったら、以下のコマンドで使いたいRubyのバージョンを指定できます:
    rbenv global 3.3.4  # コンピュータ全体で使うバージョンを設定
    # または
    rbenv local 3.3.4   # 今いるフォルダだけで使うバージョンを設定
    

最後に

自分用に記事を作成してみた。
エラーが出た時に「何が原因かわからない」と焦るのではなく、仮説を立ててとにかく手を動かすことが
大切だと学んだ。chatgptを活用すればある程度解決できると感じた。

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?