在下面,我假设源是开放的(例如Python脚本),因此未绑定到任何体系结构(例如amd64或i386),因此为“全部”。如果您有一些C源代码,则需要Architecture: amd64 i386在源control文件中使用。
创建准备用于启动板的软件包
这最终将成为一系列单独的启动板PPA程序包。
我更喜欢(但可能无法实现...)的是将包装减至最少-从模板创建一系列包装并调整最低限度(更改日志等内容+ tar文件)。
Launchpad仅接受源软件包,因此创建一个rules将文件安装在正确位置的软件包。为了方便起见,我将使用debhelper。文件所在的目录应类似于:
debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...
甲debian/copyright文件也可以是用于通知与所述包相关联的许可证的用户是有用的。我认为您不需要postinst脚本,因为您只需要提取一些文件即可。compat应该包含debhelper兼容性级别,例如“ 8”。(有关更多详细信息,请参阅debhelper的手册页)
changelog可以使用dch命令来编辑该文件,该命令可从devscripts软件包中获得。在rules(使用debhelper的)应包含以下内容:
#!/usr/bin/make -f
%:
dh $@
override_dh_install:
dh_install mypluginfolder/ /usr/share/rhythmbox/plugins
使用使其可执行chmod 755 debian/rules。可以使用构建源码包debuild -S。确保位于名为的目录中<package-name>-<version>。有关该override_行为和dh命令的更多信息,请参见其手册页。
《Debian新维护人员指南》对我理解这一点非常有价值,建议阅读。示例包装可在https://github.com/Bumblebee-Project/bumblebee-ppa上找到。
从现有文件树创建包
dpkg-deb -b可用于从现有文件树创建tarball。首先,首先创建一个目录,该目录应以您的软件包命名。我假设您要命名myplugin,然后放入/usr/share/rhythmbox/plugins/mypluginfolder。另外,创建DEBIAN用于存储软件包信息的目录(大写!):
mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN
复制文件:
cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins
接下来,您将需要一个所谓的控制文件,myplugin/DEBIAN/control该文件描述了程序包。此类文件的内容如下:
Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
Longer description here
.
As you can see, new paragraph are split by a single dot,
and lines have to be indented by one space.
现在,您可以选择验证软件包中的内容。下一条命令列出以下文件和目录条目的内容myplugin:
find myplugin -ls
如果满意,请在当前目录中构建软件包:
dpkg-deb -b myplugin .
将会出现一个新文件,名称如<package>_<version>_<architecture>.deb本例所示myplugin_1.0-1_all.deb。您可以使用该less程序偷看文件。例如,less myplugin_1.0-1_all.deb。