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