在下面,我假设源是开放的(例如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
。