web-dev-qa-db-ja.com

PPAにアップロードするためのパッケージのバージョン管理

私は Artha という名前のパッケージを持っています。これをx86およびx86_64アーキテクチャのソースおよび(deb)バイナリとして配布しています。つまり、debファイルを作成した経験があります。 PPAをセットアップするためにかなりの数のリクエストを受け取りました。私は次のリリースのためにそれをやろうと思った。 UbuntuのリポジトリにあるArthaはバージョン1.0.2であり、Artha 1.0.3のPPAを作成しようとしています。

LaunchpadのPersonal Package Archive docs 、PPAは現在設定されていますが、 バージョン管理に関するこのページ は、Ubuntuのリポジトリに既にあるartha-1.0.2-1ubuntu1 PPAバージョンはartha-1.0.3-1ubuntu1ppa1ので、UbuntuのリポジトリがArthaの1.0.3に更新されると、PPAのパッケージよりも優先されます。

通常、.debパッケージを作成するとき、これらのファイルを取得します

  • artha_1.0.3.orig.tar.bz2
  • artha_1.0.3-1.debian.tar.gz
  • artha_1.0.3-1.dsc
  • artha_1.0.3-1_AMD64.build
  • artha_1.0.3-1_AMD64.changes
  • artha_1.0.3-1_AMD64.deb

およびi386の同等のもの。 このページ PPAへのアップロードでは、ファイル.dsc、.changes、および.debian.tar.gzがアップロードされると書かれています。

これが私の混乱です。これらのファイルを前述のバージョンにするにはどうすればよいですか?つまり、「ppa」という接尾辞が付いていますか?確かに、Arthaのソースパッケージで抽出されたディレクトリの名前を手動で変更するのは正しい方法ではないように感じます。

またdebuild -S -sdまたはdebuild -S -sa?ランチパッドのページでは、既存のパッケージの代替バージョンでは前者を使用する必要があると記載されています。これは私には曖昧に聞こえます。これは何を意味するのでしょうか?更新されたバージョンは代替バージョンとしてカウントされますか?

PPAのセットアップに関する詳細なページが多数あります。しかし、それらは一度だけセットアップするためのものであり、PPAは特定のパッケージの更新をより速く提供することを主眼としており、保守性が非常に重要です。すなわち、最初のアップロード後にPPAに起こることについて。

6
legends2k

結果のパッケージのバージョンは、debian/changelogで提供されるバージョン番号に由来するため、適切なバージョンが必要です。

1.0.3-1は、バージョン管理された1.0.3-0ubuntu1のみをアップロードするUbuntuに優先します

$ dpkg --compare-versions 1.0.3-1 le 1.0.3-0ubuntu1 || echo "False"
False

ただし、Ubuntuの変更、つまり1.0.3-1ubuntu1を使用したDebianに由来するバージョンに取って代わることはありません。

$ dpkg --compare-versions 1.0.3-1 le 1.0.3-1ubuntu1 || echo "False"
$

ティルダ(~)文字は、バージョン番号において特別な意味を持ちます。例えば:

$ dpkg --compare-versions 1.0.3-1 le 1.0.3-1~ppa1 || echo "False"
False

パッケージはDebianからのものではないので、1.0.3-0~ppa1のようなバージョン番号を使用します。これにより、Debianから直接同期されたバージョンまたはUbuntuで導入されたバージョンよりも小さいことが保証されます。

したがって、変更ログは次のようになります。

artha (1.0.3-0~ppa1) quantal; urgency=low

  * New upstream release.

 -- Your Name <[email protected]>  Sun, 07 Oct 2012 13:06:56 -0400

debuild -S -sdを使用するかdebuild -S -saを使用するかは実際には別の質問ですが、ここでは簡単な回答を示します。

-saは、.orig.tar.bz2が確実にアップロードされるようにします。以前にこのアップストリームバージョンをアップロードしていない場合は、これを使用します。

-sdは、debian.tar.gzまたはdiff.tar.gzのみがアップロードされるように明示的に作成します。これは、ターゲットアーカイブまたはPPAで既に利用可能なアップストリームバージョンに変更を加える場合に使用します。これは、元のtarballがすでに存在しているためです。

7
andrewsomething