World Vision Club

GI ET11000 4K, GI ET7000 Mini, Xtrend ET9000,9200 HD Twin, Xtrend ET5000,6000 HD => Xtrend ET9000 HD Twin => программы => Тема начата: Дмитрий73 от 19 Октябрь 2012, 18:37:59

Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 19 Октябрь 2012, 18:37:59
Эту программку написал vlamo
Dreambox IPK packages maker
(программа для сборки и разборки ipk-пакетов)

Предлагаю вашему вниманию небольшую и простенькую програмулину для сборки и разборки ipk пакетов - ipk-maker

Программа умеет:

    собирать ipk-пакеты (build).
    Пример:
    ipk-maker build /tmp/IPK-BUILD

    Где /tmp/IPK-BUILD есть уже структуированая ipk-директория. В ней должны быть две поддиректории:
    /tmp/IPK-BUILD/CONTROL (содержит управляющие файлы для пакета)
    /tmp/IPK-BUILD/DATA (содержит любые папки/файлы данных, которые вы хотите включить в пакет)
    разбирать ipk-пакеты (unbuild)
    Пример:
    ipk-maker unbuild /tmp/IPK-BUILD /tmp/any-package_0.1_all.ipk

    Где /tmp/IPK-BUILD есть директория, в которую будет распакован файл /tmp/any-package_0.1_all.ipk .
    а, также, создавать структуру ipk-директории для создания нового ipk-пакета (make_dir)
    Пример:
    ipk-maker make_dir /tmp/IPK-BUILD

    Где /tmp/IPK-BUILD есть директория, в которой будут созданы:
    1. Маркерный файл debian-binary
    2. Поддиректория DATA
    3. Поддиректория CONTROL
    4. В поддиректории CONTROL в свою очередь будут созданы управляющие файлы:
        control - здесь находятся все сведения о пакете, вам необходимо его будет отредактировать вручную. Файл обязательный!!!
        preinst - скрипт, который будет исполняться до установки пакета (можно удалить, если не нужен).
        postinst - скрипт, который будет исполняться после установки пакета (можно удалить, если не нужен).
        prerm - скрипт, который будет исполняться до удаления вашего пакета (можно удалить, если не нужен).
        postrm - скрипт, который будет исполняться после удаления вашего пакета (можно удалить, если не нужен).



Установка, как обычно:
1. Распаковываете zip-архив в /tmp Дрима
2. Даете через Телнет две команды:

cd /
tar -xzvf /tmp/dreambox-ipk-maker_*.tar.gz

Программа установится в /usr/bin Дрима и будет готова к употреблению.
Если что не понятно, набираете: ipk-maker --help или спрашиваете здесь.
Исходное описание от автора  здесь (http://dream.altmaster.net/showthread.php?t=4598)
От себя добавлю два очень важных момента:
1)Все файлы разложены по полочкам,осталось только дать команду для сборки пакета,обязательно не забываем выполнить перед этим  команду:
chown -Rh root:root /tmp/IPK-BUILD2)В файле control,когда все написано,внимательно проверьте,что бы не оставалось пустых строк,пробелов или табуляций в окончании строк.Пакет может просто не собратся или при установке вы увидите кучу не приятных ошибок в консоли.

P.S.Изучите это сообщение и можете задавать вопросы,мне проще объяснить нюансы на конкретном примере :).
Название: Сборка ipk пакетов
Отправлено: gavd от 20 Октябрь 2012, 00:23:33
У  меня  telnet  по-моему  кирилицу  не  понимает,   как  это  поправить ?root@et9x00:/var/volatile/tmp# ipk-maker make_dir /tmp/IPK-BUILD
ipk-maker: ╨╖╨░╨┤╨░╨╜╨░ ╨║╨╛╨╝╨░╨╜╨┤╨░ 'make_dir'...
ipk-maker: ╨┤╨╕╤А╨╡╨║╤В╨╛╤А╨╕╤П "/tmp/IPK-BUILD" ╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╤Б╨╛╨╖╨┤╨░╨╜╨░.

          ╨Э╨╡╨║╨╛╤В╨╛╤А╤Л╨╡ ╤А╨╡╨║╨╛╨╝╨╡╨╜╨┤╨░╤Ж╨╕╨╕ ╨┐╨╛ ╤Б╨╛╨╖╨┤╨░╨╜╨╕╤О╨┐╨░╨
