ソースから特定のOpenSSLバージョンを使用して特定のOpenSSHバージョンをビルドしたいのですが、次のエラーが発生します。
mkdir /tmp/ssh
cp openssh-6.7p1.tar.gz /tmp/ssh
cp openssl-1.0.1l.tar.gz /tmp/ssh
cd /tmp/ssh
tar zxvf openssl-1.0.1l.tar.gz
cd openssl-1.0.1l
./config --prefix=/tmp/ssh
make
make install
cd ..
tar zxvf openssh-6.7p1.tar.gz
cd openssh-6.7p1
./configure --with-ssl-dir=/tmp/ssh --prefix=/tmp/ssh
...
checking openssl/opensslv.h usability... no
checking openssl/opensslv.h presence... no
checking for openssl/opensslv.h... no
configure: error: *** OpenSSL headers missing - please install first or check config.log ***
OpenSSHのconfigureスクリプトにバグがありますか、それともコマンドを変更する必要がありますか?
./configure
にフラグを送信しない方法は次のとおりです。最初にOpenSSLをインストールする必要があります。最新のtarballを入手する ここ 。
./config
make
make test
make install
apt-get install libssl-dev
その後、再試行できます OpenSSHのインストール:
cd openssh-[version]
./configure
make
make install
ftp://ftp.ca.openbsd.org/pub/OpenBSD/OpenSSH/portable/INSTALL 言います:
LibreSSL/OpenSSLは、位置に依存しないライブラリとして(つまり、-fPICを使用して)コンパイルする必要があります。そうしないと、OpenSSHはそれにリンクできません。位置に依存しないlibcryptoを使用する必要がある場合は、OpenSSH--without-pieを構成する必要があります。
次のコマンドでは、「OpenSSLヘッダーがありません」というエラーは発生しなくなりました。
tar zxvf openssl-1.0.1l.tar.gz
cd openssl-1.0.1l
./config --prefix=/tmp/ssh
make
make install
cd ..
tar zxvf openssh-6.7p1.tar.gz
cd openssh-6.7p1
./configure --with-ssl-dir=/tmp/ssh --prefix=/tmp/ssh --without-pie
OpenSSHのconfigureスクリプトにバグがありますか、それともコマンドを変更する必要がありますか?
OpenSSLとOpenSSHのインストール によると:
'configure'がsslを見つけられない場合は、configureコマンドを次のように変更します。
./configure --prefix=/usr --with-ssl-dir=/usr/local/ssl --with-tcp-wrappers
上記は、OpenSSLヘッダーが/usr/local/ssl/include
にあり、ライブラリが/usr/local/ssl/lib
にあることを意味します。パスを/tmp/ssh
に変更する必要があると思います。
から:
cd openssl-1.0.1l
./config --prefix=/tmp/ssh
...
私はあなたが使うべきだと思います:
cd openssl-1.0.1l
./config --openssldir=/tmp/ssh/openssl
...
OpenSSL wikiの コンパイルとインストール も参照してください。 enable-ec_nistp_64_gcc_128
などの他のオプションを使用することもできます。
/tmp/ssh/openssl
にOpenSSLを使用すると、次のようになります。
cd openssh-6.7p1
./configure --with-ssl-dir=/tmp/ssh/openssl --prefix=/tmp/ssh
...
システムが提供していないOpenSSLを使用すると、問題が発生する可能性があります。したがって、チェックアウトすることもできます RPATHを使用してOpenSSLを構築しますか? 。 RPATHを使用してOpenSSHを構築することもできます。