一、使用deb包

1. 查看deb包含有哪些文件(不安装)
$ dpkg -c xxx.deb // 安装前根据deb文件查看
$ dpkg -L debname // 安装后根据包名查看

2. 安装deb包
$ dpkg -i xxx.deb
注意,如果提示错误,可以加参数—force-all强制安装,但不推荐这样做

3. 查看某个文件属于哪个deb包
$ dpkg -S filepath

4. 移除deb包
$ dpkg -r debname

二、制作deb包

1. 原理
1) deb包通常包含两部分:控制信息(DEBIAN目录)、安装内容(模拟"/"目录,root除了根,在linux下还有/root目录的意思,所以修改下!)

2) 通过解开已有的deb包看其中内容

i. 释放安装内容到dirname目录中
$ dpkg -X xxx.deb dirname

ii. 释放控制信息到当前目录下的DEBIAN子目录中
$ dpkg -e xxx.deb

2. 准备
1) 实验平台
ubuntu 8.04

2) 安装相关工具
$ apt-get install dh-make checkinstall

3) 下载示例软件包
以游戏模拟器为例(也可使用其它源码包),制作它的deb包,下载地址:

http://prdownloads.sourceforge.net/fceu ... rc.tar.bz2

4) 注意:对于自己写的代码制做deb包,建议用autoconf, automake生成编译脚本,例程见
http://xy0811.spaces.live.com/default.a ... A6B17!1002

3. 方法一: 使用checkinstall方法创建deb包
checkinstall不仅可以生成deb包,还可以生成rpm包,使用简单,但是不灵活,功能粗糙,只做介绍,不推荐使用

$ tar xvjf fceu-0.98.12.src.tar.bz2 // 解包
$ cd fceu;./configure;make // 编译
$ checkinstall -D -y -install=no --pkgversion-0.98 --pkgname=fceuxy --pkgcource=./ --showinstall=no -default make install // 制作deb包
此时当前目录下生成了deb包

4. 方法二: 使用dpkg方法创建deb包
dpkg是最基本的制作deb包的方法,推荐使用
$ tar xvjf fceu-0.98.12.src.tar.bz2 // 解包
$ mv fceu fceu-0.98 // 改目录名为 包名-版本号
$ cd fceu-0.98
$ dh_make -s -e xieyan0811@sina.com.cn -f ../fceu-0.98.12.src.tar.bz2 // 生成制作deb包所需的默认信息
此时当前目录下生成了debian目录,此时通常修改两个文件:
  修改debian/control文件,配置你的信息,具体字段见参考部分
  修改debian/rules脚本,它决定编译参数(也可以不改)
$ dpkg-buildpackage -rfakeroot
此时可以看到,上层目录中已建立了deb包

5. 方法三: 修改已有deb包
自己创建deb所需目录结构(控制信息和安装内容),然后打包,一般使用这种方法来修改已有的deb包,而不是新建deb包,命令如下:
$ dpkg -X xxx.deb test // 解包安装内容
$ cd test
$ dpkg -e ../xxx.deb // 解包控制信息
修改其中内容
$ cd ../
$ dpkg -b dirname xxx_new.deb // 重新打包

三、参考

debian/control文件中信息说明
1) Package 包名
2) Version 版本
3) Architecture 目标机架构(i386, arm等)
4) Maintainer 维护者
5) Depends 依赖软件包
6) Description 描述

checkinstall详细例程
https://www.ibm.com/developerworks/cn/linux/l-cn-checkinstall/index.html

官方的debian制作手册(比较长)
https://www.debian.org/doc/manuals/maint-guide/index.zh-cn.html

