我有几个二进制文件:foo、bar.so 和 foo.lnk。我想制作一个 deb,将 foo 提取到/usr/share/foo/foo
,将 bar 提取到同一目录,将 foo.lnk 提取到/usr/share/applications
。我不想包含任何源,而且我需要确保安装了几个依赖项。
我找到了一些资源,例如http://www.webupd8.org/2010/01/how-to-create-deb-package-ubuntu-debian.html和https://wiki.debian.org/IntroDebianPackaging。问题是它们是包含源代码的指南。此外,我真的不明白如何指定将某些文件提取到哪里。
答案1
我发现了一个相对简单的方法,所缺少的就是如何运行安装前和安装后脚本。(以及是否有办法添加卸载脚本)。
http://ubuntuforums.org/showthread.php?t=910717
确定软件包的名称。标准 Debian 符号全部小写,格式如下:
<project>_<major version>.<minor version>-<package revision>
例如,您可以将您的第一个包命名为...
helloworld_1.0-1
创建一个目录来制作你的包。该名称应该与包名称相同。
mkdir helloworld_1.0-1
假设打包目录实际上是文件系统的根目录。将程序文件放在系统上要安装的位置。
mkdir helloworld_1.0-1/usr mkdir helloworld_1.0-1/usr/local mkdir helloworld_1.0-1/usr/local/bin cp "~/Projects/Hello World/helloworld" helloworld_1.0-1/usr/local/bin
现在创建一个特殊的元数据文件,包管理器将使用它来安装您的程序。
mkdir helloworld_1.0-1/DEBIAN gedit helloworld_1.0-1/DEBIAN/control
将类似这样的内容放入该文件中。
Package: helloworld Version: 1.0-1 Section: base Priority: optional Architecture: i386 Depends: libsomethingorrather (>= 1.2.13), anotherDependency (>= 1.2.6) Maintainer: Your Name <[email protected]> Description: Hello World When you need some sunshine, just run this small program!
描述中每行前面的空格很重要。
现在你只需要制作包装:
dpkg-deb --build helloworld_1.0-1