데비안 빌드 - 패키지가 아닌 바이너리에 따라 다름

데비안 빌드 - 패키지가 아닌 바이너리에 따라 다름

저는 Rust 애플리케이션을 개발 중이고 Debian용 패키지를 제공하고 싶습니다. 아래에도 비슷한 구성이 있습니다debian/controls

Source: com.github.yourname.yourrepo
Section: x11
Priority: extra
Maintainer: Someone
Build-Depends: cargo,
               debhelper (>= 9),
               libgtk-3-dev,
               libglib2.0-dev
Standards-Version: 3.9.3

Package: com.github.yourname.yourrepo
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: SomeApp
Some app developed in Rust

그런데 그걸로 빌드하려고 하면 debuild없다고 하더군요 cargo. 그런데 cargo터미널에 입력하면 시스템에 나타납니다. 이유는 패키지가 설치되어 있지 않기 때문인 것 같습니다 cargo. 나는 또한 사람들이 이미 그것을 가지고 있다면 그것을 설치하도록 강요하고 싶지 않습니다. Debian이 아닌 패키지에 대해 강제로 종속성을 갖는 방법이 있습니까?

답변1

아니요, Debian 바이너리 패키지가 아닌 빌드(또는 기타) 종속성을 적용할 수 있는 방법은 없습니다. 모든 종속성, 충돌 및 기타 필드 선언사이의 관계가방.

할 수 있는equivs패키지된 패키지 대신 자신의 패키지를 사용하려면 가짜 패키지를 만들어 속임수를 쓸 수 있지만 cargo, 다른 데비안 사용자를 위해 패키지가 올바르게 빌드되었는지 확인할 수는 없습니다.

답변2

이러한 Build-Depends: ...패키지는 빌드 시에만 설치됩니다. 이는 최종 사용자가 목록을 볼 수 없음을 의미합니다.

대신 Depends: ...최종 사용자가 다음을 수행하면 콘텐츠가 자동으로 설치됩니다.

apt install ./<package>.deb

cargo따라서 빌드 타임에도 패키지를 설치할 수 있습니다 . 이것오직이렇게 하지 않는 이유는 빌드 시스템에서 최신 버전의 패키지를 볼 수 없고 최신 버전이 필요한 경우입니다. 이 경우 cargo먼저 패키지를 직접 만든 다음 사용해야 합니다.특별한Stephen Kitt가 언급한 것처럼 빌드 시스템에 패키징됩니다.

관련 정보