対処法
コレ
日本語の検索結果がなかったので、書いておく。
やろうとしたこ
apacheでHTTP/2を有効化するために、この記事を参考にしながら各種インストール作業。
opensslを含め、全体として以下のようなprefixで進めてたら罠があった。
以下、OpenSSLの例。OpenSSL以外にも、apache,apr,apr-util,およびphp7.2とMySQL8をインストールする予定。
・/usr/local/src配下にソースを持ってくる。
・/usr/lcoal/openssl/配下に、/usr/local/src/openssl-1.0.2l.tar.gzを展開
・/usr/local/openssl/openssl-1.0.2l配下でconfig,およびmake
# ./config --prefix=$(pwd) shared zlib
# make
# make test
# make install
・ln -s /usr/local/openssl/openssl-1.0.2 currentとして、/usr/local/openssl/current/を、最新のopensslのシムリンクにする。
※この先更新があった場合に、/usr/local/openssl/openssl-[バージョン]をmakeしなおして、シムリンクの張り直しで更新を実施できるのでは、ってうい考え。というかこういうやり方をどっか別のとこで見た。
起きた問題
make testまでは通ったが、make installで以下のエラー
cp: 'e_os2.h' and '/usr/local/openssl/openssl-1.0.2l/include/openssl/e_os2.h' are the same file
make: *** [install_sw] Error 1
ぐぐった結果ヒットしたもの。
コレ。
曰く、「do not use the same --prefix location as your source directory and it will be fine.」、
ソースディレクトリをそのまま --prefix に使っちゃダメよ、とのこと。
いったんこうしてみた
# ./config --prefix=/usr/local/src/openssl/openssl shared zlib
/usr/local/src/openssl配下に、ソースディレクトリのopenssl-1.0.2lがあって、インストール先はopensslのまま。
で、うまくmake install通りました。ただこのディレクトリ構造はちょっとどうかと思うので、もうちょっとキレイにいくのがないか考えてみる。
備考
環境
OS:CentOS7の上に建てたCentOS7のDockerImage(CentOS Linux release 7.4.1708 (Core))
2017/10/27時点で最新のOpenSSL(openssl-1.0.2l)
なお、過去のバージョンのOpenSSLいくつか試したけど同様だった。
OpenSSLのインストールは 「ソースディレクトリをそのままprefixに使うな」 ってことらしい。