LoginSignup
1
0

More than 5 years have passed since last update.

opensslをソースからインストールしようとしたら’e_os2.h are the same file’でコケた

Last updated at Posted at 2017-10-28

対処法

コレ
日本語の検索結果がなかったので、書いておく。

やろうとしたこ

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に使うな」 ってことらしい。

リンク

OpenSSL

1
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
1
0