【问题标题】:Programmatically extracting .deb packages以编程方式提取 .deb 包
【发布时间】:2011-04-14 14:10:24
【问题描述】:

我有 .deb 包,我需要以编程方式提取其内容。但是,我无法找到有关该主题的任何资源,例如 .deb 包格式规范,这将使我对如何解决问题有更多的了解,而无需对整个事情进行逆向工程。

有什么想法吗?

【问题讨论】:

    标签: c++ c linux packages deb


    【解决方案1】:

    其实很简单。

    ar xv <name of deb file>
    

    要从 C 中调用,您可以使用 system:

    system("ar xv <name of deb file>");
    

    【讨论】:

      【解决方案2】:

      如果你没有找到这个库(我也没有),并且不能求助于运行系统命令,你总是可以实现自己的来读取 ar 档案。 ar file format 并不复杂。

      【讨论】:

      • 我在上面链接的 wiki 页面提供了足够的详细信息来编写您自己的库来提取文件。
      【解决方案3】:

      .deb 包格式的设计目标之一是使用现有工具和/或库轻松提取。顶层结构确实是一个ar 文件,但在里面,你会发现另一层结构,传统上是一对tar 文件。有关更多文档,请参见例如http://en.wikipedia.org/wiki/Deb_(file_format)

      如果您找不到现有的库,您可能可以使用 GNU ar 源来构建您自己的库。我希望有用于 ar / tar / cpio / 你有什么的通用库。

      【讨论】:

        【解决方案4】:

        我刚刚看到libarchive 支持ar 格式,还有很多其他格式。

        【讨论】:

          猜你喜欢
          • 2011-06-27
          • 2017-06-09
          • 2011-03-26
          • 1970-01-01
          • 2010-12-26
          • 2014-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多