:╨╡╤В╨░
            1. ╨б╨║╨╛╨┐╨╕╤А╤Г╨╣╤В╨╡ c ╤Г╤З╨╡╤В╨╛╨╝ ╨┐╨╛╨╗╨╜╤Л╤Е ╨┐╤Г╤В╨╡╨╣ ╨╜╨╡╨
 ╤Д╨░╨╣╨╗╤Л ╨▓ ╨║╨░╤В╨░╨╗╨╛╨│
                 /tmp/IPK-BUILD/DATA
            2. ╨Ч╨░╨┐╨╛╨╗╨╜╨╕╤В╨╡ ╨▓╤Б╨╡ ╨╜╨╡╨╛╨▒╤Е╨╛╨┤╨╕╨╝╤Л╨╡ ╨┐╨╛╨╗╤П ╨▓╨░╤И╨
 ╨┤╨░╨╜╨╜╤Л╨╝╨╕ ╨▓ ╤Д╨░╨╣╨╗╨╡
                 /tmp/IPK-BUILD/CONTROL/control
               (╨╕╨╝╤П ╨┐╨░╨║╨╡╤В╨░, ╨▓╨╡╤А╤Б╨╕╤П, ╨╛╨┐╨╕╤Б╨░╨╜╨╕╨╡, ╨░╨▓╤В╨╛╤А,
 ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В╨╕ ╨╕ ╤В.╨┤.)
            3. ╨Х╤Б╨╗╨╕ ╨▓╨░╨╝ ╨╜╨╡╨╛╨▒╤Е╨╛╨┤╨╕╨╝╨╛, ╤З╤В╨╛╨▒╤Л ╨▓╤Л╨┐╨╛╨╗╨╜╤П╨╗
 ╨┤╨╛╨┐╨╛╨╗╨╜╨╕╤В╨╡╨╗╤М╨╜╤Л╨╡ ╨┤╨╡╨╣╤Б╤В╨▓╨╕╤П
               ╨┤╨╛ ╨╕/╨╕╨╗╨╕ ╨┐╨╛╤Б╨╗╨╡ ╤Г╤Б╤В╨░╨╜╨╛╨▓╨║╨╕/╤Г╨┤╨░╨╗╨╡╨╜╨╕╤П ╨▓╨
 ╨┐╨░╨║╨╡╤В╨░, ╨╛╨▒╤А╨░╤В╨╕╤В╨╡
               ╨▓╨╜╨╕╨╝╨░╨╜╨╕╨╡ ╨╜╨░ ╨┤╤А╤Г╨│╨╕╨╡ ╤Д╨░╨╣╨╗╤Л ╨▓ ╨║╨░╤В╨░╨╗╨╛╨│╨╡
                 /tmp/IPK-BUILD/CONTROL
               ╨Э╨░╨╖╨▓╨░╨╜╨╕╤П ╤Д╨░╨╣╨╗╨╛╨▓ ╨│╨╛╨▓╨╛╤А╤П╤В ╤Б╨░╨╝╨╕ ╨╖╨░ ╤Б╨╡╨▒
. ╨Ш╨╜╨░╤З╨╡, ╨┐╤А╨╛╤Б╤В╨╛ ╤Г╨┤╨░╨╗╨╕╤В╨╡ ╨╕╤Е.
            4. ╨Ъ╨╛╨│╨┤╨░ ╨▓╤Б╨╡ ╨▒╤Г╨┤╨╡╤В ╨│╨╛╤В╨╛╨▓╨╛, ╨╖╨░╨┐╤Г╤Б╤В╨╕╤В╨╡ ipk
-maker:
                 /usr/bin/ipk-maker build /tmp/IPK-BUILD

