1. 原理

1) deb包通常包含两部分:控制信息(DEBIAN目录)、安装内容(模拟"/"目录)

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

i. 释放安装内容到dirname目录中

$ dpkg-X xxx.deb dirname

ii. 释放控制信息到当前目录下的DEBIAN子目录中

$ dpkg-e xxx.deb

2. 准备

1) 安装相关工具

$ sudo apt-getinstall dh-make checkinstall

2) 下载示例软件源码包

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

3. 方法一: 使用checkinstall方法创建deb包

checkinstall不仅可以生成deb包,还可以生成rpm包,使用简单。

$ tar xvjf fceu-0.98.12.src.tar.bz2# 解包

$ cd fceu;./configure;make# 编译

$ checkinstall-D-install=no--pkgversion=0.98--pkgname=fceuxy 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-f../fceu-0.98.12.src.tar.bz2# 生成制作deb包所需的默认信息

此时当前目录下生成了debian目录,此时通常修改两个文件:

修改debian/control文件,配置你的信息,具体字段见参考资料部分

修改debian/rules脚本,它决定编译参数(也可以不改)$ dpkg-buildpackage-rfakeroot

此时可以看到,上层目录中已建立了deb包。

修改已有deb包

自己创建deb所需目录结构(控制信息和安装内容),然后打包,一般使用这种方法来修改已有的deb包,而不是新建deb包,命令如下:

$ mkdir-p test

$ dpkg-X xxx.deb test# 解包安装内容

$ cd test

$ dpkg-e../xxx.deb# 解包控制信息

修改DEBIAN目录下的内容,然后重新打包:

$ cd../

$ dpkg-b test xxx_new.deb# 重新打包

关于deb包的常用命令

1. 查看deb包含有哪些文件

$ dpkg-c xxx.deb# 安装前根据deb文件查看

$ dpkg-L debname# 安装后根据包名查看

2. 安装deb包

$ dpkg-i xxx.deb

3. 查看某个文件属于哪个deb包

$ dpkg-S filefullpath

4. 卸载deb包

$ dpkg-r debname

5. 完全卸载deb包(包含配置文件)

$ dpkg-P debname

6. 下载源码包

$ apt-getsource packagename

7. 根据软件包名模糊检索

$ dpkg-l|grep xxx#在已安装的软件包列表中搜索

$ apt-cache search xxx#在源中的所有软件包列表中搜索

参考资料

debian/control文件中信息说明Package 包名

Version 版本

Architecture 目标机架构(i386,arm,amd64等)

Maintainer 维护者

Depends 依赖软件包

Description 描述

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

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

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

  2. 读取xml文件转成ListT对象的两种方法(附源码)

    读取xml文件转成List<T>对象的两种方法(附源码) 读取xml文件,是项目中经常要用到的,所以就总结一下,最近项目中用到的读取xml文件并且转成List<T>对象的方法, ...

  3. 利用多线程爬虫搭建代理ip池的两种方法(含源码)

    搭建爬虫代理ip池的两种方法(含源码) 前言 一.ip池是什么? 二.爬取原理 三.使用步骤 方法一 爬取网站https://www.kuaidaili.com/ 验证 存取到mysql 方法二 爬取 ...

  4. (论文加源码)基于DEAP的脑电情绪识别(CNN,RNN和两种不同的注意力机制)

    论文及源码见个人主页:https://download.csdn.net/download/qq_45874683/85063985 (论文加源码)基于DEAP的脑电情绪识别(CNN,RNN和两种不同 ...

  5. jquery生成二维码怎么添加图片(两种方法)

    github项目地址: https://github.com/fengliting/erweima 注意:这里实现的是第一个方法 自动生成二维码里面添加图片,有两种方法,一种是使用jquery原生的二 ...

  6. Java生成二维码的两种方法

    本文介绍Java生成二维码的两种方法,这两种方法都依赖于google提供的二维码依赖包. 一种是自己写工具类,代码可以网上抄. 另一种是使用hutool第三方工具类的依赖包,不用自己抄代码. 一.自定 ...

  7. java构造和解析json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  8. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  9. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

最新文章

  1. PyTorch 1.8来了!正式支持AMD GPU,炼丹不必NVIDIA
  2. 如何为 Flask Web 应用配置 Nginx
  3. Tomcat类加载器机制
  4. 超哥笔记--linux准备知识(1)
  5. POJ-2480 Longge's problem 积性函数
  6. 有个产品经理女朋友是一种什么样的体验?
  7. 小程序确定取消弹窗_微信小程序定制开发价格确定条件?
  8. python中的array函数作用_Python中的Array | 数组2(简介和功能)
  9. 继北大“鸿hao之志”后,清华出现“热列欢迎”…
  10. java rsa 验_Java使用RSA加密解密签名及校验
  11. hdu 6070 Dirt Ratio —— 二分+线段树
  12. c语言程序设计韦良芬答案,论高职院校《C语言程序设计》的教学改革
  13. 2022济南大学acm新生赛题解
  14. 福布斯30岁以下30强名单新出炉!区块链从业者占比13%
  15. ISO26262-6 2018第七章: Software architectural design
  16. 计算机基础数据表示实验,2018大学计算机基础上机实验报告
  17. 使用Spark分析拉勾网招聘信息(三): BMR 入门
  18. 科普系列—低速容错CAN的容错机制介绍
  19. Unity用Mesh画多边形、圆形
  20. 关于iOS录音后播放声音小的问题

热门文章

  1. linux 使用sendmail发送邮件
  2. RabbitMQ 学习
  3. 继承实现的原理、子类中调用父类的方法、封装
  4. lucene构建同义词分词器
  5. 012-python基础-数据运算
  6. centos防火墙端口配置
  7. IOS时间传递机制简记
  8. 利益驱动 需求驱动 技术驱动 谁才是真正的驱动力?
  9. python数据结构与算法:队列与双端队列
  10. web架构设计经验分享