linux 制作deb包的三种方法相关推荐

  1. linux下打包deb文件,制作deb包的三种方法

    制作deb包的三种方法 发布时间:2008-06-10 16:05:39来源:红联作者:Mhynan 我所知道的制作deb包有三种方法,一种是将现有的文件打包,安装该包就像将打包的文件释放到某个目录: ...

  2. fceux源码解析_fceux源码解析_从源代码制作deb包的两种方法以及修改已有deb包(转载)...

    1. 原理 1) deb包通常包含两部分:控制信息(DEBIAN目录).安装内容(模拟"/"目录) 2) 通过解开已有的deb包看其中内容 i. 释放安装内容到dirname目录中 ...

  3. fceux源码解析_从源代码制作deb包的两种方法以及修改已有deb包(转载)

    1. 原理 1) deb包通常包含两部分:控制信息(DEBIAN目录).安装内容(模拟"/"目录) 2) 通过解开已有的deb包看其中内容 i. 释放安装内容到dirname目录中 ...

  4. linux配置yum源的三种方法:

    linux配置yum源的三种方法: 1.配置网络yum源 2.通过上传镜像文件配置本地yum源 3.通过连接存储或本地镜像文件配置本地yum源(虚拟机) 配置各种yum源的时候,需要提前知道自己的li ...

  5. Linux清空文件内容的三种方法

    Linux清空文件内容的三种方法 测试文件:a.txt 第一种: $> a.txt 第二种: $echo "" > a.txt 第三种: $cat /dev/null ...

  6. 菱角图形输出c语言,CDR将多边形/图形的角度变圆?CDR制作圆角图形的三种方法

    在CorelDRAW中如何将多边形/图形的角度变圆.可能在以早的版本中,都没有直接实现圆角多边形的功能,直到后来较高版本中提及的圆角/扇形角/倒棱角功能的出现,才很好的解决了这个问题,其实方法也不止是 ...

  7. 制作自己的Puppy Linux Live-CD发行版的三种方法

    经过一段时间的使用以后,我们每个人电脑里的Puppy Linux都是独一无二的,我们可以通过简单的方法将自己电脑上的Puppy制作成iso或Live-CD,成为自己玩的"Only You&q ...

  8. OS / Linux / 制作 deb 包

    一.deb 简介 deb 是 debian 系列系统下的安装包,基于 tar 包,因此本身会记录文件的权限(读 / 写 / 可执行)以及所有者 / 用户组. 由于 Unix 类系统对权限.所有者.组的 ...

  9. linux存储安装教程,在Linux下安装Pngquant的三种方法:从存储库,源代码及使用Cargo安装...

    本文介绍在Linux操作系统下安装Pngquant的三种方法,即从存储库.从源代码及使用Cargo安装,可用在Arch Linux.Debian.Ubuntu.Linux Mint.Fedora.op ...

最新文章

  1. appium-java长按学习
  2. 无人再谈CV:计算机视觉公司的困境
  3. UA MATH523A 实分析3 积分理论例题 判断函数可积性的一个题目
  4. if match header test - 428 Precondition required
  5. python打字案例_Python 小案例 打字练习
  6. 计算机c语言二级试题及答案,计算机c语言二级考试试题及其答案.doc
  7. 转载 Socket与TCP/IP的关系 转(非常好的一篇文章!)
  8. string类型的数字字符串直接转换成int型方法
  9. Observer(观察者)模式
  10. HUSTOJ(2019)在线判题系统的搭建
  11. 第二十三章:触发器和行为(九)
  12. 测试人员需要自己搭建测试环境吗?(附步骤)
  13. win8局域网访问其他计算机名,win8.1局域网找不到其他电脑怎么办
  14. 在Windows下批量修改文件后缀(ren命令-rename)
  15. 为什么很多人吐槽谭浩强的C语言程序设计?
  16. Matlab 结构体(struct)使用
  17. Redis哨兵模式(一主二从三哨兵)
  18. 【转码方式】-Base64
  19. SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读
  20. Kotlin - DSL

热门文章

  1. Openstack_通用模块_Oslo_vmware 创建/删除 vCenter 虚拟机
  2. 让您的开机时间和打开网页速度如飞一样
  3. Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...
  4. SQLServer · 最佳实践 · RDS for SQLServer 2012权限限制提升与改善
  5. ubuntu下装Source Insight
  6. 说一下fopen和open
  7. 死磕 java集合之TreeMap源码分析(一)——红黑树全解析
  8. 【React、Vue 、 Angular 共分天下,2018首将会是谁?】
  9. weexapp 开发流程(一)开发环境配置
  10. @Query注解的用法(Spring Data JPA)