Jump to content

Учёт префикса /opt в NDM Systems Buildroot


Recommended Posts

Насколько понимаю, сейчас среда NDM Systems Buildroot сделана так, чтобы как можно меньше отличаться от OpenWrt Buildroot. Пакеты конфигурируются, компилируются и пакуются без упоминания префикса /opt, что позволяет использовать Makefile'ы OpenWrt'шных пакетов без какой-либо модификации, а для распаковки на роутере в конфиге opkg.conf указывается опция dest root /opt. В частности, вижу в билдруте NDM:

$ cat include/package-defaults.mk
...
CONFIGURE_PREFIX:=/usr
CONFIGURE_ARGS = \
               --target=$(GNU_TARGET_NAME) \
               --host=$(GNU_TARGET_NAME) \
               --build=$(GNU_HOST_NAME) \
               --program-prefix="" \
               --program-suffix="" \
               --prefix=$(CONFIGURE_PREFIX) \
               --exec-prefix=$(CONFIGURE_PREFIX) \
               --bindir=$(CONFIGURE_PREFIX)/bin \
               --sbindir=$(CONFIGURE_PREFIX)/sbin \
               --libexecdir=$(CONFIGURE_PREFIX)/lib \
               --sysconfdir=/etc \
               --datadir=$(CONFIGURE_PREFIX)/share \
               --localstatedir=/var \
               --mandir=$(CONFIGURE_PREFIX)/man \
               --infodir=$(CONFIGURE_PREFIX)/info \
               $(DISABLE_NLS) \
               $(DISABLE_LARGEFILE) \
               $(DISABLE_IPV6)
 

Получается, что пакеты, которые конфигурируются с помощью GNU Build System (половина, а то и большинство) получат в своих бинарниках hardcoded-пути: /etc для поиска своих конфигов, /var — для сохранения временных данных, /usr/share для поиска данных и т.п., что неправильно.

Правильный вариант кроме указания корректных опций конфигурирования потребует соответсвующего изменения Makefile'ов пакетов, что значительно более трудоёмкая задача.

Первый путь был выбран исходя из перечисленных доводов? Не будет ли это нарушение FHS выглядеть коряво?

Здесь лежат все необходимые правки билдрута, если будет выбран «правильный» путь. С пакетами, повторюсь, придётся повозиться отдельно.

Link to comment
Share on other sites

Все это переделывается на /opt по мере отладки, то только в Makefile самих пакетов. Собственно, это ничем не отличается от вашего варианта.

Link to comment
Share on other sites

Как я пока что понимаю, несмотря на присутствие в base-files скриптов /lib/functions, OpenWrt'шный механизм не будет использоваться ни для конфигурирования пакетов, ни для запуска сервисов, т.к. для запуска выбрана NSLU-like схема /opt/etc/init.d/Sxx. Соответсвенно, Makefile'ы для половины пакетов всё равно придётся править, хотя бы ради добаваления скриптов запуска.

Link to comment
Share on other sites

Ориентироваться на то, что у нас сейчас есть, не нужно. У нас сейчас совсем сырая голая система, в которой пока нормально работает busybox и mc, все остальное нужно допиливать. Есть 2-а варианта установки, через chroot, что предполагалось изначально, поэтому вы не видите /opt во многих пакетах, и в сам /opt напрямую, что сейчас мы пытаемся сделать. У нас с вами разное видение, мы хотим Keenopt приобщить к общему использованию ресурсов с прошивкой, а у вас Entware живет отдельно своей полноценной жизнью. Ничего плохого в этом нет, все зависит от поставленных задач...

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...