데비안 또는 우분투에서 주어진 패키지의 의존성 만 설치하십시오 (apt)


18

apt-get (또는 다른 dpkg의 다른 프론트 엔드)을 사용하여 패키지를 직접 설치 한 다음 즉시 제거하고 종속성을 제거하지 않고 패키지의 필수 종속성 만 설치하는 더 좋은 방법이 있습니까?

답변:


22

apt-cache depends pkgname 패키지의 종속성을 보여줍니다.

하나의 명령으로 모두 원한다면 다음보다 더 나쁠 수 있습니다.

apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`

16

apt-get은 정확히 그 명령을 제공합니다 ...

apt-get build-dep <package name>

당신이 얻는 맨 페이지에서

build-dep는 apt-get이 소스 패키지의 빌드 종속성을 충족 시키려고 패키지를 설치 / 제거하도록합니다. 기본적으로 종속성은 기본적으로 패키지를 빌드하기 위해 충족됩니다. 원하는 경우 --host-architecture 옵션을 사용하여 호스트 아키텍처를 지정할 수 있습니다.


9
build dependencies과 (와) 의 차이가 없었 dependencies습니까? 마찬가지로 일반적으로 프로그램을 설치하면 실제로 실행 해야하는 종속성이 생기고 빌드 종속성을 사용하면 라이브러리, 컴파일러 등에 대해 더 많이 생각합니다. 그래서 확실하지 않지만 (이 답변에는 공감대가 있지만) 빌드 종속성을 얻는 것이 패키지가 가지고있는 (실행) 종속성을 얻는 것과 같은 것은 사소한 것이 아닌 것 같습니다.
Nanne

1
당신이 올바른지. 아주 오래 전에 이것에 대한 대답으로, 빌드 종속성 (빌드 시간)과 종속성 (런타임)의 차이점을 완전히 이해하지 못했습니다. Nanne을 명확히 해주셔서 감사합니다!
Nathan Crock

4

aptitude를 사용하면 설치시 패키지 이름 대신 쿼리를 지정할 수 있습니다. 이라는 패키지의 종속성을 설치하려면 다음과 foo반대로 종속성이있는 패키지를 설치할 수 있습니다 foo.

aptitude install '?reverse-depends(foo)'

또는

aptitude install '~Rfoo'

패키지를 설치 한 다음 제거 할 때의 문제점은 종속성으로 설치되는 모든 패키지가 "자동으로 설치됨"으로 표시되며 적시에 의해 또는 설치 apt-get autoclean하지 않은 경우 설치 / 제거 / 업그레이드 작업에 의해 제거되거나 aptitude mark또는 apt-mark명령을 사용하여 수동으로 설치 한 것으로 표시 하십시오 .

그러나 이것은 왜 당신이 이것을하고 싶은지에 대한 의문을 제기합니다. 내 최선의 추측은 당신이 직접 컴파일 할 일부 소프트웨어에 대한 종속성을 설치하려고한다는 것입니다. 이 경우 먼저 빌드 종속성을 설치 apt-get build-dep packagename하지만 equiv패키지를 사용하여 올바른 종속성이있는 더미 패키지를 빌드 하여 런타임 종속성이있는 더미 패키지를 작성해야합니다 (일반적으로 빌드 종속성과 다름). 수동으로 컴파일 한 프로그램 에 대한 정보를 볼 수 equivsAPT는 HOWTO


3

소스에서 pkgname을 빌드하는 경우

apt-get build-dep pkgname

1
빌드 의존성은 런타임 의존성이 아니다
sehe

>> 소스에서 pkgname을 빌드하는 경우
eri

그것이 어디에서 보증 / 문서화되어 있는지 모르겠습니다. 또한 어떤 목적으로도 동일하게 만들지 않습니다. 나는 항상 build-dep을 사용 하지만 현재 질문에 대한 더 나은 답변을 원합니다. 나도 필요해
sehe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.