提取和创建ipk文件

时间:2013-06-28 16:10:56

标签: packages

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文件的任何想法?拥有单个包的简单模板将非常有用。

5 个答案:

答案 0 :(得分:28)

我明白了。

您可以使用ar x命令提取主程序包,然后使用tar -zxf命令提取control.tar.gz。

答案 1 :(得分:18)

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

以下是control

的内容
Package: my-thing-python
Version: 1.0
Description: python scripts for MyCompany
Section: extras
Priority: optional
Maintainer: John 
License: CLOSED
Architecture: all
OE: my-thing-python
Homepage: unknown
Depends: python python-distutils python-pyserial python-curses python-mmap python-ctypes
Source:  N/A

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

all: my-thing-python.ipk


my-thing-python.ipk:
        rm -rf ipk
        mkdir -p ipk/opt/my-thing-python
        cp *.py ipk/opt/my-thing-python
        tar czvf control.tar.gz control
        cd ipk; tar czvf ../data.tar.gz .; cd ..
        echo 2.0 > debian-binary
        ar r my-thing-python.ipk control.tar.gz data.tar.gz  debian-binary

clean: FORCE
        rm -rf ipk
        rm -f control.tar.gz
        rm -f data.tar.gz
        rm -f my-thing-python.ipk

FORCE:

答案 2 :(得分:5)

我测试了“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/

答案 3 :(得分:3)

使用这些命令进行提取:

  1. 运行命令提取文件:

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

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

         tar –zxvf data.tar.gz
    

答案 4 :(得分: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文件,但是我找不到合适的文件。