如何对一个deb包解压、修改、重新打包 全过程

· · 1290 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

由于多种原因,我们有的时候需要对deb包中的文件内容进行修改,例如:在没有源代码的情况下的修改,还有简化配置过程,实现标准化配置等。


那么就有三个问题需要解决:

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

以 openssh-client 的某个版本deb包为例,解决方法如下:
准备工作:
mkdir extract
mkdir extract/DEBIAN
mkdir build

1. 解包命令为:

#解压出包中的文件到extract目录下
dpkg -X ../openssh-client_6.1p1_i386.deb extract/

#解压出包的控制信息extract/DEBIAN/下:
dpkg -e ../openssh-client_6.1p1_i386.deb extract/DEBIAN/

2. 修改文件(此处以修改ssh连接时禁止以root身份进行远程登录,原来是能够以root登录的):
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' extract/etc/ssh/sshd_config

3. 对修改后的内容重新进行打包生成deb包
dpkg-deb -b extract/ build/
ufo@ufo:~$ ll build/
总用量 1016
-rw-r--r-- 1 deb deb 1020014  2月  3 20:20 openssh-client_6.1p1_i386.deb

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

关注本站微信公众号(和以上内容无关)InfraPub ,扫码关注:InfraPub

1290 次点击  
加入收藏 微博
1 回复  |  直到 2021-02-17 09:02:32
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传