root@et9x00:/var/volatile/tmp# cd
root@et9x00:~# ipk-maker build /tmp/IPK-BUILD /tmp/proba_gavd_pli_hd_mod
ipk-maker: ╨╖╨░╨┤╨░╨╜╨░ ╨║╨╛╨╝╨░╨╜╨┤╨░ 'build'...
ipk-maker: ╤В╨╡╨║╤Г╤Й╨╕╨╣ 'ar' ╨░╤А╤Е╨╕╨▓╨░╤В╨╛╤А ╤П╨▓╨╗╤П╨╡╤В╤Б╤П ╤Г╤А╨╡╨╖╨░╨╜╨
 ╨▓╨╡╤А╤Б╨╕╨╡╨╣ ╨┐╤А╨╛╨│╤А╨░╨╝╨╝╤Л ╨╕ ╨╜╨╡ ╨╝╨╛╨╢╨╡╤В ╤Б╨╛╨▒╨╕╤А╨░╤В╤М ipk-╨┐╨░╨
ipk-maker: ╨┤╨╗╤П ╤Б╨▒╨╛╤А╨║╨╕ ipk-╨┐╨░╨║╨╡╤В╨░ ╨▓╤Л ╨╜╤Г╨╢╨┤╨░╨╡╤В╨╡╤Б╤М ╨▓ ╨┐╨
 ╨▓╨╡╤А╤Б╨╕╨╕ ar ╨░╤А╤Е╨╕╨▓╨░╤В╨╛╤А╨░ ╨╕╨╖ ╨┐╨░╨║╨╡╤В╨░ binutils

root@et9x00:~#
Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 20 Октябрь 2012, 08:11:05
При запуске PuTTY кодировку UTF-8 надо выставить,она в настройках слева.
Название: Сборка ipk пакетов
Отправлено: georg от 20 Октябрь 2012, 08:30:08
При создании пакета ipk  -надо предварительно  создать тарбол - data.tar.gz ..дык ведь на этом можно и остановиться,
зачем продолжать дальше,в чём преимущество ipk  перед тарболом..?
Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 20 Октябрь 2012, 08:46:17
При создании пакета ipk  -надо предварительно  создать тарбол - data.tar.gz ..дык ведь на этом можно и остановиться,
зачем продолжать дальше,в чём преимущество ipk  перед тарболом..?
Тарбол автоматически создается внутри  ipk   при сборке.
В папку DATA кидаем нужные файлы,делаем это на компе.Потом закидываем через фтп,вид будет примерно такой:
папка /usr, внутри папка / bin,внутри бинарник mgcamd,на него права 755
В папке CONTROL,вписываем что надо и собираем пакет.
Название: Сборка ipk пакетов
Отправлено: gavd от 20 Октябрь 2012, 17:55:55
Я   для  пробы  сначала   распаковал  рабочий  ipk  пакет  и сохранил  его  на  компе.  Потом  создал  маркерный  файл  и  скопировал-заменил  нужные  файлы  файлами  с  компа.  Поидее  всё  должно  было  собраться,  но....
openpli 3.0 et9x00


et9x00 login: root
root@et9x00:~# ipk-maker build /tmp/IPK-BUILD
ipk-maker: задана команда 'build'...
ipk-maker: текущий 'ar' архиватор является урезаной версией программы и не может  собирать ipk-пакеты
ipk-maker: для сборки ipk-пакета вы нуждаетесь в полной версии ar архиватора из  пакета binutils

root@et9x00:~# chown -Rh root:root /tmp/IPK-BUILD
root@et9x00:~# ipk-maker build /tmp/IPK-BUILD
ipk-maker: задана команда 'build'...
ipk-maker: текущий 'ar' архиватор является урезаной версией программы и не может собирать ipk-пакеты
ipk-maker: для сборки ipk-пакета вы нуждаетесь в полной версии ar архиватора из пакета binutils

