概要
そこら中に転がってるであろうopensslのビルド方法まとめ。
C++で利用するのに必要だったので、折角やったからとりあえずざっくりとまとめてみた(タイトルも完全なものではなかったから一応変更)。
入れたOS
CentOS6.6。
最新のopensslを落とす
ここから落とす。
自分はCUIだったのでwgetを使った。無いなら入れても良いと思う。
$ sudo su
$ yum install wget
$ wget https://www.openssl.org/source/openssl-1.0.2.tar.gz
$ tar zxvf openssl-1.0.2
ビルドしてインストール
事前準備
ビルドの際にlibsslが必要なんだけど入れていない場合は入ってないので入れる必要がある。
$ yum install openssl-devel
コンフィグ
./configする。基本的には次の3つだと思う、それ以外にも色々あるけど詳細は同梱されてるINSTALLってテキストファイルを読むか
http://wiki.openssl.org/index.php/Compilation_and_Installation
がとても参考になる。
コンフィグでは基本的には以下3つを設定することになると思う。
- インストールフォルダの指定
- 不要なライブラリを切る指定
- シェアードライブラリにするかどうか
指定なしの場合は次のコマンドを打ったのと同じになると書かれてるのでこれが嫌な人はどうぞ。
# 以下が $ ./config と同じ
$ ./config --prefix=/usr/local --openssldir=/usr/local/openssl
インストールフォルダの指定
--prefix、--openssldirのオプションを使って指定する。
指定無しの場合は上記で既に解説済み。
不要なライブラリを切る指定
no-ライブラリ名
ってオプションを噛ますと指定できる。
利用していないライブラリに特許が入っていると面倒くさいことになる。だから使わないライブラリは極力切った方が良い。とはいえ特許の専門家でも無いので使ってないライブラリが入ってたからどうのみたいなところの詳細については知らない。怖い人は切った方が良い程度に。
シェアードライブラリにするかどうか
sharedってオプションがある。
ようはシェアードライブラリとして作りたい人用。お好きなように。
参考までに自分のconfig
最終的にこういうconfigになった。
$ ./config --prefix=/opt/openssl-1.0.2 no-idea no-mdc2 no-rc5 no-ec shared
make
コンフィグを噛ますとライブラリの有効無効を1つでも設定した場合make dependしろと言われる。
configの際に「no-何たら」でライブラリを無効にした人はmake dependすること。
# ライブラリを無効にした場合
$ make depend
$ make
$ make test
# 特に無効とかの指定はせずに./configだけした場合
$ make
$ make test
make testでERRORとかが一番最後に出なければOK。ERRORとかいう文字が出ている場合は何かおかしい。
自分の場合次のエラーが出た。
cannot find -lssl
libsslが無かったらしい。ちゃんと上述の「事前準備」でopenssl-develをインストールしていればこのエラーはでないはず。
何もエラーが出なければmake installして終わり。
$ make install
デフォルトのインストール先は/usr/local/opensslらしいのでlsとかで確認しても良いししなくても良い。
$ ls /usr/local/
(省略)... openssl ...(省略)