Enigma2 - tworzenie pakietów OPKG

, poniedziałek, 20 sierpnia 2012

W tym artykule opiszę proces tworzenia i przeglądania pakietów OPKG, czyli plików z rozszerzeniem IPK. Na początek informacja w jaki sposób rozpakować pakiet. Powiedzmy, że chcemy podejrzeć zawartość pakietu enigma.ipk. W tym celu należy wykonać następujące kroki:

1. Utwórz katalog tymczasowy:

mkdir ./tmp

2. Wejdź do katalogu tmp:

cd tmp

3. Rozpakować zawartość pakietu IPK:

ar -ox ../enigma2.ipk

4. Rozpakować zawartość archiwów:

gunzip ./*.tar.gz

5. Wypakować pliki TAR:

tar xf ./data.tar
tar xf ./control.tar

6. Usunąć pliki TAR:

rm *.tar

Jeżeli chodzi o strukturę pakietu OPKG to jest ona następująca:

package.opk (ar)
+- debian-binary (text)
+- control.tar.gz (tarball)
...+- control (text)
...+- preinst (script)
...+- postinst (script)
...+- prerm  (script)
...+- postrm (script)
+- data.tar.gz (tarball)
...+- system
......+- bin
.........+- opkg-hello (program)

W strukturze jest stały plik tekstowy debian-binary, następnie spakowane skrypty kontrolne control.tar.gz, a następnie spakowane archiwum docelowe, czyli dane data.tar.gz.
Teraz przejdziemy do procesu tworzenia pakietu. W celu utworzenia pakietu wykonujemy:

1. Tworzymy katalog tmp

mkdir ./tmp

2. Wchodzimy do katalogu tmp:

cd tmp

3. Tworzymy plik tekstowy debian-binary z zawartością "2.0"
4. Tworzymy pliki kontrolne i pakujemy je do archiwum control.tar.gz. Do tworzenia archiwum TAR.GZ uzywany komendy:

tar zcvf control.tar.gz LISTA PLIKÓW/KATALOGÓW

5. Pliki danych pakujemy z docelową strukturą katalogową do data.tar.gz
6. Tworzymy pakiet przy użyciu komendy:

ar -r enigma2.ipk LISTA PLIKÓW/KATALOGÓW

Poniżej znajdują się przykładowe zawartości skryptów kontrolnych.

1. Skrypt control:

Package: enigma2-plugin-extensions-sample                                                                             
Version: 1.2-rc1                                                                                                                  
Description: My Sample Plugin                                                                                 
Maintainer: MASL                                                                                      
Section: base                                                                                                                     
Architecture: mipsel                                                                                                              
Priority: optional                                                                                                                
Homepage: xxxxxx                                                                                                                  
Depends: enigma2                                                                                                                  
Source: xxxxx

2. Skrypt postinst:

#!/bin/sh                                                                                                                         
echo ""                                                                                                                           
echo "********************************************************"                                                                   
echo "*  My Plugin                              *"                                                                       
echo "*  Support:  masl@xxx.pl                *"                                                                             
echo "*  Mod by MASL (c) 2012     *"                                                                                  
echo "********************************************************"                                                                   
echo ""                                                                                                                           
echo "Sample Plugin successfully installed! You should restart enigma2 now"                                                          
echo ""                                                                                                                           
exit 0  

2. Skrypt postrm:

#!/bin/sh                                                                                                                                                                                                                                                        rm -rf /usr/lib/enigma2/python/Plugins/Extensions/SamplePlugin                                                              
echo "Plugin removed! You should restart enigma2 now!"                                                                                                                                                                                                        
exit 0


0 komentarze:

Prześlij komentarz

GlossyBlue Blogger by Black Quanta. Theme & Icons by N.Design Studio
Entries RSS Comments RSS