web-dev-qa-db-ja.com

GITのコンパイル時にopensslconf.hが見つからない

私はgitソースを/usr/srcにクローンし、最新の安定バージョンにチェックアウトすることを決定しました(現在1.9.1があるため)。コンパイル中に、依存関係の欠落に関するいくつかのエラーを受け取り、それに応じて開発パッケージをインストールすることで迅速に修正しました。

ただし、今回は最新の開発用opensslライブラリをインストールしましたが、次のエラーが発生しました。

致命的なエラー:openssl/opensslconf.h:そのようなファイルまたはディレクトリはありません

これが欠けている依存関係であることを知っているので、OpenSSLの最新/開発パッケージのインストールに進みます。

$ apt-cache search openssl | grep dev
$ apt-get install libssl-dev

栄光、しかし私はまだ上記のエラーを受け取ります。簡単なGoogle検索で この質問 が示されますが、これはまだマークされておらず、日付がかなり付けられています。


以下は、実行されるコマンドの完全なリストです。

ash$ Sudo su -
root# apt-get install git
root# git clone https://github.com/git/git.git && cd git
root# git checkout 2.7.0
root# less INSTALL 
root# make prefix=/usr install install-doc install-html install-info
root# apt-get install libssl-dev
root# make prefix=/usr install install-doc install-html install-info
root# apt-cache search expat | grep dev
root# apt-get install lib64expat1-dev
root# make prefix=/usr install install-doc install-html install-info
1
ash

次の依存関係がインストールされると、lib64expat1-dev多くのパッケージが置き換えられます。その一部は64ビット固有のものでした。

ここでの問題は、以下に示すように、opensslconfig.hが別のディレクトリに移動されたことです。

$ find / -type f -name opensslconf.h
/usr/include/x86_64-linux-gnu/openssl/opensslconf.h

コンパイラが/usr/include内でこのファイルを検索している場所。したがって、シンボリックリンクを作成するだけでこの依存関係が修正されます。

$ cd /usr/include/openssl
$ ln -s /usr/include/x86_64-linux-gnu/openssl/opensslconf.h opensslconf.h
1
ash