Как да пакетирам .ipk файлове с Дриимбокс,без линукс машина.
Необходими файлчета за инсталиране на Дриимбокс (работещ с енигма2):
ar ; ipkg-build ; libbfd-2.17.so
Как да инсталираме файлчетата и какво е предназначението им:
Задължитело е Дриимбокса да има външна памет, например USB.
Плъгина Barry Allen НЕ пречи на пакетирането, само, че указаните файлове при пакетирането се посочват както когато се работи с имидж на флаша, т.е.
не се дефинира пътят на файловете като : /media/ba/ba .....
а се дефинират по нормалният им път : /usr/.....
ar – е архиватор – той трябва да се намира в :
/usr/local/bin/ , но тъй като е твърде голям по размер не може да се постави там и за това се поставя в:
/media/hdd/ar/ar – т.е. в /media/hdd/ се съзава папка ar в която се поставя файла ar.
За да работи коректно, по нататък ще опиша процедурата за ползването му от /usr/bin.
ipkg-build – е ,,строителят" на ipk файловете и се намира в : /usr/local/bin/
libbfd-2.17.so – с този файл се отървавате от Busybox и се намира в /usr/lib/
Първите два файла ar ; ipkg-build са пакетирани като ipkg-build.tar.bz2
Поставете файла ipkg-build.tar.bz2 в /tmp и през телнет следва инсталирането им:
cd /
bunzip2 /tmp/ipkg-build.tar.bz2
tar -xvf /tmp/ipkg-build.tar
Това би следвало да създаде структурата на директориите и директория CONTROL, като по този начин не се създават работните директории в които ще се извършва пакетирането. За това по късно ще трабва да се направят работни директории.
Както вече споменах по горе, файла ar e 2,7 MB и се налага да се премести в друга директория, която е на външна памет. Под телнет пишеме следното:
mkdir /media/hdd/ar
mv /usr/local/bin/ar /media/hdd/ar
ln -sfn /media/hdd/ar/ar /usr/local/bin
за да се отървеме от Busybox е следното:
rm /usr/bin/ar
ln -sfn /media/hdd/ar/ar /usr/bin
Най накрая поставяме файла libbfd-2.17.so, (вземаме го от ar_2.17_mipsel.zip) като му даваме chmod755 и следва пълен рестарт на приемника. Вече всичко би трябвало да е готово за да пакетираме избрани файлове в .ipk формат.
Преди да започнем да правиме пакети малко общи неша.
Инсталиране и деинсталиране на ipkg пакети под конзола:
Инсталиране:
Копираме файла в папка: /tmp и в телнет пишеме:
ipkg install /tmp/точното име на пакета
Деинсталиране:
ipkg remove точното име на пакета
Какво е IPK пакет:
ipkg - the Itsy Package Management System.
Малко инфо за ipk пакета:
И така, .ipk файл – това е архив, съдържащ в себи си 3 задължителни файла:
data.tar.gz (архив) – състои се от файловете, които ще се инсталират в системата. Съдържанието на този архив ще се разопакова в конкретните директории от ipk пакета. За това този архив трябва да съдържа директориите, така, както са подредени в системата, като например, /bin, /usr или /etc.
control.tar.gz (архив) – съдържа мета-данни и инсталационния скрипт на пакета.В архива задължително трябва да има текстови файл, под името control, в който се намират мета-данните, като например:
Package: gp-skin-classickblackhd
Version: icvs_gp3-r1
Section: skin
Architecture: mipsel
Maintainer: Sharp987
Filename: gp-skin-classickblackhd_icvs_gp3-r1_mipsel.ipk
Source:
Description: ClassicBlackHD Skin for iCVS and GP3
HomePage:
Priority: optional
Така също в архива control.tar.gz може да се намират и следните файлове : conffiles, preinst, postinst, prerm и postrm. Може да има и други файлове, но те реално не се използват при инсталацията на пакета.
debian-binary (файл) – това обикновено е текстови файл с един и съши не изменян във времето текст ,,2.0". Размерът на файла задължително трявба да бъде 4 байта.
Както се вижда форматът .ipk е точно такъв, както в дебиан пакетите за ОС.
За опаковане/разопаковане ipk пакета използва ar – архиватор. С други думи казано - .ipk пакета е архив с разширение .ipk., който под windows може да се разархивира например с : 7-Zip File Manager.
Някойлко думи за имената при .ipk пакетите
Името на ipk файла се състои от четири задължителни съставки:
Формат: име_версия_архитектура.ipk
Пример: enigma2-plugin-extensions-webinterface_2.6cvs20090516-r0_mipsel.ipk
име – името на пакета, допустими символи [a-z0-9.+-]
версия – версията на пакета, допустими символи [a-zA-Z0-9.+]
архитектура – допустими имена: all, noarch, powerpc, mipsel, и dm500plus, dm600pvr, dm800, etc...
ipk – разширение на пакета.
Разпакетиране на ipk пакет.
Нека опитаме да разпакетираме някакъв .ipk пакет в Дриимбокса през телнет:
Чрез FTP клиент поставяме какъвто и да е .ipk файл в директория /tmp.
Създаваме директория например IPK в /media/hdd.
т.е. става /media/hdd/IPK
с телнет:
mkdir /media/hdd/IPK
mkdir – означава – make directory
Ако, както е в случая, искаме да разархивираме в точно определена директория даден .ipk файл, трябва да отидем в самата директория и за това в телнет пишеме:
cd /media/hdd/IPK
Разпакетираме какъвто и да е файл:
ar -xo /tmp/името на файла.ipk
Ако погледнем какво съдържа директорията /media/hdd/IPK с команда то ще видиме следното:
root@dm800: /media/hdd/IPK # ls -ls
4 -rw-r--r-- 1 root root 423 Jan 8 04:28 control.tar.gz
16 -rw-r--r-- 1 root root 15561 Jan 8 04:28 data.tar.gz
4 -rw-r--r-- 1 root root 4 Jan 8 04:28 debian-binary
Как се работи с .tar.gz-архиви, които още се наричат тарболи (tarball), се надявам, че е ясно, но нека си припомниме.
a) създаваме временна директория, в която да разопаковаме тарбола:
mkdir /tmp/CONTROL-UNPACK
b) отиваме в току-що създадената директория, ако искаме да разпакетираме именно в нея:
cd /tmp/CONTROL-UNPACK
c) разпакетираме тарбола в директория /tmp/CONTROL-UNPACK:
tar -xzvf /tmp/IPK-UNPACK/control.tar.gz
d) и за да проверим, поглеждаме в директорията /tmp/CONTROL-UNPACK:
ls -ls /tmp/CONTROL-UNPACK
(командата ще ни покаже пълния списък на съдържанието на /tmp/CONTROL-UNPACK)
Опаковане на .ipk пакети
Сега да опитаме обратното, да опаковаме файл в /tmp/IPK-UNPACK в нов пакет:
1. И така нека предположим че, необходимите 3 файла са в директорията на Дриимбокса /tmp/IPK-UNPACK.
2.Формата на ipk пакета изисква необходимите файлове от архива да са разпакетирани в главната директория, т.е без папки.
За това отиваме в директорията /tmp/IPK-UNPACK:
cd /tmp/IPK-UNPACK
Нека да опковаме какъвто и да е .ipk пакет:
ar -crf /tmp/какъвто и да е пакет.ipk ./debian-binary ./data.tar.gz ./control.tar.gz
4. Ако пакетирането е преминало успешно, то ние може да погледнем създадените файлове с командата ls:
Получава се нещо подобно:
root@dm800:/tmp/IPK-UNPACK# cd /tmp
root@dm800:/tmp# ls -ls нов какъвто и да е пакет.ipk
16 -rw-r--r-- 1 root root 16178 Jun 8 14:34 нов какъвто и да е пакет.ipk
Създаване на IPK пакет.
Препоръчвам да се работи с папка на външна памет.
1. Създаваме работна папка /IPK в директория /media/hdd:
mkdir /media/hdd/IPK
2. В директорията /media/hdd/IPK създаваме файла debian-binary:
echo "2.0" > /media/hdd/IPK /debian-binary
3. В директорията /media/hdd/IPK създаваме тарбола data.tar.gz, в който се намират всчки необходими файлове за пакета. Всички файлове от командния ред трябва да бъдат описани точно пътя им, като за папка се посочва папката, а за файла името на файла и неговото разширение. Това се налага за да може при инсталиране всичко да си отиде на мястото.
Пример:
tar -czf / media/hdd/IPK /data.tar.gz /usr/share/enigma2/ClassicBlackHD /usr/lib/enigma2/python/Components?Converter/име на файл със неговото разширение /usr/lib/enigma2/python/Components/Renderer/ име на файл със неговото разширение
4. В директорията /media/hdd/IPK създаваме поддиректория /CONTROL:
mkdir /media/hdd/IPK /CONTROL
5. В директорията /media/hdd/IPK/CONTROL съсдаване файла control сподобно съдържание:
Package: gp-skin-classickblackhd
Version: icvs_gp3-r1
Section: skin
Architecture: mipsel
Maintainer: Sharp987
Filename: gp-skin-classickblackhd_icvs_gp3-r1_mipsel.ipk
Source:
Description: ClassicBlackHD Skin for iCVS and GP3
HomePage:
Priority: optional
За да не съдавате такъв файл, може да ползвате готов от друг пакет, като го редактирате с notepad++ и го поставите в /media/hdd/IPK/CONTROL
6. Задаваме права 755 (или 644) на съдадените файлове:
chmod 755 /media/hdd/IPK/CONTROL/control
chmod 755 /media/hdd/IPK/debian-binary
chmod 755 /media/hdd/IPK/data.tar.gz
7. За да направиме и тарбола control.tar.gz отиваме в папка /media/hdd/IPK/CONTROL
cd /media/hdd/IPK/CONTROL
8. В директорията /media/hdd/IPK създаваме control.tar.gz (обърнете внимание на интервала и точката в края на реда след "gz" те са задължителни):
tar -czf /media/hdd/IPK /control.tar.gz .
9. Отиваме в директория /media/hdd/IPK:
cd /media/hdd/IPK
10. Сега вече може да опаковаме нашите файлове в пакет името на пакета_all.ipk:
ar -crf /tmp/името на пакета_all.ipk ./debian-binary ./data.tar.gz ./control.tar.gz
Ако всичко е минало както трябва вече в папка /tmp трябва да имате готов пакет името на пакета_all.ipk
Файл control
Задължително поле във файла control, което трябва да бъде запълнено:
* Package:
Името на ipk пакета, трябва да съответства на следните броя символи "[a-z0-9.+-]\+". Обърнете внимание, че главни букви са недопустими. Така например име на пакета myNewSoftware е недопустимо. А следва да бъде така: my.56+new-software. Също така, името трябва да започва само с малки латински букви.
* Version:
Момер на версията във форума: [:epoch] version [-fam frevision] [-revision]
o epoch
Времеви отпечатък (timestamp) в секунди след епохата. Не е задължително.
o version
Задължително поле. Ако покаже номера на версията в пакета и трябва да съдържа най-малко един номер и трябва да съвпада с регулярен израз "[A-Za-Z0-9. +] \ + ". Имайте предвид, че двете главни и малки букви са разрешени, като част от номера на версията.
o frevision
Предполага се, familiar revision. Съответно "-fam[0-9]\+". Не е задължително.
o revision
Отразява ревизиата (build revision) на пакета. Полето трябва да се увеличава всеки път при по новите препакетирвания. Ако версията се увеличава, ревизията може да се занули. Съответно "-[a-z0-9]\+". Не е задължително.
Пример: 2.6cVs20090516-fam2-r1
* Architecture:
Име на архитектурата. Възможни са едно от следните имена:
o all - пакет за която и да е процесорна платформа, например документация или скрипт.
o noarch – Архитектурно независим пакет.
o mipsel – пакет за MIPSel архитектура (MIPSel CPU)
o powerpc – пакет за PowerPC архитектра (PowerPC CPU)
o dm500plus, dm600pvr, dm800, etc... – пакет за определен модел Дриимбокс.
* Maintainer:
Обикновено име и e-mail адрес на разпространителя или създателя на пакета.
* Section:
Полето трябва да се наименова по един от следните начини:
admin, base, comm, devel, editors, extras, games, graphics, kernel, libs, misc, net, text, web, x11
* Priority:
Полето трябва да има едно от следните значения (обикновено се използва като optional):
required, important, standard, optional, extra
* Description:
Текстово описание на съдържанието на пакета. Позволени са няколко реда текст, но не повече от 80 символа на ред и на следващия ред трябва да започва с интервал. За да покажете празни редове с помощта на една точка. "след интервала в нов ред.
* Source:
Списък на файлове или URL, посочваш източника.
ar_2.17_mipsel.zip (http://www.dtv-bg.com/images/buttons/collapse_tcat_collapsed.gif) (http://www.dtv-bg.com/downloads.php?do=file&id=3263&act=down)
ipkg-build.tar.bz2 (http://www.dtv-bg.com/images/buttons/collapse_tcat_collapsed.gif) (http://www.dtv-bg.com/downloads.php?do=file&id=3262&act=down)