저는 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가 언급한 것처럼 빌드 시스템에 패키징됩니다.