将在以下步骤中创建一个简单的Debian包,以下步骤将是初学者的教程
考虑我有一个文件让我们说test.sh只会在屏幕上打印测试
#!/bin/sh set -e echo "this is sample debian package created " >&2
安装debian软件包后应该输出什么?
A)我想在使用“dpkg -i test-1.0.deb”安装软件包后,在/ home / bla / Desktop /中将上面的文件命名为test.sh
为了实现上述过程,遵循下面提到的步骤
mkdir test-1.0 cd test-1.0 #in order to place test.sh in /home/bla/Desktop,simply create the same directory structure in the test folder using this command mkdir -p home/bla/Desktop/ cp test.sh home/bla/Desktop/ cd .. cd .. cd .. mkdir DEBIAN cd DEBIAN
Package: test Version: 1.0 Section: devel Priority: optional Architecture: all Essential: no Depends: bash Pre-Depends: no Recommends: no Maintainer: test <test@test.test> Replaces: no Provides: no Description: A sample testpackage in order to demonstrate how to create debian packages
包准备好来自test文件夹并输入dpkg –build test-1.0 /
您的包已准备就绪,您可以使用dpkg -i test-1.0.deb进行安装
如果我想用dh_make和debuild做同样的过程,我无法添加目录结构,我想在安装后放置test.sh
我遵循的步骤:
> mkdir test-1.0
>复制上面的目录结构
cd test-1.0/ && mkdir -p home/bla/Desktop/ cp test.sh home/bla/Desktop/
> dh_make -n -s -e test@test.com
> cd debian
> rm * .ex * .EX
> cd ..
> debuild -us -uc
没有什么我的test.sh完全没有包含在包中之后,我不知道是什么原因是我从debian手册中理解的
任何人都知道这样做,请尽快让我…,我只是想知道如何使用debuild / dpkg-buildpackage构建debian包时我可以在包中包含文件,就像我在第一个进程中所做的那样非常简单
解决方法
使用dh *和dpkg-buildpackage的Q / D示例:
1)Pepare工作目录和测试文件(我们将打包应该安装到“/ any / dir”的“foo”脚本):
mkdir test-0.0.1 cd test-0.0.1 echo -e "#\!/bin/sh\necho \"hi,i'm foo\"" > foo chmod +x foo
2)创建将处理安装的简单Makefile:
binary: # we are not going to build anything install: mkdir -p $(DESTDIR)/any/dir cp foo $(DESTDIR)/any/dir
3)生成包骨架:
dh_make -i --createorig
3a)可选择调整debian控制文件
4)构建包:
dpkg-buildpackage -A -uc
dpkg-deb -c ../test_0.0.1-1_all.deb | grep any drwxr-xr-x root/root 0 2012-06-12 20:54 ./any/ drwxr-xr-x root/root 0 2012-06-12 20:54 ./any/dir/ -rwxr-xr-x root/root 30 2012-06-12 20:54 ./any/dir/foo
编辑:不使用Makefile的示例(如果您不打算构建任何内容):
1)创建测试数据:
mkdir test-0.0.1 cd test-0.0.1 mkdir contents touch contents/a touch contents/b
2)创建包骨架:
dh_make -i --createorig
3)使用以下内容创建debian / test.install文件:
contents/ /usr/share/mycontents
4)构建包:
dpkg-buildpackage -A -uc
5)检查内置包装:
dpkg-deb -c ../test_0.0.1-1_all.deb | grep contents drwxr-xr-x root/root 0 2012-06-13 11:44 ./usr/share/mycontents/ drwxr-xr-x root/root 0 2012-06-13 11:38 ./usr/share/mycontents/contents/ -rw-r--r-- root/root 0 2012-06-13 11:37 ./usr/share/mycontents/contents/a -rw-r--r-- root/root 0 2012-06-13 11:38 ./usr/share/mycontents/contents/b