우분투의 릴리스 (또는 다른 데비안 준비를 파생)에있는 패키지의 버전에 대한 종속성이 빌드하려고하는 버전의 deps과 동일 가능성이 실행할 수있는 경우 apt-get build-dep nginx
또는 aptitude build-dep nginx
-이 설치되지 않습니다 nginx 패키지이지만 대신 ( libssl-dev
현재 찾고있는 패키지 )를 포함하는 종속성 (및 일반적인 종속성)으로 나열된 모든 것을 설치합니다 .
대부분의 경우 이렇게하면 다른 (아마도 최신) 버전의 빌드가 성공적으로 완료되고 각 라이브러리와 헤더 파일을 하나씩 설치하는 것이 절약됩니다. 빌드하려는 다른 버전에 새 종속성이 있더라도 build-dep <package>
추가 새 종속성을 수동으로 설치하기 만하면되므로 시작하기에 좋은 곳입니다.
예를 들어, 내 서버 중 하나의 결과는 다음과 같습니다.
user@host:~$ sudo aptitude build-dep nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initialising package states... Done
The following NEW packages will be installed:
autotools-dev cvs{a} debhelper gettext{a} html2text{a} intltool-debian{a}
libcroco3{a} libmail-sendmail-perl{a} libpcre3-dev libpcrecpp0{a}
libssl-dev libsys-hostname-long-perl{a} po-debconf{a} zlib1g-dev
0 packages upgraded, 14 newly installed, 0 to remove and 19 not upgraded.
Need to get 7,217kB of archives. After unpacking 22.9MB will be used.
Do you want to continue? [Y/n/?]
nginx 빌드는 가능하지만 nginx 자체는 활성화하지 못하도록 일부 라이브러리 및 헤더를 설치하려고합니다.
한 가지 주목할 점은 어떤 이유로 다른 버전이 필요하지 않고 다른 빌드 옵션을 원하기 때문에 자신의 사본을 컴파일하는 경우 업스트림 소스를 직접 사용하는 것보다 패키지의 저장소 소스에서 컴파일하는 것이 더 나을 수 있습니다. 이 SO 질문 은 빠른 검색에서 나온 첫 번째 유용한 페이지이지만 필요한 경우 더 자세한 자습서를 쉽게 찾을 수 있습니다.
주의해야 할 또 다른 작은 사항 : 결과로 설치된 패키지 apt-get build-dep
는 현재 수행중인 것처럼 수동으로 설치 한 것처럼 수동으로 설치된 것으로 표시됩니다. 즉 apt-get unintall-dep
, 수동 라이브러리 / 헤더 설치에서 얻는 상황과 다르지 않지만 한 번에 모두 제거 할 수 는 없습니다 (어떤 사람들은 거기에서 기대하는 사실 만 언급합니다) build-dep
작업 을 취소하는 원스텝 방법이 될 수 있습니다 .