如何为C ++程序创建PPA?

MyAgenda 1.0截图

如果我有一个用NetBean创建的c ++ / gtkmm项目,我怎样才能从这个包中创建PPA?

我创建了目标文件结构(* .desktop,iconfile,ui glade文件)。

Binary转到/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上创建包,它知道将这些文件放到目标的位置和方式?

 ├── 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. 使用目标在debian目录中创建install文件:

     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。

创建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。 按照这里和这里的指示。


第1步:源包的布局

现在转到您的应用程序源文件夹。这是您的基本源包布局:

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

第2步:了解您的GPG密钥ID和格式

第一次运行:

gpg --list-keys 。 它会给你输出这样的东西:

  pub: YOURGPG-KEY uid: YOURUSERNAME  #note your username & email. sub: -------- 

第3步:创建Debian文件夹

要在debian文件夹下运行debian文件夹和所有其他必要文件( 使用上面相同的用户名和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 

第4步:更新更新日志

要更新更改日志运行:

 dch -i 

以下是更改日志示例:

 package (version) distribution; urgency=urgency * change details more change details * even more change details -- maintainer name [two spaces] Sun, 8 July 2012 18:14:08 +0530 

确保保留上述格式。完成编辑后按CTRL + O写出。删除
.dch part&overwrite changelog file.P按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使用另一个脚本dpkg-buildpackage和fakeroot一起构建一个源包,它在制作包时授予我们伪root权限。 它将获取.orig.tar.gz文件并生成.diff.gz(作者的原始tarball与我们创建的目录之间的差异,debian /及其内容)和包含描述的.dsc文件和源程序包的md5sums。 使用GPG密钥对.dsc和* _source.changes(用于上载源包)文件进行签名。

debuild -S将在源目录外创建一个source.changes文件。 转到启动板并创建PPA。 现在将source.changes上传到该PPA((相应地更改文件名 ):

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

DONE!


笔记:

如果你想上传几个ubuntu版本的软件包,可以从这里获得帮助。

来源: 完整的包装指南维基