我使用 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

製作失敗:

        /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 上,這應該是 package libssl-dev,它還提供了頭檔。


看著BuildingTutorial - 取得建置依賴項

apt-get build-dep freeradius

應該獲取依賴項,然後

debuild -b -uc -us

建置freeradius包。

相關內容