すべてのUbuntuバージョンで再コンパイルする必要があるプログラムがあります。
現在、現在のディストリビューション用にUbuntuのPPAを使用してパッケージ化しています。
最終的に、以前のubuntuバージョンのパッケージを提供する必要があります。
これを達成する方法がわかりません。
Ubuntu PPAビルドサーバーはどのように機能しますか?(debian/changelogファイル内の)最新のchangelogエントリの配布フィールドを見て、パッケージをビルドするディストリビューションを決定しますか?
Debian仕様では、複数の分布を分布フィールドに追加できます。しかし、これは私を助けるために継ぎ目ではありません。
いくつかのubuntuドキュメント ディストリビューション名をバージョン番号にエンコードすることについて話します(debian changelogファイル内)。
しかし、これは実際にはどのように機能しますか?プログラムの新しいバージョンが利用可能になりましたが、それでは何ですかディストリビューションごとに新しいchangelogエントリを追加し、PPA buildserverは、ディストリビューションごとに新しいパッケージを作成した後、自動的にビルドしますか?または、PPA buildserverは最初の変更ログエントリだけを参照しますか?
行く方法はbuntuごとに1回バージョンをアップロードすることです。
Launchpadは、サポートされなくなったUbuntuバージョンのパッケージをビルドせず、Ubuntuの特定のバージョンのパッケージのみをビルドします。対象バージョンは(ご存じのとおり)changelog
ファイルで最新のエントリによって指定されています!
プログラムが依存するパッケージは、Ubuntuのすべてのバージョンで同じバージョンで使用できるとは限らないことに注意してください。
また、「マルチアーキテクチャ」(アーキテクチャ= xup、LPIA、AMD64などのCUPタイプ)についても説明します。これは、パッケージにArchitecture: any
がある限り、アップロードされるすべてのパッケージがすべての使用可能なアーキテクチャ用にビルドされるため、違いはありません定義(debian/control
)ファイル。これにより、パッケージをアーキテクチャごとに異なるパッケージに依存させることもできます(パッケージを複数回定義する)
Launchpadには現在ベータ版の新機能があり、余分な作業をせずに一度に複数のubuntuバージョンのパッケージをビルドできます。パッケージを毎日自動的にビルドすることもできます。 https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted
命名規則に関して、標準は次のようなことをすることです。
その理由は、バージョンフィールドの〜が、バージョン番号の「なし」を表すためです。したがって、誰かがKarmicでPPAを追加すると、〜karmicppa1パッケージが取得されます。その後、彼らがLucidにアップグレード(およびPPAを読み取り)すると、Lucid PPAパッケージに置き換えられます。その後、パッケージが公式アーカイブに入ると、PPAからの移行はスムーズに進みます。
もう1つの利点は、リリースをバージョンフィールドに入れると、ファイルが適用されるリリースが明確になることです(そして、リリースごとに1つアップロードすることを微妙に思い出させます)。たとえば、異なる依存関係がある場合のために、Ubuntuリリースごとに異なるブランチが必要になる場合もあります。