/*********************************************************************
* 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/
ufo@ufo:~$ 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 :_(