Как обновить мир "другу"?

Имеем серв, с него грузятся машинки, требуется обновить мир для машинок.
Имеем корневую фс для этих машинок, скажем в /netboot.

Задача:
CONFIG_PROTECT="/netboot/etc /var/bind" PORTAGE_TMPDIR="/netboot/var/tmp" PORTAGE_CONFIGROOT="/netboot" ROOT="/netboot" emerge world -NuD;

Ограничения:
нет возможности юзать chroot, так как сей процесс будет автоматизирован + будут паковаться некоторые важные каталоги на отдельный HDD серва.

Проблема:(на примере ебилда skey, действие происходит на серве)

Цитата:
CONFIG_PROTECT="/netboot/etc /var/bind" PORTAGE_TMPDIR="/netboot/var/tmp" PORTAGE_CONFIGROOT="/netboot" ROOT="/netboot" emerge world -NuDpv|grep -i skey
[ebuild N ] sys-auth/skey-1.1.5-r7 98 kB [0]

CONFIG_PROTECT="/netboot/etc /var/bind" PORTAGE_TMPDIR="/netboot/var/tmp" PORTAGE_CONFIGROOT="/netboot" ROOT="/netboot" emerge skey -Opv

These are the packages that would be merged, in order:

[ebuild R ] sys-auth/skey-1.1.5-r7 to /netboot/ 98 kB

stat /netboot/var/db/pkg/sys-auth/skey-1.1.5-r7/
File: `/netboot/var/db/pkg/sys-auth/skey-1.1.5-r7/'
Size: 824 Blocks: 1 IO Block: 4096 Каталог
Device: 302h/770d Inode: 12610209 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-02-06 05:11:23.000000000 +0500
Modify: 2009-02-06 05:11:24.000000000 +0500
Change: 2009-04-16 23:03:15.000000000 +0600
stat /var/db/pkg/sys-auth/skey-1.1.5-r7/
stat: невозможно выполнить stat для `/var/db/pkg/sys-auth/skey-1.1.5-r7/': Нет такого файла или каталога

тобишь
world не принимает /netboot/var/db/pkg, а использует /var/db/pkg
+ emerge вообще не принимает /netboot/etc/portage/, а использует /etc/portage/
+ emerge вообще не принимает /netboot/etc/make.conf, а использует /etc/make.conf
+ наверно будут проблеммы с etc-update

можно канешно сделать костыль аля

Цитата:
mount --bind /netboot/var/db/pkg /var/db/pkg; emerge ...; umount /var/db/pkg

НО,
0) не решает проблемы с make.conf
1) все-таки костыль (:

прошу помощи !

А почему бы всетаки не

А почему бы всетаки не рассмотреть chroot? имхо самое логичное что приходит в голову и чтобы не костыль. Например, создать скриптик следующего содержания:

#!/bin/bash
# монтируем proc и dev (может и лишнее, но по чертежу зато :) )
mount -t proc none /netboot/proc
mount -o bind /dev /netboot/dev
# монтируем HDD для будующего резервного копирования из под chroot
mount /dev/<HDD_для_монтирования> /netboot/<какая_нибудь_папка>
# запускаем определенный скрипт в chroot
chroot /netboot /update_world.sh
# возвращаем "как было" после выполнения нужных операций
umount /netboot
umount /netboot/dev
umount /netboot/proc

и запихнуть его в крон, а для chroot окружения - положить в /netboot еще один скриптик (update_world.sh из примера выше) в который запихиваем все потребные команды. Все просто и красиво как мне кажется.

Не удержусь от совета :) выполнение апдейта мира в автоматическом режиме - не самая хорошая идея: если что-то пойдет не так, то потом трудно будет докопаться, хотя скидывание в лог всего происходящего - как вариант защиты от непредвиденного.

chroot /netboot

chroot /netboot /bin/bash
Недопустимая инструкция

чрут не везде сработает в том то и дело.

по поводу апдеёта мира, ессно сперва апдэйт делается на полигоне, потом уже открывается ключик на апдэйт системы до "проверенной даты".

_______________________________________
грех обманывать компиляторы в субботу

А зачем тебе шэлл запускать?

А зачем тебе шэлл запускать? Ключ #!/bin/bash в скрипте запустит все за тебя, а chroot можно делать везде, просто в зависимости от запускаемого приложения в папке chroot'a должны быть соответствующие либы и экзеки, но раз у тебя в /netboot целая система то и проблем быть недолжно (если конечно она под другую архитектуру не скомпилена :), а если так - то апдейт ее с сервера это вообще целая заморочка)

По chroot почитай http://www.gentoo.ru/node/9817 может найдешь похожую ситуацию. Или опиши подробнее, что за проблема при использовании.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".