制作ubuntu的deb格式包,从helloworld做起

制作ubuntu的deb格式包,从helloworld做起

 

1、新建一个我们临时的工作目录
mkdir deb
2、新建我们程序的目录
mkdir hello
3、编写我们的程序
我们以我们最熟悉的helloworld程序做起,
hello.c代码如下
#include <stdio.h>
int main(int argc, char* argv[])
{
     printf("Hello world!/n"); 
     return 0;
}
Makefile文件如下:
OBJS=hello.o
CC=gcc -g
all:$(OBJS)
    $(CC) -o hello $(OBJS)
clean:
rm -f *.o hello
.PHONY:all clean
4、我们make一下,测试程序编译是否有问题,然后在./hello检查程序是否正确执行
5、如果没问题进行下一步,如果有问题我们检查程序代码
6、我们清理下刚才编译程序的垃圾,make clean一下
7、输入命令,切回上级目录
cd ..
8、进行一次压缩打包(为什么做这一步,我也不太明白,查资料说,这一步是为了给生成的deb文件进行对比,确保我们deb文件没有错误)
改名:因为文件名必须包含文件名还有版本号
mv hello hello-1.0
说明:文件名后必须用-,不能用_
tar zcvf hello_1.0.orig.tar.gz hello-1.0
说明:压缩包的名字必须是包含文件名及版本号
9、进入我们的hello-1.0目录
cd hello-1.0
10、我们需要dh_make工具进行打包前的配置,如果是第一使用请先安装dh-make
dh-make安装方法:
sudo apt-get install dh-make
安装好后,我们就可以使用该命令了
dh_make -e sunsea1026@gmail.com 修改参数,也可以不修改,执行这一步,我们将会看到,邮箱是我们刚才输入的
如果不想改为自己的邮箱,可以执行下面命令
dh_make
上面任一命令后都会出现,一下内容:
zsx@ubuntu:~/deb/hello-1.0$ dh_make -e sunsea1026@gmail.com
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
  [s/i/m/l/k/n/b] 
11、我们输入s
Maintainer name : zsx
Email-Address : sunsea1026@gmail.com 
Date : Sat, 18 Dec 2010 23:06:25 +0800
Package Name : hello
Version : 1.0
License : blank
Using dpatch : no
Type of Package : Single
Hit <enter> to confirm: 
12、输入回车,确认
Skipping creating ../hello_1.0.orig.tar.gz because it already exists
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the hello Makefiles install into $DESTDIR and not in / .
13、准备工作完成
14、开始打包
dpkg-buildpackage
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): 
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions
dpkg-buildpackage: 源码包 hello
dpkg-buildpackage: 源码版本 1.0-1
dpkg-buildpackage: 源码修改者 zsx <sunsea1026@gmail.com>
dpkg-buildpackage: 主机架构 i386
 dpkg-source --before-build hello-1.0
 fakeroot debian/rules clean
dh clean 
   dh_testdir
   dh_auto_clean
make[1]: 正在进入目录 `/home/zsx/deb/hello-1.0'
rm -f *.o hello
make[1]:正在离开目录 `/home/zsx/deb/hello-1.0'
   dh_clean
 dpkg-source -b hello-1.0
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building hello using existing ./hello_1.0.orig.tar.gz
dpkg-source: info: building hello in hello_1.0-1.debian.tar.gz
dpkg-source: info: building hello in hello_1.0-1.dsc
 debian/rules build
dh build 
   dh_testdir
   dh_auto_configure
   dh_auto_build
make[1]: 正在进入目录 `/home/zsx/deb/hello-1.0'
gcc -g -g -O2   -c -o hello.o hello.c
gcc -g -o hello hello.o
make[1]:正在离开目录 `/home/zsx/deb/hello-1.0'
   dh_auto_test
 fakeroot debian/rules binary
dh binary 
   dh_testroot
   dh_prep
   dh_installdirs
   dh_auto_install
   dh_install
   dh_installdocs
   dh_installchangelogs
   dh_installexamples
   dh_installman
   dh_installcatalogs
   dh_installcron
   dh_installdebconf
   dh_installemacsen
   dh_installifupdown
   dh_installinfo
   dh_pysupport
   dh_installinit
   dh_installmenu
   dh_installmime
   dh_installmodules
   dh_installlogcheck
   dh_installlogrotate
   dh_installpam
   dh_installppp
   dh_installudev
   dh_installwm
   dh_installxfonts
   dh_bugfiles
   dh_lintian
   dh_gconf
   dh_icons
   dh_perl
   dh_usrlocal
   dh_link
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
   dh_installdeb
   dh_gencontrol
dpkg-gencontrol: 警告: Depends field of package hello: 未知的替换变量 ${shlibs:Depends}
   dh_md5sums
   dh_builddeb
dpkg-deb:正在新建软件包“hello”,包文件为“../hello_1.0-1_i386.deb”。
 dpkg-genchanges  >../hello_1.0-1_i386.changes
dpkg-genchanges: 上传数据中包含完整的原始代码
 dpkg-source --after-build hello-1.0
dpkg-buildpackage: 完整上载(包含原始的代码)
15、打包成功,切回上级目录就可看到我们的helloworld的deb包
cd ..
ls后就会看到 hello_1.0-1_i386.deb
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作Ubuntudeb,需要以下步骤: 1. 准备工作:确保安装了必要的软件括dpkg、debhelper、build-essential等。 2. 创建一个工程目录,并在其中进行工作。例如,可以在home目录下创建一个名为"myproject"的目录。 3. 将项目的文件和文件夹复制到"myproject"目录中。这些文件应该括你想要在deb中安装的应用程序源代码、库文件、配置文件等。 4. 在"myproject"目录中创建一个名为"debian"的子目录。这个目录将含控制文件和规则文件。 5. 在"debian"目录中,创建一个名为"control"的文本文件,用于描述软件的基本信息,如软件的名称、版本、作者、依赖项等。可以使用文本编辑器打开该文件进行编辑。 6. 创建一个名为"rules"的文本文件,用于描述软件的构建规则。该文件告诉构建系统如何编译和构建软件。同样,可以使用文本编辑器进行编辑。 7. 编辑完"control"和"rules"文件后,可以使用dpkg-buildpackage命令构建deb。在"myproject"目录中打开终端,运行命令"dpkg-buildpackage -us -uc"。 8. 构建过程可能需要一些时间,运行完命令后,deb将生成在"myproject"目录中的上层目录中。 9. 现在,你可以使用生成的deb进行安装和分发了。 以上是制作Ubuntudeb的基本步骤。具体的操作和配置可能根据项目的需求而有所不同,但这个过程为你提供了一个基本的框架来创建和构建deb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值