对于专有软件,我想为多个发行版构建和发布多个版本的软件。例如 1.0、1.1 和用于挤压、喘息和精确的两个版本。
构建会在不同的机器上自动运行,并生成特定于发行版的.deb文件。特定于发行版的方式将它们链接到特定于发行版的库版本。例如,用于挤压的 OpenSSL 0.9.8,用于喘息的 1.0.1。但是,这些包是使用相同的版本号和包名构建的。这可能是导致以下问题的原因。
目前我正在使用 repreproincludedeb命令将二进制文件添加到存储库。这很好用,直到我添加了为第二个发行版构建的相同包版本。
为 Squeeze 发布很好
# reprepro -b ./repo --outdir ./wwwpub/repo includedeb squeeze /path/to/sqeezepackages/packagename-1.0.deb
Run Code Online (Sandbox Code Playgroud)
但是随后发布基于 wheezy 构建的相同版本的软件,为 wheezy 发布失败:
# reprepro -b ./repo --outdir ./wwwpub/repo includedeb wheezy /path/to/wheezypackages/packagename-1.0.deb
/path/to/wheezypackages/packagename-1.0.deb: component guessed as 'main'
ERROR: '/path/to/wheezypackages/packagename-1.0.deb' cannot be included as 'pool/main/p/packagename/packagename_1.0_all.deb'.
Already existing files can only be included again, if they are the same, but:
md5 expected: e7df7cd2ca07f4f1ab415d457a6e1c13, got: 0fa924209085a5713f79e6a30649455f
sha1 expected: 947b41827bbac414baddf0648b9abecaad8de4fe, got: 1be168ff837f043bde17c0314341c84271047b31
sha256 expected: a883dafc480d466ee04e0d6da986bd78eb1fdd2178d04693723da3a8f95d42f4, got: a93dbf1e95ddc4cfa84e9cd3cfa6c9e0e14affd79812abde4bca688224430a65
size expected: 1234, got: 1235
There have been errors!
Run Code Online (Sandbox Code Playgroud)
我假设我的构建需要每个发行版的唯一版本号。
1.1~wheezy, 1.1+wheezy, 1.1-1(递增)1.1+deb6, 等?正如jessie即将到来的那样,我希望系统在 dist-upgrades 期间识别出这一点,我认为仅使用发行版名称将不会像j之前那样工作,w并且会被 APT 识别为较旧的。debian/control文件中使用启发式方法来获得特定于它所构建的发行版的版本号。对于更改日志,我也必须调用dch以符合该版本号。| 归档时间: |
|
| 查看次数: |
1969 次 |
| 最近记录: |