30

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 文件的任何想法?拥有一个带有单个包的简单模板会很有用。

4

5 回答 5

36

我想到了。

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

于 2013-06-28T17:42:09.377 回答
20

您需要创建一个control文件,然后使用tar和进行一些归档ar。就我而言,我只是分发 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

力量:

于 2014-01-18T00:05:22.107 回答
19

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

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

tar zxpvf package-name.ipk

这会提取三个文件:

Debian-二进制

数据.tar.gz

控制.tar.gz

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

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

于 2017-06-27T07:38:14.207 回答
4

使用以下命令进行提取:

  1. 通过运行以下命令提取文件:

      ar -xv   <.ipk file>
    
  2. 通过运行以下命令提取 control.tar.gz 文件:

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

         tar –zxvf data.tar.gz
    
于 2016-10-26T20:01:16.587 回答
0

如果您想要 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 文件,但我还没有找到合适的。

于 2020-03-08T20:22:50.420 回答