マルチアーキテクチャPPAを作成および管理する方法


13

私はすべてのubuntuバージョンのために再コンパイルする必要があるプログラムを持っています。

現在、現在のディストリビューションのためだけにUbuntuのPPAを使用してパッケージ化しています。

最終的に、以前のubuntuバージョン用のパッケージを提供する必要があります。

これを達成する方法がわかりません。

Ubuntu PPAビルドサーバーはどのように機能しますか?(debian / changelogファイルの)最新のchangelogエントリの配布フィールドを見て、パッケージをビルドするディストリビューションを決定しますか?

debian仕様では、複数の分布を分布フィールドに追加できます。しかし、これは私を助けるために継ぎ目ではありません。

一部のubuntuドキュメントでは、ディストリビューション名をバージョン番号にエンコードする方法について説明しています(debian changelogファイル内)。

しかし、これは実際にどのように機能しますか?プログラムの新しいバージョンが利用可能になりましたが、それでは何ですか?ディストリビューションごとに新しいchangelogエントリを追加します。PPAbuildserverは、ディストリビューションごとに新しいパッケージを自動的にビルドしますか?または、PPA buildserverは最初の変更ログエントリだけを参照しますか?


1
私もこのプロセスに本当に興味があります!
マルコセッピ

回答:


7

行く方法は、Ubuntuのバージョンごとに1回アップロードすることです。

Launchpadは、サポートされなくなったUbuntuバージョンのパッケージをビルドせず、Ubuntuの特定のバージョンのパッケージのみをビルドします。対象バージョンは、(すでにご存じのとおり)changelog最新のエントリによってファイルに指定されています!

プログラムが依存するパッケージは、Ubuntuのすべてのバージョンで同じバージョンで使用できるとは限らないことに注意してください。

また、「マルチアーキテクチャ」(アーキテクチャ= CUPタイプ、x86、LPIA、AMD64など)についても説明します。これArchitecture: anyは、パッケージ定義(debian/control)ファイル内にある限り、アップロードされたすべてのパッケージが利用可能なすべてのアーキテクチャ用にビルドされるため、違いはありませんが、これにより、パッケージを異なるアーキテクチャの異なるパッケージに依存させることもできます(パッケージを複数回定義する)


10

Launchpadには現在ベータ版の新機能があり、追加の作業なしで一度に複数のubuntuバージョンのパッケージをビルドできます。パッケージを毎日自動的にビルドすることもできます。https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted 代替テキスト


1
面白いですね。リポジトリのホストにbzrもランチパッドも使用していないため、直接使用できません(Mercurialを使用しています)。だが!おそらく、新しいパッケージビルドをトリガーするたびに、ランチパッドでbzrリポジトリを作成し、そこにあるメインリポジトリから最新の変更セットをダンプすることが可能です。
maxschlepzig

私はそれほど頻繁に何もコーディングしていませんが、このことに興奮しています。
-aperson

@maxschlepzig HgをLaunchpadにインポートする方法について、別の質問をしてください。回答します。
ホルヘカストロ

6

命名規則に関して、標準は次のようなことをすることです。

  • Ubuntuの公式アーカイブに含まれるパッケージの場合は1.0-0ubuntu1
  • 1.0-0ubuntu1〜lucidppa1は、lucidのPPAに入れたそのパッケージのバージョン用です
  • Karmic用のそのパッケージのバージョンでは1.0-0ubuntu1〜karmicppa1

その理由は、バージョンフィールドの〜が、バージョン番号の「なし」を表しているためです。そのため、誰かがKarmicでPPAを追加すると、〜karmicppa1パッケージが取得されます。その後、彼らがLucidにアップグレード(およびPPAを読み取り)すると、Lucid PPAパッケージに置き換えられます。パッケージが公式のアーカイブに入った場合、PPAからの移行はスムーズに進みます。

もう1つの利点は、リリースをバージョンフィールドに入力すると、ファイルが適用されるリリースが明確になることです(リリースごとに1つアップロードすることを微妙に思い出させます)。たとえば、異なる依存関係がある場合のために、Ubuntuリリースごとに異なるブランチが必要になる場合があります。


スコット-これについて何らかのドキュメントがありますか?
バルトスラダチスキ2013年

〜およびものはおそらくどこか不明瞭なラベルが付けられています。残りは、私が他の開発者の間で観察した慣例であり、公式の文書化された慣行ではありません。
スコットリッチー

OK、ありがとう、あなたの提案した命名規則はうまく機能します。
バルトシュラダチスキ2013

時々、これはさらに拡張されて、PPAの前に〜が追加されるようになります:1.0-0ubuntu1〜karmic1〜ppa1 PPAバージョンをそれよりも小さくしたい。
スコットリッチー

Freenodeの#launchpadで尋ねる必要がありましたが、明らかにこれはLaunchPad WikiのBuild a Source Packageの下にあります。この規則に関する情報をありがとう、それは非常に役立ちます^ _ ^
TrinitronX
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.