этот  "урезаный  архиватор"  -  это  из  Putty  или  ето  программа  в  ресивере ?  Как   поправить ?
Название: Сборка ipk пакетов
Отправлено: georg от 20 Октябрь 2012, 18:38:16
То-же самое получил и я..?
Почитай ссылку которую дал в начале темы Дмитрий,vlamo пишет что
"в Дриме ar - это, всего-лишь, аплет busybox'а, и, поэтому, функциональность его весьма урезана"
Далее он пишет:
"что выдернул полнофункциональный ar архиватор из deb-пакета binutils_2.17-3_powerpc.deb...,"
и в конце поста выложил "ar-архиваторы под powerpc и mipsel архитектуры "
Надо-бы их установить в начале ,а уж потом наверное действовать...?
Вобщем хлопот не оберёшся..правильно написал vlamo  в первых строчках своего поста-
"Дримоводы -лёгких путей не ищут"
Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 20 Октябрь 2012, 19:00:27
Дико извиняюсь.Забыл пакет с ar вчера выложить.Точней,написал вчера  сообщение и долго думал,ни чего ли я не забыл и тут меня отвлекли ;D.
Установка:
Удалите симлинк  /usr/bin/ar и закиньте файлы из архива по нужным директориям,права 755
Название: Сборка ipk пакетов
Отправлено: georg от 20 Октябрь 2012, 19:25:39
Ну да так и надо действовать,то-есть установить полноценный архиватор,прада пакет ipk у меня получился не рабочий,чтой-то напутал,
но это уже мелочи -разберусь!
(http://s002.radikal.ru/i200/1210/ed/d4620efd96e4.jpg) (http://www.radikal.ru)
P.S.Всё получилось!!
Тем кто никогда этого не делал и не представляет как подступиться,проще всего взять какой-нибудь готовый IP-
пакет ,поместить его в папку tmp и дать и телнет команду "ipk-maker unbuild /tmp/IPK-BUILD /tmp/flashexpander_0.33-r0_all.ipk"
только заменить "flashexpander_0.33-r0_all.ipk"  на название своего пакета
В папке tmp создастся папка IPK-BUILD ,а в ней еще две папки CONTROL ,DATA и файлик debian-binary
с файликом debian-binary - делать ничего не надо,из папки DATA выкинуть папки и поместить свои с нужными
файлами в нужных дерикториях и присвоить необходимые права.
В папке CONTROL содержится файлик control -его тоже нужно подредактировать -изменить название..вобщем там понятно будет.
Дальше даём в телнет команду ipk-maker build /tmp/IPK-BUILD
И через несколько секунд забираем из tmp/IPK-BUILD   свой готовый IP-пакет!
Название: Сборка ipk пакетов
Отправлено: gavd от 21 Октябрь 2012, 02:03:36
Со  сборкой  пакета  вроде  тоже  разобрался.  И  вот  такой   вопрос  появился -  что   нужно   сделать  и  возможно  ли  это  вообще,   чтобы    собранный  произвольный  пакет   можно  было  также  двумя   кнопками (всмысле  легко  и  быстро)  и   удалить,   как  и  поставить   ?
Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 21 Октябрь 2012, 07:39:17
Со  сборкой  пакета  вроде  тоже  разобрался.  И  вот  такой   вопрос  появился -  что   нужно   сделать  и  возможно  ли  это  вообще,   чтобы    собранный  произвольный  пакет   можно  было  также  двумя   кнопками (всмысле  легко  и  быстро)  и   удалить,   как  и  поставить   ?
Удалить какими кнопками?Не понимаю вопроса,подробней можно...
А вообще это делается в той же консоли:
opkg install  ваш-пакет.ipk
opkg remove ваш-пакет.ipk
Название: Сборка ipk пакетов
Отправлено: vasilich07 от 21 Октябрь 2012, 09:16:39
Если стоит Е-панель, то можно и с пульта
Название: Сборка ipk пакетов
Отправлено: gavd от 21 Октябрь 2012, 11:19:43
Удалить какими кнопками?Не понимаю вопроса,подробней можно...

Раньше,  до  установки  пакета,   удалить  скин   можно  было   через  "меню"-"плагины"-"красная  кнопка"-"skins",   а  если  установить  скины  моим  пакетом,  то  в  этом  меню  ничего  не  появляется,  никаких  "кнопок".   То  есть  с  пульта  скин  или  сборку  не   удалишь.  (Хотя  можно   конечно  через  tuxcom  или  ещё  как  vasilich подсказывает).
То  есть  я  хотел  узнать  что  ещё  нужно  добавить  в  пакет  при  сборке,  чтобы  осталась  возможнось  удалить  скин  через    "меню"-"плагины"-"красная  кнопка"  ?  Вот  что  за  "кнопки" :)
Название: Сборка ipk пакетов
Отправлено: georg от 21 Октябрь 2012, 11:53:59
Что-бы удалить IPK-пакет из меню плагины или панелью от 2boom или из телнет,надо что-бы он был правильно собран.
В примере который я привёл выше-установленный пакет будет работать,но удалить его ни одним из перечисленных методов не удасться,
его нет в реестре системы.
В паке CONTROL помимо файла control,могут находится ещё "куча" файлов для различных задач.
Например если добавить ещё файлик postrm вот стаким содержанием

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

