对一个deb包的解压改动又一次打包全过程方法
Posted cynchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对一个deb包的解压改动又一次打包全过程方法相关的知识,希望对你有一定的参考价值。
/*********************************************************************
* Author : Samson
* Date : 07/03/2014
* Test platform:
* 3.11.0-12-generic #19-Ubuntu
* GNU bash, version 4.2.45
* *******************************************************************/
Reference:
http://www.debian.org/doc/manuals/maint-guide/build.zh-cn.html
出于多种原因,有的时候须要直接对deb包中的各种文件内容进行改动,比如:在没有源码的情况下的改动,还有…… %_~
那么就有三个问题须要解决:
0、怎样将deb包文件进行解包呢?
1、改动要改动的文件?
2、对改动后的内容进行生成deb包?
以openssh-client的某个版本号的deb包为例:
解决方法:
-0、准备工作:
mkdir extract
mkdir extract/DEBIAN
mkdir build
0、解包命令为:
#解压出包中的文件到extract文件夹下
dpkg -X ../openssh-client_6.1p1_i386.deb extract/
#解压出包的控制信息extract/DEBIAN/下:
dpkg -e ../openssh-client_6.1p1_i386.deb extract/DEBIAN/
1、改动文件(此处以改动ssh连接时禁止以root身份进行远程登录,原来是可以以root登录的):
sed -i ‘s/PermitRootLogin yes/PermitRootLogin no/g‘ extract/etc/ssh/sshd_config
2、对改动后的内容又一次进行打包生成deb包
dpkg-deb -b extract/ build/
[email protected]:~$ ll build/
总用量 1016
-rw-r--r-- 1 ufo ufo 1020014 7月 3 20:20 openssh-client_6.1p1_i386.deb
验证方法为:再次解开又一次打包的deb文件,查看在etc/ssh/sshd_config文件是否已经被改动;
done :_(
以上是关于对一个deb包的解压改动又一次打包全过程方法的主要内容,如果未能解决你的问题,请参考以下文章
Android对apk源代码的改动--反编译+源代码改动+又一次打包+签名附HelloWorld的改动实例
maven自己主动编译,解决你每次代码改动须要又一次编译的繁琐