동일한 소스의 두 가지 다른 버전의 바이너리 데비안 패키지

동일한 소스의 두 가지 다른 버전의 바이너리 데비안 패키지

저는 업스트림 tarball/git 브랜치의 두 부분으로 구성된 패키지를 데비안으로 만들 생각입니다:

  • 사용자 공간 바이너리 및 라이브러리, 버전 1.5.0( foobard바이너리 패키지)
  • 커널 모듈, 버전 0.8.5( foobar-dkms)

문제는 버전이 다르다는 것입니다. 이 경우 하나의 소스 패키지에서 두 가지 다른 버전의 바이너리 패키지를 빌드하는 합리적이고 올바른 방법이 있습니까?

MODULE_VERSION가능하다면 두 개의 소스 패키지를 생성하거나 두 패키지를 모두 1.5.0으로 버전화하는 것(모듈이 소스에 올바르게 지정되어 있음에도 불구하고)보다 더 깔끔한 것을 원합니다 .

답변1

데비안의 바이너리 패키지 버전은 다음 요소에 의해 결정됩니다.dpkg-gencontrol, 결국 바이너리 패키지에 나타나는 최종 제어 파일을 생성합니다. 이 -v옵션은 버전 번호를 지정합니다. 기본적으로 버전 번호는 에서 가져오지만 debian/changelog재정의될 수 있습니다.

아카이브에 이에 대한 몇 가지 예가 있습니다. 예를 들어 내 자신을 참조하세요.gcc-mingw-w64자체(소스) 버전 번호가 있지만 버전이 기본 패키지 gcc-source(현재) 와 병합된 바이너리 패키지를 생성하는 패키지gcc-7-source) 버전 번호 및 소스 패키지 번호. 따라서 Debian 9에서 gcc-mingw-w64버전 19.3은 버전 6.3.0-18+19.3의 바이너리 패키지를 생성합니다.

단일 소스에서 다양한 버전의 다양한 바이너리 패키지를 빌드하려면 이 옵션을 이 옵션(처리할 패키지 지정) -v과 결합하여 필요한 만큼 여러 번 실행할 수 있습니다 (예: 래퍼 중 하나).-pdpkg-gencontroldh_gencontrol

아카이브에는 이를 보여주는 패키지가 하나 이상 있습니다.android-sdk-metaandroid-sdk두 가지 다른 버전 (소스 버전 사용)과 바이너리 버전이 포함된 네 가지 다른 패키지 로 바이너리 패키지를 빌드합니다.debian/rules.

데비안 정책제어 필드 장소스 제어 파일과 바이너리 제어 파일의 차이점에 대한 자세한 내용입니다.

답변2

피진 예제를 확인할 수 있습니다. 단일 소스에서 libpurple0, pidgin, pidgin-data, pidgin-dev, pidgin-dbg, finch, finch-dev, libpurple-dev, libpurple-bin 패키지를 생성합니다.

소스 가져오기:

http://packages.debian.org/squeeze/pidgin

[pidgin_2.7.3-1+squeeze2.dsc] [pidgin_2.7.3.orig.tar.bz2] [pidgin_2.7.3-1+squeeze2.debian.tar.gz]

빌드를 제어하는 ​​파일은 debian/rules입니다. 자세한 내용은 다음을 방문하십시오.

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

http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.html

답변3

Debian 및 Ubuntu 패키지에서는 버전이 debian/changelog파일에 지정되어 있으며 소스 패키지에서 생성된 모든 패키지가 정확히 동일한 버전을 갖도록 설계되었습니다.

관련 정보