動作中のプログラムのPPAを作成するにはどうすればよいですか?


36

C、C ++、またはPythonで作成されたアプリケーションが動作していると仮定しましょう。Launchpad PPAを作成して、他の人がパッケージから簡単にインストールできるようにします。これを最初から最後まで行うための手順をステップごとに説明してください。(または、同じことを行うリンクを提供します;)

  • プログラミング言語は重要ですか?(それはbashスクリプトですか?)
  • ビルドに何か追加する必要がありますか?
  • ビルドはどこにインストールする必要がありますか?
  • 依存関係を定義するにはどうすればよいですか?
  • 依存関係を使用するにはどうすればよいですか?
  • .debを作成するにはどうすればよいですか?
  • Launchpadにアップロードする前に何をする必要がありますか?

1
この質問をしているのは、FLOSSプロジェクトでPPAを作成することをときどき推奨しているためです(簡単にインストールできるようになります)。
david.libremone

回答:


33

それは非常に幅広い質問です。私はできる限り答えようとしますが、それは間違いなく段階的な指示ではありません。これは、パッケージを作成するための段階的なアルゴリズムがないためです。その方法は、多くの要因、主にパッケージの種類(アプリケーション、ライブラリ)、ソースの構造、および多くの詳細に依存します。

幸いなことに、http://packaging.ubuntu.comに詳細なガイドがあります。

全体のプロセスを少しでも理解できるようにお手伝いしますので、少し慣れていただければ幸いです。パッケージングガイドには、追加のヘルプのリソースが含まれています。


まず、パッケージ(.debファイル)の作成はPPAの作成とは別のプロセスであることに注意してください。PPAを作成するには、Launchpadのプロファイルに移動し、[新しいPPAを作成]リンクをクリックします。それで全部です。作成され、動作しますが、空です。パッケージをアップロードするには、最初にパッケージを作成する必要があります。しかし、最初にあなたの小さな質問のいくつかに答えさせてください。

  • プログラミング言語はまったく関係ありません。C ++アプリケーション、Bashスクリプト、Brainfuck Hello World、単一のREADMEファイル、またはクールな写真のセットがあります。パッケージには任意のファイルを含めることができます。インストール中に、パッケージはファイルシステムのルート(「/」)に抽出されます。このようにして、いくつかのファイルをバイナリフォルダーに入れたり、いくつかの壁紙をGNOMEのデフォルトセットに追加したり、ユーザーにBashスクリプトを提供したりできます。
  • あなたはDOソースに何かを追加する必要があります。「debian」という名前の最上位ディレクトリでなければなりません。パッケージの詳細を含むファイルがいくつかあります-それらはパッケージのタイプなどを定義するために使用されます
  • 依存関係は、このファイルの1つに(他の詳細とともに)リストされています。どこから入手できますか?これらは、アプリケーションが使用する単なる他のパッケージです。アプリケーションの開発者は、自分のプログラムに必要なライブラリとリソースを知っているので、それらをリストするのに苦労することはないはずです。
    • パッケージ(pbuilder)の構築に使用されるいくつかのツールは、おそらくコンパイル時にアプリが必要とするものを決定することにより、依存関係を自動的に埋めることができます。
  • AutoToolsを使用することも強くお勧めします。それはあなたが追加する必要があるかもしれない他のことですが、おそらくソフトウェアのほとんどすべてがすでにそれらを使用しています。AutoToolsは非常に役立つプログラムのセットです-いくつか例を挙げるとautomake、autoconf、autoscanです。有名な./configure && make && make installを使用してプログラムをコンパイルおよびインストールするとき 次に、オートツールを使用してソースを自動的に処理し、ソースに含まれる他のリソースをインストール用に準備し、コンパイルの結果を適切な場所に抽出します(質問に答えるため:ビルドは多くの個別の場所に抽出されます。バイナリは/ usr / local / binに、ドキュメントは/ usr / local / share / docsに、さらにパッケージのバイナリは別の場所に、feはバイナリを/ usr / binにそれぞれ移動します。この複雑なディレクトリレイアウトを使用している場合は、AutoToolsを使用してください-AutoToolsが自動的に処理するため、非常に便利です。

.debパッケージの構築は、非常に複雑なプロセスのように見えますが、それほど難しくはありません。パッケージを作成するための公式のUbuntuガイドを強くお勧めします:http : //packaging.ubuntu.com

それは巨大ですが、おそらくそのテキストのほとんどの部分をスキップできることがわかります(ビルドするパッケージによって異なります)。基本的に、パッケージングプロセスはこれらの部分で構成されます(すべてガイドで明確に説明されています)

  1. パッケージのビルドに使用されるいくつかのツールを初期化します。
  2. ソースを入手する
  3. ./debianディレクトリを作成し、必要なデータを入力します
  4. debuildでパッケージをビルドします[* .dsc、* _ source.build、* _ source.changesを含む一連のファイルを作成する必要があります。これらのファイルは、パッケージに関するデータとその対処方法を担当します(また、ソース.tar.gz)]
  5. すべてがローカルpbuilderのを実行して動作するかどうかをテストし(それはすべてのこれらのファイルは上記と自動的にautotoolsのの助けを借りて、ソースを構築することにより、の.debパッケージにそれらを結合しようかかります-彼らは包装するために重要である理由です率直に言えば、[ -そうではありません-それらなしでもいくつかの代替手段でもうまくいくことができますが、それは非常に簡単なアプローチです。また、ソースをビルドする方法をビルダーに指示する必要があるため、他の高度なセットアップが必要になる場合があります(。 )-しかし、それは初心者向けではありません])-.debパッケージを取得したいだけなら完了です。

これをPPA にアップロードする必要があります。これについては、ヘルプページhttps://help.launchpad.net/Packaging/PPA/Uploadingで説明されています。

  1. dputを使用してこれらのファイルをLaunchpadにアップロードします
  2. ランチパッドは上pbuilderのを実行する彼らのコンピュータ、およびクリーンな環境でパッケージを生成します
  3. 最後に、パッケージがPPAに表示されます。

ご覧のとおり、PPAの作成はそれほど単純ではありませんしかし怖がらないでください、それはそれほど難しくもありません。さらに、開発者がPPAを使用することを推奨しないことをお勧めします。おそらく、彼らは追加の仕事をする必要があるので(そして、彼らが既にそれをやろうとしているなら)、あなたの言うことを聞かないでしょう。 Ubuntu開発者とコミュニティ全体をサポートし、準備したパッケージを提供したい:)

私はあなたに望む幸運を、パッケージを作成して、あなたが私の答えは参考いただければ幸いです:)

あなたの友人、RafałCieślak


独自のインフラストラクチャでホストされる非ランチパッドPPAを作成するにはどうすればよいですか?適切なディレクトリ構造を持つ単純なWebサーバーですか?
モリアーティ教授

brainf * ckの例は本当に必要でしたか?
カムデン

5
  • あなたのパッケージをアップロードする前に、あなたがのためにそれを設定する必要があります.debUbuntuの参照、梱包PackagingGuideを

  • ソフトウェアのパッケージを作成できたら、LaunchpadのPPAドキュメントを参照してください。PPAの作成からパッケージのアップロードまでをガイドします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.