deb包的解壓、修改、重新打包全過程方法

出于多種原因,有的時候需要直接對deb包中的各種文件內容進行修改,例如:在沒有源代碼的情況下的修改等。

那么就有三個問題需要解決:

  • 如何將deb包文件進行解包呢?
  • 修改要修改的文件?
  • 對修改后的內容進行生成deb包?

本文講解處理方法時,以以openssh-client的某個版本的deb包為例:openssh-client_6.1.deb。目的是增加一個功能特性:禁止以root身份進行遠程登錄。

創建目錄備用

如下所示,創建三個目錄,分別為extract,extract/DEBIAN,build:

mkdir extract
mkdir extract/DEBIAN
mkdir build

解壓data文件與控制信息

解壓出包中的文件到extract目錄下:

dpkg -X ../openssh-client_6.1.deb extract/

解壓出包的控制信息extract/DEBIAN/下:

dpkg -e ../openssh-client_6.1.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/

驗證方法為:再次解開重新打包的deb文件,查看在etc/ssh/sshd_config文件是否已經被修改。


所屬標簽

無標簽

25选5玩法中奖