OpenVPN 소스 tarball을 사용하여 OpenBSD 5.5에 OpenVPN을 설치하고 싶습니다.
지시에 따라여기, 설치해야 lzo
했고
다른 방법으로는 찾을 수 없으므로
CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
"구성"에 지시어를 추가합니다 .gcc
OpenBSD에서 위의 작업을 수행하는 방법에 대한 가이드를 Google에서 광범위하게 검색했지만 아무것도 없습니다.
이것이 내가 할 계획입니다:
- 새로 생성된 디렉터리에 소스 tarball을 추출합니다.
- 명령을 내리다
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
- 명령을 내리다
make
- 명령을 내리다
make install
다음 중 문법적으로 올바른 것은 무엇입니까?
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
또는
./configure --CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
또는
./configure --CFLAGS="-I/usr/local/include" --LDFLAGS="-L/usr/local/lib"
답변1
올바른 접근 방식은 다음과 같습니다.
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
그러나 이것은 모든 configure
스크립트에서 작동하지 않을 수 있습니다. CPATH
및 같은 환경 변수를 설정하는 것이 좋습니다 ( man 페이지 LIBRARY_PATH
참조 ).gcc
한 가지 예:
export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib
.profile
예를 들어, 귀하의. 실행 경로를 사용하지 않는 경우 공유 라이브러리의 경우 필요할 수 있습니다 LD_LIBRARY_PATH
(OS, 빌드 도구 및 사용된 옵션에 따라 다르지만 문제가 되지는 않습니다).
답변2
첫 번째 것은 구문적으로 정확합니다.
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
그러나 그것은강하게바이너리를 사용하는 것이 좋습니다 packages(7)
. 또는 어떤 이유로든 소스에서 반드시 빌드해야 하는 경우 다음 ports(7)
과 같은 인프라를 사용하세요.FAQ 파트 15.
FAQ에 설명된 대로 포트 트리를 설정하세요. 그런 다음 openvpn
포트를 찾으십시오 .
cd /usr/ports
make search key=openvpn
그러면 용어가 포함된 여러 포트가 출력됩니다 openvpn
. 그 중 하나가 openvpn-2.3.2
경로 입니다 net/openvpn
.
cd net/openvpn
sudo make install clean
이것의 이점은 lzo2
시스템을 손상시키지 않고 종속성(여기에서만)이 올바르게 설치되고 openvpn
OpenBSD에서 이를 사용하는 방법에 대한 추가 지침을 얻을 수 있다는 것입니다.
답변3
그것은 모두 구성 스크립트에 따라 다릅니다. 구성 스크립트가 autoconf에 의해 생성된 경우 /usr/local/lib 및 /usr/local/include가 빌드에 사용되도록 하는 "올바른" 방법은 CONFIG_SITE를 사용하는 것입니다. 즉, 셸 시작 파일에 CONFIG_SITE를 정의하고 다음을 수행하여 모든 구성 호출에 대해 CONFIG_SITE를 전역으로 만들 수 있습니다.
cat > $CONFIG_SITE << EOF
CFLAGS="-I/usr/local/include $CFLAGS"
LDFLAGS="-L/usr/local/lib $LDFLAGS"
EOF
또는 위의 내용을 /usr/local/etc/config.site에 추가하여 /usr/local을 접두사로 사용하는 구성 호출에 대해서만 설정하십시오. 구성을 사용하는 모든 호출은 --prefix=/usr/local
/usr/local/etc/config.site(또는 해당 경로를 사용하려는 경우 /usr/local/share/config.site)를 읽습니다. 기본 접두사는 /usr/local이므로 /usr/local/etc/config.site를 생성하면 접두사가 없는 모든 구성 호출이 할당됩니다.
이는 autoconf에 의해 구성 스크립트가 생성된 경우에만 적용된다는 점을 다시 한 번 참고하세요.
답변4
이전에 "./configure"를 실행했다면 다음을 수행할 수 있습니다.
./configure CFLAGS="-I/usr/include/libxml2/"