11.25 从.deb中析取单个文件 https://scz.617.cn/unix/202604301211.txt A: 查看.deb中的具体文件列表 $ dpkg -c libssl1.1_1.1.1f-1ubuntu2_amd64.deb ... -rw-r--r-- root/root 2954080 2020-04-20 19:53 ./usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 -rw-r--r-- root/root 598104 2020-04-20 19:53 ./usr/lib/x86_64-linux-gnu/libssl.so.1.1 从.deb中析取单个文件 $ dpkg --fsys-tarfile libssl1.1_1.1.1f-1ubuntu2_amd64.deb | tar xO ./usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 > libcrypto.so.1.1 tar的参数O是字母欧,不是数字零。 解压整个.deb文件 $ dpkg -x libssl1.1_1.1.1f-1ubuntu2_amd64.deb foo 这将生成foo目录,其下保持.deb中的目录结构 $ ls -l foo/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 -rw-r--r-- 1 scz scz 2954080 Apr 20 2020 foo/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 上述命令只将dpkg视为入口,实际调用dpkg-deb,"man dpkg-deb"了解参数细节。 A: scz 用ar查看.deb文件 $ ar t libssl1.1_1.1.1f-1ubuntu2_amd64.deb debian-binary control.tar.xz data.tar.xz 从.deb中析取单个文件 $ ar x libssl1.1_1.1.1f-1ubuntu2_amd64.deb data.tar.xz 用tar析取最终文件 $ tar xfJO data.tar.xz ./usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 > libcrypto.so.1.1 若不用O参数进行输出转向,tar析取目标文件时,将保留目录结构 A: scz 用7-Zip打开.deb,第一层是data.tar,一路打开,即可析取指定文件。