linux 制作deb包的三种方法
一、使用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包的三种方法相关推荐
- linux下打包deb文件,制作deb包的三种方法
制作deb包的三种方法 发布时间:2008-06-10 16:05:39来源:红联作者:Mhynan 我所知道的制作deb包有三种方法,一种是将现有的文件打包,安装该包就像将打包的文件释放到某个目录: ...
- fceux源码解析_fceux源码解析_从源代码制作deb包的两种方法以及修改已有deb包(转载)...
1. 原理 1) deb包通常包含两部分:控制信息(DEBIAN目录).安装内容(模拟"/"目录) 2) 通过解开已有的deb包看其中内容 i. 释放安装内容到dirname目录中 ...
- fceux源码解析_从源代码制作deb包的两种方法以及修改已有deb包(转载)
1. 原理 1) deb包通常包含两部分:控制信息(DEBIAN目录).安装内容(模拟"/"目录) 2) 通过解开已有的deb包看其中内容 i. 释放安装内容到dirname目录中 ...
- linux配置yum源的三种方法:
linux配置yum源的三种方法: 1.配置网络yum源 2.通过上传镜像文件配置本地yum源 3.通过连接存储或本地镜像文件配置本地yum源(虚拟机) 配置各种yum源的时候,需要提前知道自己的li ...
- Linux清空文件内容的三种方法
Linux清空文件内容的三种方法 测试文件:a.txt 第一种: $> a.txt 第二种: $echo "" > a.txt 第三种: $cat /dev/null ...
- 菱角图形输出c语言,CDR将多边形/图形的角度变圆?CDR制作圆角图形的三种方法
在CorelDRAW中如何将多边形/图形的角度变圆.可能在以早的版本中,都没有直接实现圆角多边形的功能,直到后来较高版本中提及的圆角/扇形角/倒棱角功能的出现,才很好的解决了这个问题,其实方法也不止是 ...
- 制作自己的Puppy Linux Live-CD发行版的三种方法
经过一段时间的使用以后,我们每个人电脑里的Puppy Linux都是独一无二的,我们可以通过简单的方法将自己电脑上的Puppy制作成iso或Live-CD,成为自己玩的"Only You&q ...
- OS / Linux / 制作 deb 包
一.deb 简介 deb 是 debian 系列系统下的安装包,基于 tar 包,因此本身会记录文件的权限(读 / 写 / 可执行)以及所有者 / 用户组. 由于 Unix 类系统对权限.所有者.组的 ...
- linux存储安装教程,在Linux下安装Pngquant的三种方法:从存储库,源代码及使用Cargo安装...
本文介绍在Linux操作系统下安装Pngquant的三种方法,即从存储库.从源代码及使用Cargo安装,可用在Arch Linux.Debian.Ubuntu.Linux Mint.Fedora.op ...
最新文章
- appium-java长按学习
- 无人再谈CV:计算机视觉公司的困境
- UA MATH523A 实分析3 积分理论例题 判断函数可积性的一个题目
- if match header test - 428 Precondition required
- python打字案例_Python 小案例 打字练习
- 计算机c语言二级试题及答案,计算机c语言二级考试试题及其答案.doc
- 转载 Socket与TCP/IP的关系 转(非常好的一篇文章!)
- string类型的数字字符串直接转换成int型方法
- Observer(观察者)模式
- HUSTOJ(2019)在线判题系统的搭建
- 第二十三章:触发器和行为(九)
- 测试人员需要自己搭建测试环境吗?(附步骤)
- win8局域网访问其他计算机名,win8.1局域网找不到其他电脑怎么办
- 在Windows下批量修改文件后缀(ren命令-rename)
- 为什么很多人吐槽谭浩强的C语言程序设计?
- Matlab 结构体(struct)使用
- Redis哨兵模式(一主二从三哨兵)
- 【转码方式】-Base64
- SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读
- Kotlin - DSL
热门文章
- Openstack_通用模块_Oslo_vmware 创建/删除 vCenter 虚拟机
- 让您的开机时间和打开网页速度如飞一样
- Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...
- SQLServer · 最佳实践 · RDS for SQLServer 2012权限限制提升与改善
- ubuntu下装Source Insight
- 说一下fopen和open
- 死磕 java集合之TreeMap源码分析(一)——红黑树全解析
- 【React、Vue 、 Angular 共分天下,2018首将会是谁?】
- weexapp 开发流程(一)开发环境配置
- @Query注解的用法(Spring Data JPA)