6

将按以下步骤创建一个简单的 Debian 软件包,以下步骤将是初学者的教程

考虑我有一个文件让我们说 test.sh 它只会在屏幕上打印测试

#!/bin/sh
set -e
echo "this is sample debian package created " >&2

安装debian包后应该是什么输出?A)在使用“dpkg -i test-1.0.deb”安装软件包后,我想将上面我命名为 test.sh 的文件放在 /home/bla/Desktop/ 中

为了实现上述过程,请按照以下步骤操作

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

软件包已准备好从测试文件夹中取出并输入 dpkg --build test-1.0/

您的软件包已准备就绪,您可以使用 dpkg -i test-1.0.deb 安装它

如果我想对 dh_make 和 debuild 执行相同的过程,我无法在安装后添加我希望放置 test.sh 的目录结构

我遵循的步骤:

  1. mkdir test-1.0
  2. 复制上面的目录结构

    cd test-1.0/ && mkdir -p home/bla/Desktop/
    cp test.sh home/bla/Desktop/
    
  3. dh_make -n -s -e test@test.com

  4. cd debian
  5. rm *.ex *.EX
  6. cd ..
  7. debuild -us -uc

不管我的 test.sh 之后根本没有包含在包中,我不知道这是我从 debian 手册中了解到的原因

有人知道怎么做吗,请尽快告诉我..,我只想知道如何在使用 debuild/dpkg-buildpackage 构建 debian 包时将文件包含在包中,就像我在第一个过程中所做的那样简单的

4

1 回答 1

13

使用dh * 和 dpkg-buildpackage 的AQ/D 示例:

1)准备工作目录和测试文件(我们将打包应该安装到“/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

5)测试生成的包内容:

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
于 2012-06-12T17:56:17.033 回答