如何为C ++程序创建PPA?
如果我有一个用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
更新:
-
使用目标在
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版本的软件包,可以从这里获得帮助。
来源: 完整的包装指南维基 。