Александр Рыжов Posted October 6, 2015 Posted October 6, 2015 Правильно ли я понимаю то, что пакеты, положенные в папку /opt/install будут распаковываться при каждой загрузке роутера, причём post/pre-inst скрипты в пакетах выполняться не будут?
ndm Posted October 6, 2015 Posted October 6, 2015 Правильно ли я понимаю то, что пакеты, положенные в папку /opt/install будут распаковываться при каждой загрузке роутера, причём post/pre-inst скрипты в пакетах выполняться не будут? Пакеты после установки удаляются. Скрипты пока не выполняются, но это можно (и нужно) обсудить.
Александр Рыжов Posted October 6, 2015 Author Posted October 6, 2015 Пакеты после установки удаляются. Скрипты пока не выполняются, но это можно (и нужно) обсудить.Пока просто вожу руками в воздухе. Если удастся получить девайс на тест, то внесу посильный вклад. Первая засада с выполнением post/pre-inst скриптов видится в том, что они представляют собой shell-скрипты, начинающиеся shebang'ом #!/bin/sh и к моменту их выполнения /opt/bin/sh ещё может не существовать.
McMCC Posted October 6, 2015 Posted October 6, 2015 Первая засада с выполнением post/pre-inst скриптов видится в том, что они представляют собой shell-скрипты, начинающиеся shebang'ом #!/bin/sh и к моменту их выполнения /opt/bin/sh ещё может не существовать. Поэтому мы сделали минимальную преустановку, где не требуется выполнение этих скриптов. Эмулятор opkg в прошивке только распаковывает пакеты, самого же opkg в этот момент еще не существует. Эмулятор еще в доработке, последнее, что от него сейчас требуется, это создание базы установленных пакетов по образу и подобию, как это делает opkg в /opt/usr/lib/opkg. Это поможет избежать постановку пакетов в режим hold, которые находятся в преустановочном архиве, и по мере выхода новых версии их обновлять, а так же разрулить зависимости, что бы повторно не тянуть установленные пакеты.
McMCC Posted October 6, 2015 Posted October 6, 2015 Пакеты после установки удаляются. Скрипты пока не выполняются, но это можно (и нужно) обсудить. Для преинсталяции это совершенно лишнее, тот минимальный набор пакетов, что мы определили для установки, не требуют этого.
ndm Posted October 6, 2015 Posted October 6, 2015 /opt/install как раз и нужен, чтобы поставить минимальный набор утилит для начала работы. В этот момент скрипты не нужны. Затем, имея настоящий /opt/bin/sh и настоящий /opt/bin/opkg, будут ставиться пакеты со скриптами, и установкой будет заниматься /opt/bin/opkg, а не компонент прошивки. Можете привести несколько примеров пакетов с pre- и post-install скриптами для понимания?
Александр Рыжов Posted October 6, 2015 Author Posted October 6, 2015 /opt/install как раз и нужен, чтобы поставить минимальный набор утилит для начала работы. В этот момент скрипты не нужны. Затем, имея настоящий /opt/bin/sh и настоящий /opt/bin/opkg, будут ставиться пакеты со скриптами, и установкой будет заниматься /opt/bin/opkg, а не компонент прошивки.Можете привести несколько примеров пакетов с pre- и post-install скриптами для понимания? Примеры из моих пакетов: раз, два, три. Раз у /opt/install цель — установить окружение для работы, то теоретически может понадобиться и /opt/bin/sh. Это можно учесть в зависимостях пакета, если, конечно, при установке из /opt/install эти зависимости будут учитываться. Если зависимости не будут учитываться, что хорошо бы распаковывать пакеты из /opt/install в алфавитном порядке, тогда зависимости можно будет соблюсти, назвав пакеты 00utility1.ipk, 02utility1.ipk и т.д.
McMCC Posted October 6, 2015 Posted October 6, 2015 Основная не стыковка в том, что /bin/sh требует окружения, которого нет в NDMS, так какой смысл выполнять скрипты из пакетов, если системы как таковой еще нет? Мы предложили минимальный набор пакетов, это наиболее правильное решение, которое создаст нужную среду, в том числе и для opkg. Приоритеты установки по алфавиту, это костыльное и грубое решение, так делать нельзя. Все пакеты должны обновляться, я понимаю, что в первоначальной установке Entware это не учтено, у нас пока тоже, но как только сделаем базу opkg с info, все будет как надо.
Александр Рыжов Posted October 6, 2015 Author Posted October 6, 2015 Все пакеты должны обновляться, я понимаю, что в первоначальной установке Entware это не учтено, у нас пока тоже, но как только сделаем базу opkg с info, все будет как надо.В смысле? Т.е. при выполнении opkg upgrade должны обновляться в т.ч. те пакеты, которые были распакованы из /opt/install?Про Entware пока речь не заходила, но там не в пакетах только сам статический бинарник opkg. Это сделано умышлено, для того, чтобы он остался работоспособен даже в том случае, если остальная система в руинах. Кстати, сто́ит ли мне сделать такой html-индекс для keenopt для облегчения навигации по пакетам? Чуть позже сделаю на своих мощностях, посмотрим насколько будет полезен.
McMCC Posted October 6, 2015 Posted October 6, 2015 В смысле? Т.е. при выполнении opkg upgrade должны обновляться в т.ч. те пакеты, которые были распакованы из /opt/install? Совершенно верно, те же uclibc обновить или base-files к примеру...
McMCC Posted October 6, 2015 Posted October 6, 2015 Кстати, сто́ит ли мне сделать такой html-индекс для keenopt для облегчения навигации по пакетам? Чуть позже сделаю на своих мощностях, посмотрим насколько будет полезен. Если не обременит, то наверное стоит, хотя бы для того, что бы посмотреть список пакетов для установки или скачать индивидуально интересующий пакет.
ndm Posted October 7, 2015 Posted October 7, 2015 Можете привести несколько примеров пакетов с pre- и post-install скриптами для понимания? Примеры из моих пакетов: раз, два, три. Такие скрипты будут работать. Проблемы возникнут, например, с добавлением пользователей или групп, т.к. /etc/passwd и /etc/group управляется через NDMS.
Александр Рыжов Posted October 7, 2015 Author Posted October 7, 2015 Т.е. при выполнении opkg upgrade должны обновляться в т.ч. те пакеты, которые были распакованы из /opt/install?Совершенно верно, те же uclibc обновить или base-files к примеру...Тогда наиболее логичный путь — это установка первым делом полноценного opkg. И не надо будет обременять "эмулятор" opkg всеми функциями настоящего (в части, записью статусов распакованных пакетов в /opt/lib/opkg/status), и будет возможность обновлять в т.ч. базовые файлы и uclibc-библиотеки.
Александр Рыжов Posted October 12, 2015 Author Posted October 12, 2015 Кстати, сто́ит ли мне сделать html-индекс для keenopt для облегчения навигации по пакетам? Чуть позже сделаю на своих мощностях, посмотрим насколько будет полезен.Если не обременит, то наверное стоит, хотя бы для того, что бы посмотреть список пакетов для установки или скачать индивидуально интересующий пакет.Готово.https://www.ryzhov-al.ru/keenopt_index/ Обновляется раз в сутки.
Александр Рыжов Posted October 12, 2015 Author Posted October 12, 2015 Правильно ли я понимаю то, что пакеты, положенные в папку /opt/install будут распаковываться при каждой загрузке роутера…?Пакеты после установки удаляются…Используется ли /tmp при распаковки этих пакетов? Т.е. не исчерпаю ли я всю RAM, если положу внутрь /opt/install/package.ipk DVD-фильм?Спрашиваю потому, что хочу подготовить для кинетиков пакет с chroot-средой Debian. Ultra II, в частности, удовлетворяет минимальным требованиям, а схожий пакет предыдущей версии был востребован ранее пользователями других роутеров. Пакет в сжатом виде получится ~40МБ.
ndm Posted October 12, 2015 Posted October 12, 2015 Используется ли /tmp при распаковки этих пакетов? Т.е. не исчерпаю ли я всю RAM, если положу внутрь /opt/install/package.ipk DVD-фильм? Нет, tar.gz любой вложенности позволяет распаковывать в потоке, не используя промежуточный каталог.
Александр Рыжов Posted October 24, 2015 Author Posted October 24, 2015 Спрашиваю потому, что хочу подготовить для кинетиков пакет с chroot-средой Debian. McMCC, Дебиана не будет до тех пор, пока прошивка собрана с soft-float.
McMCC Posted October 24, 2015 Posted October 24, 2015 McMCC, Дебиана не будет до тех пор, пока прошивка собрана с soft-float. Не верная трактовка, я по-моему все объяснил, вам нужен FPU эмулятор в ядре, а как собрана прошивка совершенно не важно... 1
Recommended Posts