私のCI / CDが各コミットに対して私のパッケージの.deb(例えば、コミットハッシュを含むバージョン(例:my-package-662b98b))を自動的にビルドしてバージョンを指定して特定のバージョンをインストールできるようにしたい。
ところで、一般バージョンとどのように区別するのか分からないですね。たとえば、バージョン3.1はバージョン2abdc4aを上書きするか、逆にコミット924af32は3.1を上書きします。
たとえば、パッケージのバージョンが実験的であるため、通常のバージョンの代わりにインストールしないことを示すフィールドは、制御または変更ログファイルにありますか?
答え1
これには2つの側面があります。
最初のものはバージョン番号です。バージョンを順番に保持するには、バージョンとハッシュを含める必要があります。バージョンが正しくソートされていることを確認するために、通常はハッシュの前にビルド日付を追加し、1日に複数のビルドがある場合はその間にスナップショット番号を追加することによって行われます(参照)たとえば、Debian Go パッケージングポリシー)。あなたの場合は、次のバージョンがあります。
- 最新バージョンは3.1です。
- 3.1+git20220725.1.2abdc4aはハッシュ2abdc4aに対応するビルド用です(これが今日の最初のハッシュであると仮定します)。
- ハッシュ924af32に対応するビルドの場合、3.1 + git20220725.2.924af32(今日の2番目のハッシュであると仮定)
2つ目は、リリースパッケージとスナップショットパッケージを分離することです。この問題を解決するには、ストレージを分割する必要があります。または、リリースパッケージ用の「ファミリ」とスナップショット/実験パッケージ用の「ファミリ」をそれぞれホストする必要があります。バラよりDebian 実験Release
ファイル後者の例として、「NotAutomatic:yes」を設定すると、パッケージは自動的にインストールされたりアップグレードとして使用されたりすることはできません。