opkg - полезные советы

Используем пакеты, расширяющие возможности оборудования
kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 31 мар 2019, 13:42

Александр Рыжов, Zyxmon, ну можно же тогда скомпилить opkg с линкером в /opt/libexec/opkg/. Линкер же скомпилить с lib-путями в той же директории (или просто rpath выставить в opkg). Туда же поместить все нужные библиотеки. И не плохо бы там иметь там свой resolv.conf, хе-хе. Там же динамический busybox с тем же линкером с апплетами wget, gzip и прочим необходимым. Все эти файлы пакуются в пакет opkg. Размер не сильно больше будет, если все статично было бы скомпилено, может быть даже меньше.

Аватара пользователя
Александр Рыжов
Сообщения: 401
Зарегистрирован: 12 авг 2015, 13:14
Откуда: Смоленск

Сообщение Александр Рыжов » 31 мар 2019, 18:31

kaztost писал(а):Источник цитаты ну можно же тогда скомпилить opkg с линкером в /opt/libexec/opkg/.

Чувствуете как всё больше и больше появляется костылей по мере рассуждения?

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 31 мар 2019, 19:05

Александр Рыжов, почему смена линкера костыль? Тогда и Entware костыль. Эта статическая компоновка opkg если не костыль, то просто ненужное телодвижение, тем более glibc статику не всегда любит. Все равно же wget и gzip нужно также иметь независимыми.То есть опять прикручивать туда те же libc-функции. Кроме того, статика полезна, когда бинарь работает без конфигов. А opkg конфиг требует, то есть все равно надо файлы из пакета раскидывать по нужным путям. Просто побольше файлов будет таких.

Аватара пользователя
Александр Рыжов
Сообщения: 401
Зарегистрирован: 12 авг 2015, 13:14
Откуда: Смоленск

Сообщение Александр Рыжов » 31 мар 2019, 19:27

kaztost писал(а):Источник цитаты Кроме того, статика полезна, когда бинарь работает без конфигов.

Дальше читать не стал.

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 31 мар 2019, 20:08

Александр Рыжов писал(а):Источник цитаты Дальше читать не стал.
Вы всегда с конца читаете? И по-хамски почему отвечаете?

Если один супермодератор обращается так к другому супермодератору, то минимум один лишний. А поскольку один из них - активный разработчик Entware, причем реально много, что делает, то понятно кто есть who.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1711
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 31 мар 2019, 22:34

Господа - не надо ссорится. Нужно всегда быть _вежливыми_. Если по делу, то конфиг файл не нужен, все что там есть, прежде всего url репозитория, передается через командную строку. Конечно хорошо бы иметь статически собранный opkg, которому не нужны внешние бинарники, со встроенной качалкой (в опциях сборки можно было??? подключить libcurl и избавится от wget, gzip думаю интегрировать не так уж и сложно.....
Проблема в том, что имеются минимум несколько десятков тысяч пользователей Entware. Наша возможная ошибка с opkg или другим базовым компонентом очень дорого будет стоить. Нужно все 1000 раз продумать, и если и переделывать, то тестировать, тестировать и тестировать. На всех системах, включая Android.

Аватара пользователя
Александр Рыжов
Сообщения: 401
Зарегистрирован: 12 авг 2015, 13:14
Откуда: Смоленск

Сообщение Александр Рыжов » 01 апр 2019, 00:17

Совершенно верно.
kaztost, ситуация с opkg куда сложнее, чем сперва кажется. Эту цепь рассуждений мы проходили неоднократно.
Изначально opkg проектировался для нахождения в составе прошивки с вполне прогнозируемым окружением. А это не наш случай.

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 01 апр 2019, 11:57

Zyxmon, насчет конфига возможно был не точен, я opkg редко пользуюсь. Да и /etc/resolv.conf для меня тоже важный "конфиг".

Но смысл в другом: дополнительные файлы не зазорно же в пакет opkg запихнуть.Так зачем пытаться впихать в бинарь невпихуемое или трудно впихуемое? Пути к embedded бинарям wget и gzip захардкодить. Пути к библиотекам через rpath указать, свой линкер тоже запихать в пакет и вписать его в бинари opkg, wget и gzip. Просто же, ключи gcc позволяют это сделать.

Получится абсолютно независимый opkg. Причем сама логика opkg не пострадает. А если вживлять wget в opkg - вероятность получения старых граблей с wget немаленькая.

Можно потом потихоньку начать выкидывать из embedded glibc все ненужные функции, но выкидывать - не вставлять, логика опять не пострадает, если бинари будут успешно линковаться. Ну и /etc/resolv.conf можно в opkg своим сделать, чтобы вообще от системы не зависеть.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1711
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 01 апр 2019, 13:57

Некоторые пути развития opkg мы обсуждали. В принципе все правильно, только свой линкер не планировали.

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 01 апр 2019, 15:30

Zyxmon писал(а):Источник цитаты только свой линкер не планировал

по большому счету можно и не делать отдельный - в glibc он маленький и от него много не зависит. Но зато свой линкер можно кастрировать на предмет LD_LIBRARY_PATH и LD_PRELOAD, чтобы не было неожиданностей.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 1 посетитель :: 0 зарегистрированных, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость