最も単純なDebianパッケージングガイドとは何ですか?


150

Ubuntu wikiに行きましたが、混乱しました。あまりにも多くの方法がありました。Debianパッケージングの簡単なガイドを教えてください。


3
独自の用途、特定のコンピューター、または他のユーザーが使用するパッケージを作成しますか?
-andol

1
パッケージ化するソフトウェアはどの言語ですか?
ウマン

4
同じ問題があります。ほとんどのチュートリアルとガイドは、「上流のtarballを入手する」から始まります。この時点から、私たちは失われます。デプロイしたい単純なものがあります。アップストリームのtarballはなく、ソースコードもありません。その単なるwarファイル、いくつかのスクリプト、およびいくつかのjarファイル。上流のtarボールとは何ですか?また、誰も使用していないガイドを見たことがありますか?包括的なガイド(ユーザーの問題を扱うなど)
ジョンリトル

2
StackOVerflowで投稿したものに行きます。

あなたは、「仮想パッケージ」(グループが一緒に依存関係)を作成する場合、それは見てみる価値ありequivs-ビルドを
ロルフ

回答:


103

これは基本的な.debファイルを作成するための良いHOWTO です。.deb個人用のファイルを作成するのに適していますが、パッケージをDebian / Ubuntuに含めたい場合、十分に厳密ではありません-そのためには、Debian New Maintainer's Guideおよび/またはUbuntu Packaging Guide(これを信じます) veはすでに試しました)。

.debファイルのコンプライアンスを確認するための優れたツールはlintian(リポジトリからインストール可能)です。

Ask Ubuntuチャットルームで2つのセッションがありました。

Ubuntuでのパッケージングの基本(パッケージング:パート1)

Launchpad PPAのUbuntuパッケージ(パッケージ:パート2)


これはパッケージ化を開始するために必要なものをうまくコンパイルしますが、HOWTOでは、debファイルにアプリケーションアイコンを含めるための情報がありません(他の場所でそれについて何も見つかりませんでした)。方法のヒントはありますか?
nightcod3r

14

どの部分に問題がありますか?複雑ではありますが、ガイドは私がそれをフォローしているときに非常に明確に見えました。

クイックサマリー:

  • ソースを抽出 .tar.gz
  • 走る dh_make
  • Debianファイルを編集する
  • デビルドを実行する

3
混乱しているのは、ソース言語やディレクトリ構造に関係なく、このプロセスは同じですか?
セス

9
重要なのは、.tar.gzがないことです。作成したアプリをパッケージ化します。これをカバーするガイドはないようです。それらはすべて、私たちが持っていない「上流のtarball」から始まります。
ジョンリトル

@JohnLittleこの回答は参考になるかもしれません:askubuntu.com/a/27731/5
ネイサンオスマン

1
長期にわたる繰り返し包装はどうですか?このような長くて複雑なパッケージングプロセスを毎回行う必要がありますか?
クラベミール

ユーザーにGPGキーがない場合、debuilddebsign:gpgエラーが発生しました!Aborting ....」で失敗します
agc


5

何かをパッケージ化する最も簡単な方法は、checkinstallを使用することです


4
checkinstallは、ソースインストールメソッドからdebinバイナリパッケージ(.deb)をすばやく構築する方法を提供します。ただし、適切なdebianパッケージ(debianソースパッケージから構築)は提供しません。
ジョアンピント

OH man ..コンパイルする前にそれを使わなければなりませんでした。それは何時間ものコンパイルのようです。
ピョートルクラ

5

もともとStackOverFlowに投稿されたこのガイドは、プリコンパイルまたは解釈されたソフトウェアを対象としています。

debパッケージを構築する正しい方法は使用してdpkg-buildpackageいますが、時には少し複雑です。代わりに使用dpkg -b <folder>でき、Debianパッケージが作成されます。

これらは、dpkg -b <folder>手動コンパイルを必要とせずに自動的に実行されるバイナリまたは任意の種類のスクリプト(Python、Bash、Pearl、Ruby)でDebianパッケージを作成するための基本です:

  1. 次の構造を再作成するには、ファイルとフォルダーを作成します。

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    に配置されたスクリプト/usr/bin/は、ターミナルから直接呼び出されます。スクリプトに拡張子を追加していないことに注意してください。また、debパッケージの構造は、インストール後のプログラムの構造になります。したがって、プログラムに単一のファイルがある場合にこのロジックに従うと、直接下ProgramName-Version/usr/bin/your_scriptに配置できますが、複数のファイルがある場合は、それらを下に配置し、その下にProgramName-Version/usr/share/ProgramName/all your files1つのファイルのみを配置し/usr/bin/てスクリプトを呼び出します/usr/share/ProgramName/

  2. すべてのフォルダーのアクセス許可をルートに変更します。

     chown root:root -R /path/to/ProgramName-Version  
    
  3. スクリプトのアクセス許可を変更します。

     chmod 0755 /path/to/the/script
    
  4. 最後に、次を実行できます:dpkg -b /path/to/the/ProgramName-Versiondebパッケージが作成されます!(post / pre instスクリプトと必要なものすべてを追加することもできます。通常のDebianパッケージのように機能します)

controlファイルの例を次に示します。「control」という空のファイルにコピーして貼り付け、DEBIANフォルダーに入れるだけです。

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.

3

いいえ、この世界で最もシンプルで明確なパッケージングガイドは

Ubuntuおよびその他のDebian用のJavaアプリケーションのパッケージ化

数日前、最初のアプリケーションのために、このチュートリアルに従ってDEBパッケージを作成しました。非常に明確で、アプリが正常にパッケージ化されました。はい、少なくともそれは私にとって最も簡単です。

Debianパッケージングガイドと比較できます。


3
「シンプル」は「完全」を意味しません。基本的な.debパッケージチュートリアルではさまざまな種類のプログラムを対象としないポリシーが多数あるため、パッケージは「単純なチュートリアル」ほど簡単ではありません。
トーマス・ウォード

間違いなくシンプル。始めて、数分で最初のdebianパッケージを作成することができました。まだ対処すべき詳細がたくさんあります(lintianからの悪いパッケージ品質のメッセージ)が、出発点としては素晴らしいです。
atmelino
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.