설명하다
예를 들어:
- 나는 source 에서 빌드할 것이다
my-app
. - 몇 가지 종속성이 필요합니다. 설치하십시오
apt-get install foo bar baz
. - 애플리케이션을 빌드합니다.
- 다른
hello.deb
종속성을 설치하십시오foo
. my-app
전체 소스 폴더를 삭제하여 잠시 후에 제거하십시오.- 종속성을 제거했습니다
my-app
.
그러나 6단계에서는 패키지가 여전히 필요하기 apt-get remove foo bar baz
때문에 단순히 종속성을 게시할 수 없으므로 및 패키지 만 제거해야 합니다.hello.deb
foo
bar
baz
제안
이 문제를 해결하기 위해 가상 패키지를 생성하고 , 의 종속성을 선언하고 foo
이 가상 패키지를 간단히 설치할 수 있습니다. 나중에 이 더미 패키지를 제거하여 이러한 모든 종속성을 안전하게 제거할 수 있습니다. 래퍼 스크립트는 이러한 패키지를 동적으로 빌드하고 설치합니다.bar
baz
$ apt-get-named install foo bar baz
Intention: for-myapp
질문
이 접근 방식으로 문제가 해결됩니까? 이와 같은 문제에 대한 구현된 솔루션이 있습니까? 이 목적을 위해 더미 패키지를 어떻게 만들 수 있습니까?
답변1
이것을 정확하게 제공할 수 있는 기성 도구는 없습니다. 데비안의 일반적인 기대는 누군가가 그것을 패키지화 my-app
하고 그것이 실제 패키지가 되어 my-app
설치되어 있는 한 종속성을 계속 사용할 수 있도록 보장하는 것이기 때문입니다( ) 와는 별도로 hello
.
하지만 이런 상황에서 유용하게 사용할 수 있는 두 가지 도구가 있습니다. 내가 생각하기에 가장 관련성이 높은 것은 equivs
종속성이 있는 더미 패키지를 생성하는 빠른 방법을 제공한다는 것입니다.종속성만 포함하는 .deb 패키지 만들기더 알아보기. 또 다른 도구는 mk-build-deps
다른 패키지의 빌드 종속성을 반영하는 가상 패키지를 생성하는 데 사용되며 약간 다른 시나리오에 유용합니다. 목표는 특정 패키지의 빌드 종속성을 하나의 단위로 관리하는 것입니다. 바라보다dpkg-checkbuilddeps에 의해 감지된 충족되지 않은 빌드 종속성을 자동으로 설치합니다.더 알아보기.