PPAとパッケージング:複数のディストリビューション用のパッケージのバージョンを持っている


36

(チャットからの引用)

私が関係しているIRCボットプロジェクトのソースパッケージのランチパッドでPPAを取得しました(リリース間のもののすべての中間パッケージであるため、「実験」PPAとして分類されています)。質問:明快なビルド用に既にパッケージ化しています。マーベリック用のパッケージを除き、同じパッケージを作成し、明快なパッケージを配置したのと同じPPAにそれを配置する方法はありますか?

回答:


42

おそらく最も簡単な方法は、Launchpadでバイナリを単純にコピーすることです。

  1. PPAに移動して、[パッケージの詳細を表示]をクリックします。

    ここに画像の説明を入力してください

  2. 「パッケージのコピー」をクリックします。

    ここに画像の説明を入力してください

  3. Lucidパッケージを選択します。

    ここに画像の説明を入力してください

  4. シリーズの「Maverick」を選択し、「既存のバイナリをコピーする」を選択します。

    ここに画像の説明を入力してください

  5. 「パッケージのコピー」をクリックして、それだけです!


どうもありがとう。あなたの指示はにありました。迅速な対応にも感謝します。
トーマス区

@悪:問題ありません。お役に立てて嬉しいです!
ネイサンオスマン

4
ここにリンクする他の質問に注意してください!!! 既存のバイナリのコピーは、他のバージョンのubuntu向けのプログラムでは常に機能しません!私のrkhunterのPPAと私は何を意味するかを理解する明晰バージョンのためのchangelogを参照してください: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packagesを
トーマス・ウォード

@ThomasWard:良い点-常に機能するとは限りません。
ネイサンオスマン

2
@KhurshidAlamすごい超遅れてごめんね。「無効な変更ログ」で失敗するため、異なるバージョンのPPAを使用する場合は、それぞれ個別にタグを付ける必要があります。[ launchpad.net/~nginx/+archive/stable ](launchpad.net/~nginx/+archive/stable)それが構築するので、それは私がバージョンへの配布を追加する必要が構築するためにあるため、この良い例ですすべての異なるライブラリで正しく。(私は今のところnginxチームのPPAを維持しているので、それを例として使用します。)
トーマスウォード

11

ビルドしているパッケージのバイナリをコピーしても機能しない場合は、debian/changelogファイルを編集して各ディストリビューションバージョンのソースパッケージをアップロードする必要があります。

別のディストリビューションバージョン用に再パッケージする方法

  1. debian/changelogソースパッケージディレクトリのファイルを編集します
  2. バージョンターゲット配布の両方を変更し、ビルドするディストリビューションを反映します。例:

    nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. ソースパッケージを再構築します。 debuild -S
  4. .changesPPAにファイルをアップロードします。dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

ビルドが成功した場合、おめでとうございます。あなたはそのディストリビューション用のパッケージをビルドしました!そうでない場合は、Launchpadでビルドログを確認し、見つかった問題に対処する必要があります。

参照:


これが私がすることです!:D MOTU(ユニバースリポジトリの神)nginxは、PPAでさまざまなビルドや他のプログラムを実行する必要があるときにこれを説明し、私の問題の多くを解決するのに役立ちました。これを投稿してくれてありがとう!:)
トーマスウォード

ええ、すべてのdebianパッケージツール、PPAアップロード、規則、および失敗したビルドのデバッグに関する急な学習曲線がある可能性があるため、これは文書化して新しいパッケージャーが利用できる有用な情報になると考えました。
TrinitronX

確かに。ただし、この質問の時点では、Ubuntuのさまざまなバージョンで利用可能なライブラリを変更することを心配する必要がなかったため、受け入れられた答えを変更していません。nginxrkhunterまたは私が頻繁にバックポート他のパッケージ、巨大な依存関係の問題は、(別のアドレスにありますdepends:私はいつも使用して、制御ファイル内など)programversion-1~RELEASE0〜RELEASE0は常にそれが中だ特定のリリースでいくつかの番号です..普段からバックポートするときDebianからUbuntuへの場合:)
トーマスウォード

うん、依存関係は間違いなくバックポーティングの痛みポイントです;-)同意します、ほとんどの場合、受け入れられた答えで十分であり、Launchpadのbzr-builderレシピを使用する bazaarソース管理リポジトリのユーザーにとっても魅力的です。ただし、多くの依存関係を持つパッケージになった場合、ターゲットディストリビューション用のカスタムパッケージをビルドする必要がある場合があります。
TrinitronX

そしてnginx、Debian UnstableからPrecise、Quantal、Raring、Saucy(およびPPAのTrusty、およびDebianがフリーズするまでTrustyがDebianからマージされた最新の:Pにマージされる)にNGINXチームのためにバックポートします。しかし残念ながら、修正できないバグがあり、Debianが対処する必要があります。これが、Debianのメンテナーと良好な関係を持っている理由です:)
トーマスウォード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.