提取并创建 ipk 文件

问题描述 投票:0回答:5

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

package
5个回答
42
投票

我明白了。

您可以使用

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


24
投票

我已经测试了

ar x package-name.ipk
命令,但没有帮助

我发现下面的命令运行得很好

tar zxpvf package-name.ipk

这会提取三个文件:

debian-binary
data.tar.gz
control.tar.gz

使用相同的命令打开

data.tar.gz
control.tar.gz
文件

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


20
投票

您需要创建一个

control
文件,然后使用
tar
ar
进行一些归档。就我而言,我只分发 python 脚本,因此不存在体系结构依赖性。 您应该将
control
Makefile
检查到版本控制中,并删除所有其他中间文件。

以下是

control

的内容
软件包:my-thing-python
版本:1.0
说明:MyCompany 的 python 脚本
部分:附加内容
优先级:可选
维护者:约翰 
许可证:已关闭
架构:全部
OE:我的东西Python
主页: 未知
取决于: 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 控件.tar.gz 控件
        cd ipk; tar czvf ../data.tar.gz .;光盘 ..
        echo 2.0 > debian-二进制
        ar r my-thing-python.ipk control.tar.gz data.tar.gz debian-binary

清洁:力
        rm-rf ipk
        rm -f 控制.tar.gz
        rm -f 数据.tar.gz
        rm -f my-thing-python.ipk

力量:


5
投票

使用这些命令提取:

  1. 通过运行命令解压文件:

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

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

         tar –zxvf data.tar.gz
    

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

© www.soinside.com 2019 - 2024. All rights reserved.