Jump to content

Начальная установка и post/pre-inst


Recommended Posts

Правильно ли я понимаю то, что пакеты, положенные в папку /opt/install будут распаковываться при каждой загрузке роутера, причём post/pre-inst скрипты в пакетах выполняться не будут?

Link to comment
Share on other sites

Правильно ли я понимаю то, что пакеты, положенные в папку /opt/install будут распаковываться при каждой загрузке роутера, причём post/pre-inst скрипты в пакетах выполняться не будут?

Пакеты после установки удаляются. Скрипты пока не выполняются, но это можно (и нужно) обсудить.

Link to comment
Share on other sites

Пакеты после установки удаляются. Скрипты пока не выполняются, но это можно (и нужно) обсудить.
Пока просто вожу руками в воздухе. Если удастся получить девайс на тест, то внесу посильный вклад.

Первая засада с выполнением post/pre-inst скриптов видится в том, что они представляют собой shell-скрипты, начинающиеся shebang'ом #!/bin/sh и к моменту их выполнения /opt/bin/sh ещё может не существовать.

Link to comment
Share on other sites

Первая засада с выполнением post/pre-inst скриптов видится в том, что они представляют собой shell-скрипты, начинающиеся shebang'ом #!/bin/sh и к моменту их выполнения /opt/bin/sh ещё может не существовать.

Поэтому мы сделали минимальную преустановку, где не требуется выполнение этих скриптов. Эмулятор opkg в прошивке только распаковывает пакеты, самого же opkg в этот момент еще не существует. Эмулятор еще в доработке, последнее, что от него сейчас требуется, это создание базы установленных пакетов по образу и подобию, как это делает opkg в /opt/usr/lib/opkg. Это поможет избежать постановку пакетов в режим hold, которые находятся в преустановочном архиве, и по мере выхода новых версии их обновлять, а так же разрулить зависимости, что бы повторно не тянуть установленные пакеты.

Link to comment
Share on other sites

Пакеты после установки удаляются. Скрипты пока не выполняются, но это можно (и нужно) обсудить.

Для преинсталяции это совершенно лишнее, тот минимальный набор пакетов, что мы определили для установки, не требуют этого.

Link to comment
Share on other sites

/opt/install как раз и нужен, чтобы поставить минимальный набор утилит для начала работы. В этот момент скрипты не нужны. Затем, имея настоящий /opt/bin/sh и настоящий /opt/bin/opkg, будут ставиться пакеты со скриптами, и установкой будет заниматься /opt/bin/opkg, а не компонент прошивки.

Можете привести несколько примеров пакетов с pre- и post-install скриптами для понимания?

Link to comment
Share on other sites

/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 и т.д.

Link to comment
Share on other sites

Основная не стыковка в том, что /bin/sh требует окружения, которого нет в NDMS, так какой смысл выполнять скрипты из пакетов, если системы как таковой еще нет? Мы предложили минимальный набор пакетов, это наиболее правильное решение, которое создаст нужную среду, в том числе и для opkg. Приоритеты установки по алфавиту, это костыльное и грубое решение, так делать нельзя. Все пакеты должны обновляться, я понимаю, что в первоначальной установке Entware это не учтено, у нас пока тоже, но как только сделаем базу opkg с info, все будет как надо.

Link to comment
Share on other sites

Все пакеты должны обновляться, я понимаю, что в первоначальной установке Entware это не учтено, у нас пока тоже, но как только сделаем базу opkg с info, все будет как надо.
В смысле? Т.е. при выполнении opkg upgrade должны обновляться в т.ч. те пакеты, которые были распакованы из /opt/install?

Про Entware пока речь не заходила, но там не в пакетах только сам статический бинарник opkg. Это сделано умышлено, для того, чтобы он остался работоспособен даже в том случае, если остальная система в руинах.

Кстати, сто́ит ли мне сделать такой html-индекс для keenopt для облегчения навигации по пакетам? Чуть позже сделаю на своих мощностях, посмотрим насколько будет полезен.

Link to comment
Share on other sites

В смысле? Т.е. при выполнении opkg upgrade должны обновляться в т.ч. те пакеты, которые были распакованы из /opt/install?

Совершенно верно, те же uclibc обновить или base-files к примеру...

Link to comment
Share on other sites

Кстати, сто́ит ли мне сделать такой html-индекс для keenopt для облегчения навигации по пакетам? Чуть позже сделаю на своих мощностях, посмотрим насколько будет полезен.

Если не обременит, то наверное стоит, хотя бы для того, что бы посмотреть список пакетов для установки или скачать индивидуально интересующий пакет.

Link to comment
Share on other sites

Можете привести несколько примеров пакетов с pre- и post-install скриптами для понимания?

Примеры из моих пакетов: раз, два, три.

Такие скрипты будут работать. Проблемы возникнут, например, с добавлением пользователей или групп, т.к. /etc/passwd и /etc/group управляется через NDMS.

Link to comment
Share on other sites

Т.е. при выполнении opkg upgrade должны обновляться в т.ч. те пакеты, которые были распакованы из /opt/install?
Совершенно верно, те же uclibc обновить или base-files к примеру...
Тогда наиболее логичный путь — это установка первым делом полноценного opkg. И не надо будет обременять "эмулятор" opkg всеми функциями настоящего (в части, записью статусов распакованных пакетов в /opt/lib/opkg/status), и будет возможность обновлять в т.ч. базовые файлы и uclibc-библиотеки.
Link to comment
Share on other sites

Кстати, сто́ит ли мне сделать html-индекс для keenopt для облегчения навигации по пакетам? Чуть позже сделаю на своих мощностях, посмотрим насколько будет полезен.
Если не обременит, то наверное стоит, хотя бы для того, что бы посмотреть список пакетов для установки или скачать индивидуально интересующий пакет.
Готово.

https://www.ryzhov-al.ru/keenopt_index/

Обновляется раз в сутки.

Link to comment
Share on other sites

Правильно ли я понимаю то, что пакеты, положенные в папку /opt/install будут распаковываться при каждой загрузке роутера…?
Пакеты после установки удаляются…
Используется ли /tmp при распаковки этих пакетов? Т.е. не исчерпаю ли я всю RAM, если положу внутрь /opt/install/package.ipk DVD-фильм?

Спрашиваю потому, что хочу подготовить для кинетиков пакет с chroot-средой Debian. Ultra II, в частности, удовлетворяет минимальным требованиям, а схожий пакет предыдущей версии был востребован ранее пользователями других роутеров.

Пакет в сжатом виде получится ~40МБ.

Link to comment
Share on other sites

Используется ли /tmp при распаковки этих пакетов? Т.е. не исчерпаю ли я всю RAM, если положу внутрь /opt/install/package.ipk DVD-фильм?

Нет, tar.gz любой вложенности позволяет распаковывать в потоке, не используя промежуточный каталог.

Link to comment
Share on other sites

  • 2 weeks later...
McMCC, Дебиана не будет до тех пор, пока прошивка собрана с soft-float.

Не верная трактовка, я по-моему все объяснил, вам нужен FPU эмулятор в ядре, а как собрана прошивка совершенно не важно...

  • Thanks 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...