我该如何修复有问题的商业 deb 包?

我该如何修复有问题的商业 deb 包?

Citrix ICA Client (Receiver) 13.deb软件包存在一些已知问题。如何更改软件包?我需要删除一些依赖项并更改安装脚本。

参考:如何在 Debian 64 位 Linux 上安装 Citrix ICA 客户端(接收器)13?

答案1

我自己回答这个问题是因为其他人可能会发现这些信息很有用。这个问答是受另一个问题的启发:如何在 Debian 64 位 Linux 上安装 Citrix ICA 客户端(接收器)13?

  1. 创建一个临时目录并将.deb文件复制到其中。
  2. 提取.deb文件:ar vx archive.deb
  3. 将出现三个文件:
    • debian-binary: 请勿触摸
    • control.tar.gz:安装和卸载的配置和脚本
      • 根据所使用的压缩格式,此文件可能具有不同的扩展名。
    • data.tar.gz:要安装的文件
      • 根据所使用的压缩格式,此文件可能具有不同的扩展名。

这两个*.tar.gz文件的扩展名可能不同,具体取决于使用的压缩格式。该.deb格式支持几种不同的扩展名。此外,这两个*.tar.gz文件都是焦油炸弹,这样所有文件都会分散到同一路径。最好创建一个临时目录,然后复制,再提取。

文件control.tar.gz包含两个适合黑客攻击的文件:

  • control:包含软件包依赖列表。您可以添加/删除依赖项。
  • postinst:包含安装后脚本。您可以添加/删除命令。

将文件重新创建*.tar.gz为:tar -czvf control.tar.gz *或 ( data.tar.gz)

最后,创建一个新的档案。这里的顺序非常重要:ar rv my_new_package.deb debian-binary control.tar.gz data.tar.gz

您可以使用以下命令尝试新的包:

  • 卸载现有包:apt-get remove $package_name
    • ...$package_name你的包裹的名字在哪里,例如,icaclient
  • 安装新包:dpkg --install my_new_package.deb

参考:http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/

相关内容