Это для скоростного самменеджера(которого быть не может)

он появится  в меню удаления плагинов и его можно оттуда удалить,а также в панели от 2boom в меню удалений ip-
пакетов и из телнет
(http://s019.radikal.ru/i600/1210/6d/963f5ba7e320.jpg) (http://www.radikal.ru)
Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 21 Октябрь 2012, 13:16:23
Раньше,  до  установки  пакета,   удалить  скин   можно  было   через  "меню"-"плагины"-"красная  кнопка"-"skins",   а  если  установить  скины  моим  пакетом,  то  в  этом  меню  ничего  не  появляется,  никаких  "кнопок".   То  есть  с  пульта  скин  или  сборку  не   удалишь.  (Хотя  можно   конечно  через  tuxcom  или  ещё  как  vasilich подсказывает).
То  есть  я  хотел  узнать  что  ещё  нужно  добавить  в  пакет  при  сборке,  чтобы  осталась  возможнось  удалить  скин  через    "меню"-"плагины"-"красная  кнопка"  ?  Вот  что  за  "кнопки" :)
Как написал georg,пакет действительно должен быть правильно собран.То есть,если это скин или сборник скинов,то пакет должен называться,пример-файл control:
Package: enigma2-plugin-skins-мое_имяТогда он появится в меню-плагины-удаление плагинов-скины.
В твоем случае,это даже к лучшему,никто его не удалит.Хотя конечно его все равно можно найти в меню-мастройка-менеджер управление софтом-расширенные опции-управление пакетами и удалить.
Название: Сборка ipk пакетов
Отправлено: gavd от 29 Ноябрь 2012, 15:45:59
При   попытке   установить   ипк   пакет  рес  выдаёт   вот  такое  сообщение :
openpli 3.0 et9x00


et9x00 login: root
root@et9x00:~# opkg install /tmp/*.ipk --force-overwrite
Installing dvbapp2-skin-collection (0.2) to root...
sh: /tmp/opkg-yZKKif/dvbapp2-skin-collection-eHG705/preinst: Permission denied
Collected errors:
 * pkg_run_script: package "dvbapp2-skin-collection" preinst script returned sta
tus 126.
 * preinst_configure: Aborting installation of dvbapp2-skin-collection.
 * opkg_install_cmd: Cannot install package dvbapp2-skin-collection.
root@et9x00:~#

Пакет  сам  собирал,  делал  всё   как   и   всегда , когда  всё  нормально   устанавливалось....
Файл  preinst,  не   трогал....
Что   это  может  быть  ?
Название: Сборка ipk пакетов
Отправлено: Дмитрий73 от 29 Ноябрь 2012, 16:00:21
На все файлы из папки CONTROL,кроме файла control права должны быть для выполнения,то есть 755/777
 И эти файлы обыкновенные линуксовые скрипты,то есть должны выглядеть так
#!/bin/sh

мое действие

exit 0
Название: Сборка ipk пакетов
Отправлено: gavd от 29 Ноябрь 2012, 16:31:34
Дмитрий73 (https://wvclub.net/forum/index.php?action=profile;u=98),
Я  так  и  знал,   что   ты  знаешь   в  чём  дело. :)  Всё  заработало,   ещё  раз   спасибо.  Просто  раньше  как то
не  обращал  внимания  на  права  вспомогательных   файлов  и  всё   работало...
Название: Сборка ipk пакетов
Отправлено: KOSTEY от 29 Ноябрь 2012, 18:46:13
gavd (https://wvclub.net/forum/index.php?action=profile;u=25),Дима всегда,и почти всё знает.