30

ipk パッケージは、opkg が使用するインストール パッケージです。

そのうちの 1 つのコンテンツを抽出し、独自の 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

パッケージ: my-thing-python
バージョン: 1.0
説明: MyCompany の Python スクリプト
セクション: エキストラ
優先度: オプション
メンテナ: ジョン
ライセンス: 閉鎖
アーキテクチャ: すべて
OE: my-thing-python
ホームページ:不明
依存: python python-distutils python-pyserial python-curses python-mmap python-ctypes
出典:該当なし

Makefileこれは、すべての python スクリプトと同じディレクトリにある my です。

すべて: 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 .; CD ..
        エコー 2.0 > debian バイナリ
        ar r my-thing-python.ipk control.tar.gz data.tar.gz debian-binary

クリーン: フォース
        rm -rf ipk
        rm -f control.tar.gz
        rm -f data.tar.gz
        rm -f my-thing-python.ipk

力:

于 2014-01-18T00:05:22.107 に答える
4

次のコマンドで抽出します。

  1. 次のコマンドを実行してファイルを抽出します。

      ar -xv   <.ipk file>
    
  2. 次のコマンドを実行して、control.tar.gz ファイルを抽出します。

      tar -zxvf control.tar.gz
    
  3. data.tar.gz : 次のコマンドを実行して untar します。

         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 に答える