从源码开始(Hello World) 制作deb包

转载 2015年11月19日 21:07:00

http://www.douban.com/note/369020689/

1. create 一个目录 如下
mkdir hello

2. c 源码如下
root@evan-pc:~/deb# cat hello.c
#include <stdio.h>
int main(int argc, char* argv[])
{
     printf("Hello world!\n");
     return 0;
}
root@evan-pc:~/deb# cat Makefile
OBJS=hello.o
CC=gcc -g
all:$(OBJS)
        $(CC) -o hello $(OBJS)
clean:
        rm -f *.o hello
.PHONY:all clean

3. 我们make一下,测试程序编译是否有问题,然后在./hello检查程序是否正确执行.如果没问题进行下一步,如果有问题我们检查程序代码
root@evan-pc:~/deb# make
gcc -g -c -o hello.o hello.c
gcc -g -o hello hello.o

4、我们清理下刚才编译程序的垃圾,make clean一下
make clean
5、输入命令,切回上级目录
cd ..
6、 改名:因为文件名必须包含文件名还有版本号
mv hello hello-1.0
说明:文件名后必须用-,不能用_
tar zcvf hello_1.0.tar.gz hello-1.0
cd hello-1.0
root@evan-pc:~/hello-1.0# dh_make -e evan886@gmail.com -f ../hello_1.0.tar.gz

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
 [s/i/m/l/k/n] s

Maintainer name : root
Email-Address : evan886@gmail.com
Date : Thu, 10 Jul 2014 16:25:54 +0800
Package Name : hello
Version : 1.0
License : blank
Type of Package : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the hello Makefiles install into $DESTDIR and not in / .
#tar zcvf hello_1.0.orig.tar.gz hello-1.0
说明:压缩包的名字必须是包含文件名及版本号

7、开始打包
dpkg-buildpackage



root@evan-pc:~/hello-1.0# dpkg-buildpackage
dpkg-buildpackage: 源码包 hello
dpkg-buildpackage: 源码版本 1.0-1
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: 源码修改者 root <evan886@gmail.com>
dpkg-buildpackage: 主机架构 amd64
 dpkg-source --before-build hello-1.0
 debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
make[1]: 正在进入目录 `/root/hello-1.0'
rm -f *.o hello
make[1]:正在离开目录 `/root/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: 警告: 忽略对文件 hello.o 的删除指令
dpkg-source: 警告: 忽略对文件 hello 的删除指令
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]: 正在进入目录 `/root/hello-1.0'
gcc -g -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -c -o hello.o hello.c
gcc -g -o hello hello.o
make[1]:正在离开目录 `/root/hello-1.0'
   dh_auto_test
 debian/rules binary
dh binary
   dh_testroot
   dh_prep
   dh_auto_install
   dh_installdocs
   dh_installchangelogs
   dh_perl
   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}
dpkg-gencontrol: 警告: File::FcntlLock not available; using flock which is not NFS-safe
   dh_md5sums
   dh_builddeb
dpkg-deb:正在新建软件包 hello,包文件为 ../hello_1.0-1_amd64.deb。
 dpkg-genchanges >../hello_1.0-1_amd64.changes
dpkg-genchanges: 上传数据中包含完整的原始代码
 dpkg-source --after-build hello-1.0
dpkg-buildpackage: 完整上载(包含原始的代码)
root@evan-pc:~/hello-1.0#

打包成功,看到上级目录有 deb包就成功了( 我这里为hello_1.0-1_amd64.deb)
root@evan-pc:~/hello-1.0# ls ../hello
hello-1.0/ hello_1.0-1.debian.tar.gz hello_1.0.tar.gz
hello_1.0-1_amd64.changes hello_1.0-1.dsc
hello_1.0-1_amd64.deb hello_1.0.orig.tar.gz



问题 解决
root@evan-pc:~/deb# make
Makefile:4: *** 遗漏分隔符 。 停止。
root@evan-pc:~/deb# vim Makefile
root@evan-pc:~/deb# make
Makefile:6: *** 遗漏分隔符 。 停止。
root@evan-pc:~/deb# vim Makefile

用tab就搞定了

from http://www.linuxchina.net/?p=2074

终端彩色
cp /etc/skel/.bashrc ~/ && . /root/.bashrc

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

从源码包构建.deb文件的备忘

源码包是什么 我们知道ubuntu有别于gentoo之一的特点就是,gentoo是基于源码包安装的系统,而ubuntu是基于二进制的。我们执行一个apt-get install foo安装包命令时,...

debian源码制作*.deb与上传仓库安装

首先创建一个hello-1.0的目录,目录名必须是- 在hello-1.0目录下,创建一个hello.c文件,并创建一个Makefile文件,使你使用make时,可以生成目标文件。 mkdir...

Ubuntu下制作deb包的方法详解

CSDN GitHub Ubuntu下deb包的方法详解 AderXCoding/system/tools/build_deb本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际...
  • gatieme
  • gatieme
  • 2016年10月16日 12:55
  • 5522

转载_Deb包的制作

deb 格式是Debian 系专用安装包格式,配合APT 软件管理系统,成为了当前在linux 软件中非常流行的一种安装包。Debian和ubuntu软件安装用的都是deb包。 但是很多人制...

Ubuntu16.04 怎样下载deb的源码包

转自:http://blog.csdn.net/yuanlu837/article/details/7750492 如何获取ubuntu源码包里面的源码? 1、在获取源码包之前,确保在软件源配...

hello world 源码

  • 2012年11月26日 15:10
  • 793KB
  • 下载

hello world rpm包制作的例子

  • 2009年02月03日 09:23
  • 993B
  • 下载

React Native Android入门实战及深入源码分析系列(1)——Hello world

因为现在找不到地方记录csdn账号,所以这里记一下:zeng890816@yahoo.cn 从今天起,我要分析React Native for Android的源码。 本系列主要是从使用和源码分析的角...

Spring 4 MVC hello world 教程-完全基于XML(带项目源码)【超赞】

原文地址:http://websystique.com/springmvc/spring-4-mvc-helloworld-tutorial-full-example/ 【本系列其他教程正在陆续翻译中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从源码开始(Hello World) 制作deb包
举报原因:
原因补充:

(最多只允许输入30个字)