web-dev-qa-db-ja.com

C ++プログラム用のPPAを作成する方法は?

MyAgenda 1.0 screenshot

NetBeanで作成されたc ++/gtkmmプロジェクトがある場合、これからPPAへのパッケージを作成するにはどうすればよいですか?

ターゲットファイル構造(* .desktop、iconfile、ui gladeファイル)を作成しました。

バイナリは/opt/extras.ubuntu.com/myagenda/bin/myagendaに移動します。

空き地ファイルのフォルダもあり、/opt/extras.ubuntu.com/myagenda/bin/myagenda/uiに移動する必要があります。

デスクトップファイルは/usr/share/applications/myagenda.desktopに移動します。アイコンは/usr/share/icons/hicolor/scalable/apps/myagenda.svgに移動します

ご覧のとおり、ファイルの数はわずかです。

さて、これらすべてを管理する方法、PPAでパッケージを作成する方法、knowsこのファイルをどこに、どのようにターゲットに置くのか?

├── opt
│   └── extras.ubuntu.com
│       └── myagenda
│           ├── bin
│           │   └── myagenda
│           └── ui
│               ├── item_btn_delete.png
│               ├── item_btn_edit.png
│               ├── myagenda.png
│               ├── myagenda.svg
│               ├── reminder.png
│               └── ui.glade
└── usr
    └── share
        ├── applications
        │   └── myagenda.desktop
        └── icons
            └── hicolor
                └── scalable
                    └── apps
                        └── myagenda.svg

更新:

  1. installディレクトリにターゲットを含むdebianファイルを作成しました:

    data/myagenda /opt/extras.ubuntu/com/myagenda/bin
    data/ui/* /opt/extras.ubuntu/com/myagenda/ui
    data/myagenda.desktop /usr/share/applications
    data/myagenda.svg /usr/share/icons/hicolor/scalable/apps
    

dpkg-buildpackageの後にビルドされますが、AMD64アーキテクチャ用です。今、それをi386に変更しようとしています。

6
piotr

PPAの作成は非常に簡単であると同時に、パッケージの複雑さ(つまり、単一のバイナリ、複数のバイナリなど)に応じてやや複雑なプロセスです。しかし、MyAgendaのような単純なアプリケーションの場合、PPAの作成は非常に簡単です。

最初に必要なパッケージをインストールします。

Sudo apt-get install build-essential devscripts ubuntu-dev-tools debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian pbuilder piuparts。それらのほとんどはおそらくデフォルトですでにインストールされています。

Gpg-keyとssh-keyをセットアップします。 here および here の指示に従ってください。


STEP1:ソースパッケージのレイアウト

アプリケーションのソースフォルダーに移動します。基本的なソースパッケージのレイアウトは次のとおりです。

 MyAgenda-1.0/
    -- data/
          -- myagenda
          -- myagenda.desktop
          -- myagenda.svg
          --ui
             -- myagenda.glade
             -- otherfiles
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

STEP2:GPGキーIDとフォーマットを知る

ファーストラン:

gpg --list-keys。次のような出力が得られます。

   pub: YOURGPG-KEY
   uid: YOURUSERNAME <YOURMAIL-ID>   #note your username & email.
   sub: --------

STEP3:Debianフォルダーの作成

Debianフォルダーとdebianフォルダーに他のすべての必要なファイルを作成するには、run(上記と同じユーザー名とemail-idを使用します):

DEBFULLNAME="YOURUSERNAME" dh_make -n -s -e YOUREMAIL-ID。これは、gpgキーでパッケージに署名するのに役立ちます。

ただし、これはdebianフォルダーの下に「インストール」ファイルを作成しません。ファイルを手動で作成し、次のデータとともに保存します。

        data/myagenda /opt/extras.ubuntu/com/myagenda/bin
        data/ui/* /opt/extras.ubuntu/com/myagenda/ui
        data/myagenda.desktop /usr/share/applications
        data/myagenda.svg /usr/share/icons/hicolor/scalable/apps

STEP4:変更ログの更新

更新履歴ログを更新するには:

dch -i

変更ログのサンプルは次のとおりです。

package (version) distribution; urgency=urgency

 * change details
   more change details
 * even more change details

 -- maintainer name <email address>[two spaces]  Sun, 8 July 2012 18:14:08 +0530

上記の形式が保持されていることを確認します。編集が完了したら、CTRL + Oを押して書き込みます。削除
。dch part&changelog fileを上書きします。CTRL+ Xを押して終了します。

Debianの下にある余分な.exファイルを削除したい場合は、debianフォルダーに入れて.ex&.EXファイルを削除してください。

cd debian
rm *.ex *.EX

ステップ5:DEBパッケージを作成する

次に、debパッケージを作成するには、次を実行します。

debuild --no-tgz-check#Optional.itはソースtarballをチェックしません。


ステップ6:PPAにアップロードする

ソースパッケージをPPAにアップロードするには、次を実行する必要があります。

debuild -S

-Sフラグが行うことは、debuildにfakerootと一緒に別のスクリプトdpkg-buildpackageを使用してソースパッケージをビルドするように指示することです。 .orig.tar.gzファイルを取得し、.diff.gz(作成者の元のtarballと作成したディレクトリdebian /とそのコンテンツの違い)と、説明のある.dscファイルを生成します。ソースパッケージのmd5sums。 .dscおよび* _source.changes(ソースパッケージのアップロードに使用)ファイルは、GPGキーを使用して署名されます。

debuild -Sは、ソースディレクトリの外部にsource.changesファイルを作成します。ランチパッドに移動してPPAを作成します。 source.changesをそのPPAにアップロードします((それに応じてファイル名を変更します):

dput ppa:YOUR-LAUNCHPAD-USERNAME/myagenda myagenda-1.0-ubuntu1.changes 

完了!


ノート:

複数のubuntuバージョンのパッケージをアップロードする場合は、 here からヘルプを入手してください。

ソース:Complete Packaging Guide Wiki

7
Khurshid Alam