2013-06-28 38 views
19

gói ipk là gói intallation được sử dụng bởi opkg.giải nén và tạo các tệp ipk

Tôi đang cố gắng trích xuất nội dung của một trong số chúng và cũng tạo ipk của riêng tôi.

Tôi đã đọc rằng tôi có thể gỡ bỏ chúng nhưng điều đó không đúng.

Tôi đã thử:

tar -zxvf mypack.ipk 

và tôi nhận được:

zip: stdin: not in gzip format

Tôi cũng đã thử:

tar -xvf mypack.ipk 

và tôi nhận được:

tar: This does not look like a tar archive

Tôi đã nhận thấy rằng hầu hết thông tin trên internet liên quan đến ipk là không chính xác.

IPK của tôi được tạo bởi bitbake. Tôi đang gặp khó khăn với bitbake và muốn tránh sử dụng nó.

Bất kỳ ý tưởng nào về cách trích xuất và cách tạo tệp ipk? Một mẫu đơn giản với một gói duy nhất sẽ hữu ích để có.

Trả lời

22

Tôi đã tìm ra.

Bạn có thể trích xuất gói chính bằng lệnh ar x, sau đó trích xuất control.tar.gz bằng lệnh tar -zxf.

+1

Tôi nghĩ rằng bạn có nghĩa là "ar x", tiếp theo là lệnh tar –

17

Bạn cần tạo tệp control và sau đó thực hiện một số lưu trữ bằng cách sử dụng tarar. Trong trường hợp của tôi, tôi chỉ phân phối các kịch bản lệnh python, do đó không có sự phụ thuộc kiến ​​trúc. Bạn nên kiểm tra controlMakefile vào kiểm soát phiên bản và xóa tất cả các tệp trung gian khác.

Dưới đây là nội dung của 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 

Đây là Makefile của tôi mà ngồi trong cùng thư mục với tất cả các kịch bản python của tôi.

 
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

Cảm ơn Mark, chính xác những gì tôi đang tìm kiếm :) – Deko

+0

@MarkLakata, Sau khi cài đặt gói, nó cung cấp một lỗi như 'Lỗi thu thập: * pkg_init_from_file: Tệp gói không đúng định dạng my-thing-python.ipk.'. Xem [câu hỏi] này (http://stackoverflow.com/q/36331535/2706918) –

+0

'OE:' là gì? – kmort

2

Extracting với các lệnh:

  1. Giải nén tập tin bằng cách chạy lệnh:

    ar -xv <.ipk file> 
    
  2. Giải nén tập tin control.tar.gz bằng cách chạy lệnh:

    tar -zxvf control.tar.gz 
    
  3. data.tar.gz: tar bằng cách chạy lệnh:

     tar –zxvf data.tar.gz 
    
3

Tôi đã thử nghiệm "ar x gói-name.ipk" lệnh nhưng nó không giúp

tôi thấy lệnh dưới đây mà làm việc một cách hoàn hảo

tar zxpvf package-name.ipk

này chiết xuất ba tập tin:

debian-nhị phân

data.tar.gz

control.tar.gz

sử dụng lệnh tương tự để mở data.tar.gz và các tập tin control.tar.gz

để biết thêm thông tin tham khảo https://cognito.me.uk/computers/manual-extractioninstallation-of-ipk-packages-on-gargoyleopenwrt/

Các vấn đề liên quan