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文件的任何想法?拥有单个包的简单模板将非常有用。
答案 0 :(得分:28)
我明白了。
您可以使用ar x
命令提取主程序包,然后使用tar -zxf
命令提取control.tar.gz。
答案 1 :(得分:18)
您需要创建control
文件,然后使用tar
和ar
进行归档。就我而言,我只分发python脚本,因此没有架构依赖。您应该将control
和Makefile
检入版本控制,并删除所有其他中间文件。
以下是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)
使用这些命令进行提取:
运行命令提取文件:
ar -xv <.ipk file>
运行以下命令解压缩control.tar.gz文件:
tar -zxvf control.tar.gz
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文件,但是我找不到合适的文件。