10月16, 2015

对一个deb包的解压、修改、重新打包全过程方法

对一个deb包的解压、修改、重新打包全过程方法

Reference: http://www.debian.org/doc/manuals/maint-guide/build.zh-cn.html 出于多种原因,有的时候需要直接对deb包中的各种文件内容进行修改

例如:在没有源代码的情况下的修改,还有…… %_~ 那么就有三个问题需要解决:

如何将deb包文件进行解包呢?
修改要修改的文件?
对修改后的内容进行生成deb包?

以openssh-client的某个版本的deb包为例: 解决方法: 准备工作:

mkdir extract
mkdir extract/DEBIAN
mkdir build

解包命令为:

#解压出包中的文件到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/
$ ll build/
总用量 1016
-rw-r--r-- 1 jenly jenly 1020014  73 20:20 openssh-client_6.1p1_i386.deb

验证方法为:再次解开重新打包的deb文件,查看在etc/ssh/sshd_config文件是否已经被修改;

本文链接:https://www.jenly.cn/post/009.html

-- EOF --

Comments

请在后台配置评论类型和相关的值。