出于多种原因,有的时候需要直接对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