【问题标题】:extracting and creating ipk files提取和创建 ipk 文件
【发布时间】:2020-03-09 04:22:50
【问题描述】:

ipk 包是 opkg 使用的安装包。

我正在尝试提取其中一个的内容并创建我自己的 ipk。

我听说我应该能够解压它们,但事实并非如此。

我试过了:

tar -zxvf mypack.ipk

我得到:

zip: stdin: not in gzip format

我也试过了:

tar -xvf mypack.ipk

我得到:

tar: This does not look like a tar archive

我发现互联网上关于 ipk 的大部分信息都是不准确的。

我的 ipk 是由 bitbake 生成的。我在使用 bitbake 时遇到了困难,想避免使用它。

关于如何提取和创建 ipk 文件的任何想法?拥有一个带有单个包的简单模板会很有用。

【问题讨论】:

    标签: packages


    【解决方案1】:

    我想通了。

    你可以用ar x命令解压主包,然后用tar -zxf命令解压control.tar.gz。

    【讨论】:

      【解决方案2】:

      您需要创建一个control 文件,然后使用tarar 进行一些归档。就我而言,我只是分发 python 脚本,所以没有架构依赖。您应该将controlMakefile 签入版本控制,并删除所有其他中间文件。

      这里是control的内容

      包:我的东西-python 版本:1.0 描述:MyCompany 的 python 脚本 部分:附加功能 优先级:可选 维护者:约翰 许可证:已关闭 架构:全部 OE:我的东西-蟒蛇 主页:未知 取决于: python python-distutils python-pyserial python-curses python-mmap python-ctypes 资料来源:不适用

      这是我的Makefile,它与我的所有 python 脚本位于同一目录中。

      全部:my-thing-python.ipk 我的东西-python.ipk: rm -rf ipk mkdir -p ipk/opt/my-thing-python cp *.py ipk/opt/my-thing-python tar czvf control.tar.gz 控制 cd ipk; tar czvf ../data.tar.gz .;光盘.. echo 2.0 > debian-binary ar r my-thing-python.ipk control.tar.gz data.tar.gz debian-binary 清洁:力 rm -rf ipk rm -f control.tar.gz rm -f 数据.tar.gz rm -f my-thing-python.ipk 力量:

      【讨论】:

      • 谢谢马克,正是我想要的:)
      • @MarkLakata,安装包后,报错Collected errors: * pkg_init_from_file: Malformed package file my-thing-python.ipk.。看到这个question
      • OE: 代表什么?
      • @kmort - 关于OE: 的好问题。作为逆向工程的结果,我在示例中展示了它。我不知道这意味着什么。可能不是标准的。
      【解决方案3】:

      我已经测试过“ar x package-name.ipk”命令,但没有帮助

      我发现下面的命令效果很好

      tar zxpvf package-name.ipk

      这会提取三个文件:

      debian-二进制

      data.tar.gz

      control.tar.gz

      使用相同的命令打开 data.tar.gz 和 control.tar.gz 文件

      有关详细信息,请参阅 https://cognito.me.uk/computers/manual-extractioninstallation-of-ipk-packages-on-gargoyleopenwrt/

      【讨论】:

        【解决方案4】:

        使用以下命令进行提取:

        1. 运行命令解压文件:

            ar -xv   <.ipk file>
          
        2. 运行命令解压control.tar.gz文件:

            tar -zxvf control.tar.gz
          
        3. data.tar.gz : 通过运行命令解压缩:

               tar –zxvf data.tar.gz
          

        【讨论】:

          【解决方案5】:

          如果您想要 ipk 中的文件列表,您可以执行以下操作:

          #!/bin/sh
          for f
          do
             tar -x -z -f $f ./data.tar.gz -O | tar tvzf -
          done
          

          -O 提取到标准输出。 ipk 文件曾经是 AR(如 DPKG),但现在是 tgz。 我觉得一些 dpkg 实用程序应该可以处理 ipkg 文件,但我没有找到合适的。

          【讨论】:

            猜你喜欢
            • 2010-10-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-01-11
            • 2011-01-12
            • 2016-08-11
            • 2018-08-13
            相关资源
            最近更新 更多