apt-get install을 사용하여 freeradius를 설치했는데 소스를 빌드할 때 libssl을 찾을 수 없는 이유는 무엇입니까?

apt-get install을 사용하여 freeradius를 설치했는데 소스를 빌드할 때 libssl을 찾을 수 없는 이유는 무엇입니까?

내 우분투 컴퓨터에 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에 존재합니다.

그렇다면 /lib/x86_64-linux-gnu를 사용하도록 어떻게 구성에 지시할 수 있습니까?

답변1

소스에서 빌드하는 경우 개발 패키지를 설치해야 합니다. 일반적으로 이름은 <package-name>-dev(Debian) 또는 <package-name>-devel(RPM) 입니다 . 그러나 이러한 내용은 항목에 나열되어야 합니다 Build-Depends.

libssl-devUbuntu에서는 헤더 파일도 제공하는 package 여야 합니다 .


보고BuildingTutorial - 빌드 종속성 가져오기

apt-get build-dep freeradius

종속성을 가져와야 합니다.

debuild -b -uc -us

패키지를 빌드합니다 freeradius.

관련 정보