特定のGoプログラムをビルドしてパッケージ化したいです。 Ubuntu 18.04とDebian 9.5(実際にはPVE 5.2)で提供されているプログラムのパッケージバージョンは、アップストリームで得られたバージョンと比較してかなり古いです。
私のビルドへの依存関係を正しくインポートすることは問題ではなく、Debianパッケージをビルドすることも問題ではありませんでした(そこで実行しました)。
私が知る必要があるのは、私のパッケージにバージョンを割り当てる方法です。このバージョンは他の人にはリリースされません。しなければならないパッケージマネージャが私のパッケージよりも新しいバージョンをリリースすると、そのパッケージがインストールされ、私のパッケージが置き換えられます(これらの場合の1つがUbuntuのパッケージである可能性がありますdo-release-upgrade
)。
ビルド比較()を中断せずにこのようにパッケージに「タグ」を指定する方法はありますかdpkg --compare-versions
?
バックポートは通常パッケージ名(またはバージョンですか?)に含まれていることを知っていますが、これらのbpo
「タグ」の完全なリストを見つけるのは難しいので、これを達成して競合を回避する方法がすでにあると思いました。したがって、主な目的は、入手可能な最新バージョンを入手しながらルールに固執することです。
答え1
新しいアップストリームバージョンをパッケージ化しているので、次の形式のバージョンをお勧めします。
1.0-0~c0000022l+1
1.0はアップストリームバージョンです。ここでのアイデアは次のとおりです。
- 0 は公式の Debian パッケージより低いバージョンです。たとえば、Debianよりも最新のアップストリームバージョンを提供するUbuntuパッケージに使用されます(
0ubuntu
ここで見ることができます)。 - 〜とにかくバージョンが-0リビジョンより低いことを確認してください(参照Debian ポリシーもっと学ぶ);
- c0000022lは、リビジョンを自分のリビジョンとしてマークするために使用される特定のサフィックスです(
bpo
バックポート、deb
Debian Stable Updateに似ています...)。 - 今後のアップデートのための梱包スペースをご提供いただき、+1してください。
その後、パッケージング修正のみを含むアップデートパッケージを提供する必要がある場合は、+1を受け取ります。最新のアップストリームバージョンをパッケージ化している場合は、アップストリームバージョンを適切に上げて+1から再起動できます。
同じアップストリームまたは最新のアップストリームが「公式に」パッケージ化されると、ローカルバージョンの有効なアップグレード候補になります。 Ubuntuパッケージの場合、1.0-0ubuntu ...は1.0-0〜の後にソートされます。 Debianパッケージなので、1.0-1は1.0-0の後にランク付けされます。