apt-get install과 apt-get build-dep의 차이점은 무엇입니까?


33

apt-get을 남자의 페이지 , 하나는이를 찾을 수 있습니다 :

pkg 설치이
옵션 다음에는 설치에 필요한 하나 이상의 패키지가옵니다. 각 패키지는 완전한 파일 이름이 아닌 패키지 이름입니다 (예 : Fedora Core 시스템에서 glibc는 glibc-2.4.8.i686.rpm이 아니라 제공된 인수 임).
설치를 위해 지정된 패키지에 필요한 모든 패키지도 검색 및 설치됩니다 .
[...]

build-dep source_pkg
apt-get 이 소스 패키지 의 빌드 종속성을 충족시키기 위해 패키지를 설치 / 제거 하도록합니다 .

그것은 그 모두 종속성을 만족시키기 위해 노력하고있다처럼 들리 겠지만 나는 동안 다른 결과를 가지고 설치matplotlib 사람들의 각각 : apt-get intall내 이후로 일을하지 않았다 pip install matplotlib동안, 내 VIRTUALENV에서 apt-get build-dep*를했다.

*예, 나는 matplotlibvenv 에 설치해야 했지만 pip는 일부 종속성을 해결할 수 없으므로 문제를 해결하기 위해 게으르게 apt를 사용했습니다.

답변:


39

짧은 버전입니다.

apt-get install

종속 패키지를 자동으로 해결하고 다운로드하는 새 패키지를 설치합니다. 패키지가 설치된 경우 최신 버전으로 업그레이드하십시오.

apt-get build-dep

소스 패키지의 빌드 종속성을 충족시키기 위해 apt-get이 패키지를 설치 / 제거하도록합니다.

이 명령 sudo apt-get build-dep packagename은 빌드 할 수 있도록 'packagename'에 대한 모든 종속성을 설치하는 것을 의미합니다. "따라서 build-dep은 설치, 제거, 업데이트 등과 같은 apt-get 명령입니다.

build-dep명령은 시스템에서 로컬 저장소를 검색하고 패키지의 빌드 종속성을 설치합니다. 패키지가 로컬 리포지토리에 없으면 오류 코드가 반환됩니다.

matplotlib 를 설치하려면 Ubuntu에 matplotlib 설치를 참조하십시오.

출처 : ManPage & Ravi Saive


19

차이점은 빌드 타임 이 아닌 런타임에 종속성이 필요한지 여부 입니다.

예를 들어, openssl을 사용하는 바이너리를 작성 중일 수 있습니다. 에서 빌드 시간 나는에있는 OpenSSL이 헤더 파일을 필요가있다 libssl-dev. 그런 다음 이것을로 나열합니다 Build-Depends.

그러나 결과 바이너리 및 패키지에는 헤더 및 기타 개발 파일이 필요하지 않으므로 설치 시 필요하지 않습니다 libssl-dev. 그렇다면에 없을 것입니다 Depends. 그러나 libssl내 바이너리가 연결된 런타임 라이브러리는에 있어야합니다 Depends.

인용 한 man 섹션은 이것을 나타냅니다 ( 패키지의 " 빌드 종속성 만족"에 대해 이야기 합니다). 그러나 빌드-의존이 언제 사용되는지에 대한 사전 지식이 없으면 혼란 스러울 수 있습니다.

제어 파일 필드의 정의에 대해서는 데비안 정책 안내서를보십시오 :

http://www.debian.org/doc/debian-policy/ch-controlfields.html

다음은 Build-Depends 섹션입니다. " 소스 패키지에 대한 종속성 "헤더 아래에 있습니다.

http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps

그리고 이것은 Depends에 대해 이야기합니다. 이진 패키지 헤더 아래에 있습니다 .

http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps


감사. 귀하의 설명에 따라 소스에서 라이브러리를 빌드하려면 빌드 뎁이 필요합니다.
kchoi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.