我已根据http://packaging.ubuntu.com/html/packaging-new-software.html示例创建了一个包。在此示例中,源是c ++文件。我想从可执行jar文件源创建我的新包。 我找到了maven,ANT和dhBuild工具,但我不想使用这个工具。所以我需要一种方法来使用命令行创建我的包。请给我一些提示或样本以了解最多。
答案 0 :(得分:4)
目标是创建一个简单地将shell脚本放在我想要的地方的包。
创建一个目录来构建你的包。有些人使用" deb"和其他人使用"包"。其他人创建了一个目录结构,用于在" deb" (或其他)。
mkdir deb
在deb中创建目录结构,表示您希望脚本放置的位置1
mkdir -p ./deb/usr/local/bin
3.将脚本复制到新目录
cp /path/to/my/script/myscript.sh ./deb/usr/local/bin/
4.创建一个名为" DEBIAN"的子目录,这将托管包控制文件。
mkdir -p ./deb/DEBIAN
Create a control file.
touch ./deb/DEBIAN/control
5.打开控制文件并输入以下文字。
Package: myPackagename (no spaces or underscores allowed)
Priority: optional Section:
misc Maintainer: Maintainer Name <user@mail.com>
Architecture: all Version: 1.0
Depends: package1, package2, ......... Description: short description here long description here (don't remove space at the beginning of line) (replace this with an empty line)
Change ownership: sudo chown -R root:root ./deb
6.创建debian包。
dpkg -b ./deb /my/output/destination/packagename.deb
答案 1 :(得分:0)
我无法理解“不使用debhelper”和“从cmdline创建包”是多么矛盾。
然而,既然你明确地询问了如何“不使用任何工具和脚本”创建包,那么你可以去:
剖析现有的包
.deb
文件实际上只是一个重命名的 ar 韭菜,所以你可以做
$ ar xf /path/to/package.deb
研究包的内容
$ ls
debian-binary control.tar.gz data.tar.gz
debian-binary
文件包含包的格式版本(通常为2.0
)
data.tar.gz
文件包含实际的数据文件。
control.tar.gz
包含有关包的控制信息,包括它的名称(和描述),它的依赖关系;还有预安装和安装后脚本等。
一旦你学会了.deb
- 文件的内部工作原理,你可以通过反转上述过程来创建一个:
将您的数据转换为data.tar.gz
为您的deb
创建控件信息并将其焦点转换为control.tar.gz
创建一个包含您正在使用的二进制版本的debian-binary
文件:
$ echo "2.0" > debian-binary
deb
:
$ ar q /tmp/mypackage.deb debian-binary control.tar.gz data.tar.gz
但是,如果您真的知道自己在做什么,则应该只执行上述 。 创建包不是一项简单的任务。 这就是为什么人们创造了许多工具来帮助完成重复性工作。
使用它们!