出于多种原因,有的时候需要直接对deb包中的各种文件内容进行修改
主要有三个问题需要解决:
0、如何将deb包文件进行解包呢?
1、修改要修改的文件?
2、对修改后的内容进行生成deb包?
解包命令为
#解压出包中的文件到extract目录下
lin@lin-host:~/Desktop/100次重启工具$ ls LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt lin@lin-host:~/Desktop/100次重启工具$ dpkg -X loong-test-s2s3_1.0.0-2_all.deb extract/ ./ ./usr/ ./usr/bin/ ./usr/bin/BootReplace.sh ./usr/bin/BootTest.sh ./usr/bin/LongTestTools.sh ./usr/bin/RebootReplace.sh ./usr/bin/RebootTest.sh ./usr/bin/SleepTest.sh ./usr/bin/SuspendTest.sh lin@lin-host:~/Desktop/100次重启工具$ ls extract LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt
lin@lin-host:~/Desktop/100次重启工具$ tree extract/ extract/ └── usr └── bin ├── BootReplace.sh ├── BootTest.sh ├── LongTestTools.sh ├── RebootReplace.sh ├── RebootTest.sh ├── SleepTest.sh └── SuspendTest.sh
#解压出包的控制信息extract/DEBIAN/下:
lin@lin-host:~/Desktop/100次重启工具$ dpkg -e loong-test-s2s3_1.0.0-2_all.deb extract/DEBIAN/ lin@lin-host:~/Desktop/100次重启工具$ tree extract/ extract/ ├── DEBIAN │ ├── control │ └── md5sums └── usr └── bin ├── BootReplace.sh ├── BootTest.sh ├── LongTestTools.sh ├── RebootReplace.sh ├── RebootTest.sh ├── SleepTest.sh └── SuspendTest.sh 3 directories, 9 files
#修改文件
vi extract/usr/bin/BootTest.sh
对修改后的内容重新进行打包生成deb包
lin@lin-host:~/Desktop/100次重启工具$ dpkg-deb -b extract/ dpkg-deb:正在新建软件包 loong-test-s2s3,包文件为 extract.deb。 lin@lin-host:~/Desktop/100次重启工具$ ls extract extract.deb LongTestTools.sh readme.txt