何度目かの環境再構築中
色々あって、業務で利用している Macbook Pro 2017 をリカバリすることにしました。
ディスクユーティリティで SSD を一旦まっさらに。
そこに macOS Monterey をネットワーク経由でクリーンインストール。
ちょうど経理の月初作業も終わり、お盆休みもあったので落ち着いて環境構築を進めることができました。
自作モジュールのインストールでエラー
この自作モジュールは業務を楽にするために自分で作ったもので、以下のような動きをします。
この "Google Sheet を csv にしてダウンロード" の時に(透過的に)利用するモジュールが IO::Socket::SSL です。 文字通り、SSL通信に関係するモジュールです。
これのインストールに失敗しました。
$ cpanm IO::Socket::SSL --> Working on IO::Socket::SSL Fetching http://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-2.074.tar.gz ... OK ==> Found dependencies: Net::SSLeay --> Working on Net::SSLeay Fetching http://www.cpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz ... OK Configuring Net-SSLeay-1.92 ... N/A ! Configure failed for Net-SSLeay-1.92. See /Users/sironekotoro/.cpanm/work/1660879857.14507/build.log for details. ! Installing the dependencies failed: Module 'Net::SSLeay' is not installed ! Bailing out the installation for IO-Socket-SSL-2.074.
IO::Socket::SSL が依存している Net::SSLeay のインストールに失敗してるようです。 ログはここに出力されているので確認。
! Configure failed for Net-SSLeay-1.92. See /Users/sironekotoro/.cpanm/work/1660879857.14507/build.log for details.
失敗時のログはこんな感じ。
cpanm (App::cpanminus) 1.7046 on perl 5.036000 built for darwin-2level Work directory is /Users/sironekotoro/.cpanm/work/1660879879.14561 You have make /usr/bin/make You have /usr/local/bin/wget You have /usr/bin/tar: bsdtar 3.5.1 - libarchive 3.5.1 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8 You have /usr/bin/unzip Searching Net::SSLeay () on cpanmetadb ... --> Working on Net::SSLeay Fetching http://www.cpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz -> OK Unpacking Net-SSLeay-1.92.tar.gz Entering Net-SSLeay-1.92 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.64) Checking if you have English 0 ... Yes (1.11) Checking if you have constant 0 ... Yes (1.33) Checking if you have File::Spec::Functions 0 ... Yes (3.84) Checking if you have Text::Wrap 0 ... Yes (2021.0814) Configuring Net-SSLeay-1.92 Running Makefile.PL Do you want to run external tests? These tests *will* *fail* if you do not have network connectivity. [n] n *** Be sure to use the same compiler and options to compile your OpenSSL, perl, and Net::SSLeay. Mixing and matching compilers is not supported. ****************************************************************************** * COULD NOT FIND LIBSSL HEADERS * * * * The libssl header files are required to build Net-SSLeay, but they are * * missing from /usr. They would typically reside in /usr/include/openssl. * ****************************************************************************** -> N/A -> FAIL Configure failed for Net-SSLeay-1.92. See /Users/sironekotoro/.cpanm/work/1660879879.14561/build.log for details.
まぁ、原因はわかっていて。
macOS Monterey が採用している SSL のライブラリは LibraSSL というものです。
$ openssl version LibreSSL 2.8.3
対して、IO::Socket::SSL が要求しているのは OpenSSL というライブラリです。
エラーログのここですね。
****************************************************************************** * COULD NOT FIND LIBSSL HEADERS * * * * The libssl header files are required to build Net-SSLeay, but they are * * missing from /usr. They would typically reside in /usr/include/openssl. *
ということで、macでお馴染みのパッケージマネージャ Homebrew で openSSL をインストールします。
$ brew install openssl
openSSL のインストール後、無事 IO::Socket::SSL のインストールが完了。
めでたしめでたし。
なぜこれを書いたのか
何度目かのインストールで毎回やってるなぁ・・・と思ったのと、割と Mac で Perl やってて引っかかりやすいところかなぁ、と思ったので。