2013-06-28 19 views
19

ipk-Pakete sind die von opkg verwendeten Installationspakete.Extrahieren und Erstellen von IPK-Dateien

Ich versuche, den Inhalt eines von ihnen zu extrahieren und auch mein eigenes ipk zu erstellen.

Ich habe gelesen, dass ich in der Lage sein sollte, sie zu entpacken, aber das ist nicht wahr.

Ich habe versucht:

tar -zxvf mypack.ipk 

und ich bekomme:

zip: stdin: not in gzip format

ich auch versucht habe:

tar -xvf mypack.ipk 

und ich bekomme:

tar: This does not look like a tar archive

Ich habe festgestellt, dass die meisten Informationen im Internet über ipk's ungenau sind.

Mein ipk wurde von bitbake generiert. Ich habe eine harte Zeit mit Bitbake und möchte es vermeiden.

Irgendwelche Ideen zum Extrahieren und wie ipk-Dateien zu erstellen? Eine einfache Vorlage mit einem einzigen Paket wäre nützlich.

Antwort

22

Ich fand es heraus.

Sie können das Hauptpaket mit dem Befehl ar x extrahieren und dann die Datei control.tar.gz mit dem Befehl tar -zxf extrahieren.

+1

Ich denke, du meinst "ar x", gefolgt von tar-Befehle –

17

Sie müssen eine control Datei erstellen und dann eine Archivierung mit tar und ar durchführen. In meinem Fall verteilte ich nur Python-Skripte, daher gab es keine Abhängigkeit von der Architektur. Sie sollten die control und Makefile in Versionskontrolle überprüfen und alle anderen Zwischendateien löschen.

Hier sind die Inhalte von 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 

Hier mein Makefile ist, die wie alle meine Python-Skripte im selben Verzeichnis befindet.

 
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: 

+0

Danke Mark, genau das, was ich gesucht :) – Deko

+0

@MarkLakata, Nach der Installation des Pakets, gibt es einen Fehler als 'Gesammelte Fehler: * pkg_init_from_file: Fehlerhafte Paketdatei my-thing-python.ipk.'. Siehe hierzu [Frage] (http://stackoverflow.com/q/36331535/2706918) –

+0

Wofür steht 'OE:'? – kmort

2

mit diesen Befehlen Extrahierung:

  1. die Datei extrahieren, indem der Befehl:

    ar -xv <.ipk file> 
    
  2. Extrahieren der control.tar.gz Datei mit dem Befehl ausgeführt wird:

    tar -zxvf control.tar.gz 
    
  3. data.tar.gz: untar indem Sie den Befehl:

     tar –zxvf data.tar.gz 
    
Verwandte Themen