apt-get install を使用して freeradius をインストールしましたが、ソースをビルドするときに libssl が見つからないのはなぜですか?

apt-get install を使用して freeradius をインストールしましたが、ソースをビルドするときに libssl が見つからないのはなぜですか?

私はUbuntuマシンにfreeradius 2.1.12をインストールしました:

apt-get install freeradius

それからソースをダウンロードしました。

apt-get source freeradius

ソースをビルドします:

cd freeradius-2.1.12+dfsg
./configure --prefix=/root/freeradius/freeradius-2.1.12
make

make が失敗する:

        /root/freeradius-2.1.12+dfsg/src/lib/libfreeradius-radius.la -lnsl -lresolv  -lpthread -lssl -lcrypto
gcc -shared  .libs/eapcommon.o .libs/eapcrypto.o .libs/eapsimlib.o .libs/fips186prf.o  -Wl,--rpath -Wl,/root/freeradius-2.1.12+dfsg/src/lib/.libs -Wl,--rpath -Wl,/root/freeradius/freeradius-2.1.12/lib /root/freeradius-2.1.12+dfsg/src/lib/.libs/libfreeradius-radius.so -lnsl -lresolv -lpthread -lssl -lcrypto  -Wl,-soname -Wl,libfreeradius-eap-2.1.12.so -o .libs/libfreeradius-eap-2.1.12.so
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status

では、「apt-get install」がどうやって機能するのか疑問に思い、確認してみました。

#type freeradius
freeradius is hashed (/usr/sbin/freeradius)

# ldd /usr/sbin/freeradius
        libfreeradius-radius-2.1.12.so => /usr/lib/freeradius/libfreeradius-radius-2.1.12.so (0x00007f3d6d1df000)
        libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f3d6c735000)

したがって、libcrypto と libssl は両方とも /lib/x86_64-linux-gnu に存在します。

では、configure に /lib/x86_64-linux-gnu を取得するように指示するにはどうすればよいでしょうか?

答え1

ソースからビルドする場合は、開発パッケージをインストールする必要があります。これらは通常、<package-name>-dev(Debian) または<package-name>-devel(RPM) という名前です。ただし、これらはエントリにリストされる必要がありますBuild-Depends

Ubuntu では、これはパッケージ でありlibssl-dev、ヘッダー ファイルも提供されます。


見つめているBuildingTutorial - ビルド依存関係を取得する

apt-get build-dep freeradius

依存関係を取得し、

debuild -b -uc -us

パッケージをビルドしますfreeradius

関連情報