早些时候,我成功创建了debian软件包,这很简单。但现在,我必须为我的应用程序创建相同的应用程序,这取决于外部程序包。 libwebkitgtk-1.0-0和jdk1.7.0是所需的外部软件包。我希望他们自动安装。另外我的软件有一定的数据,需要存储在用户的主目录中。在Ubuntu 12.04上创建Debian软件包LTS
请指导我。
早些时候,我成功创建了debian软件包,这很简单。但现在,我必须为我的应用程序创建相同的应用程序,这取决于外部程序包。 libwebkitgtk-1.0-0和jdk1.7.0是所需的外部软件包。我希望他们自动安装。另外我的软件有一定的数据,需要存储在用户的主目录中。在Ubuntu 12.04上创建Debian软件包LTS
请指导我。
您的debian/control
文件需要为其需要的其他包声明Depends:
。 Apt将为您下载并安装它们,dpkg
将拒绝安装,除非它们已安装。
Debian软件包没有用户主目录的条目。如果所需的文件丢失,可能会创建一个包含用户主目录的包装,其中包含/usr/share/yourpackage/config/*
的副本。
#!/bin/sh
test -d $HOME/.yourpackage ||
cp -r /usr/share/yourpackage/config $HOME/.yourpackage
exec /usr/lib/yourpackage/yourpackage.bin "[email protected]"
所以真正的二进制是yourpackage.bin
,这是包装/usr/bin/yourpackage
。
对于额外的点,请使用环境变量,以便路径不会完全硬编码。对你自己来说更重要(使测试更容易),而不是对你的用户来说更重要,但要牢记两者的需求。
(提示:${YOURPACKAGE_SITE_CONFIG-/usr/share/yourpackage/config}
将扩大到$YOURPACKAGE_SITE_CONFIG
的值,如果它被设置,否则/usr/share/yourpackage/config
你可能想要做的$YOURPACKAGE_CONFIG
和$YOURPACKAGE_BIN
类似的东西,以便能够在构建目录中覆盖了运行一个简单的测试。全部三个)。