2015-12-09 3 views
2

Я пытаюсь отладить Makefile, который по номиналу вызывает сценарий, пытающийся сделать chroot в какой-то каталог. Затем он также выполняет команду env.Синтаксис Chroot в Makefile

BCMD= bash 

CMD= "/build/toolcrib/prepare_final_tree >crumbs/Final-prep.out 2>&1" 

${BCMD} -c "chroot /home/user/Smoothwall/bcutm/distrib /tools/bin/env -i ${CMD}" 

Я понимаю, что это chrooting в указанный каталог. Что он делает с env -i ${CMD}, как одна команда с chroot.

После выполнения этой команды он не находит команду /tools/bin/env.

+0

Подготовить 'pwd' в' CMD' определение –

+0

Как? вы можете объяснить, пожалуйста .. где здесь участвует PWD? – Haswell

+1

Я бы много волновался о make-файле, пытающемся использовать 'chroot'; Я бы не использовал его. –

ответ

2

Похоже, что /tools/bin/env не установлен правильно в вашем chroot. Он может отсутствовать или некоторые из его зависимостей могут отсутствовать.

Возможно, у chroot есть /usr/bin/env, который вы могли бы использовать вместо этого.

Вы могли бы быть в состоянии найти то, что другие файлы отсутствуют для env работать, запустив ldd снаружи изолированной:

ldd /home/user/Smoothwall/bcutm/distrib/tools/bin/env 

Однако это может быть лучше, чтобы правильно установить coreutils в вашей изолированной.

+0

/tools/bin/содержит env, я скопирован из моего (не chrooted)/usr/bin/env. – Haswell

+0

Каков точный вывод 'chroot/home/user/Smoothwall/bcutm/distrib/tools/bin/env' и' ls -l/home/user/Smoothwall/bcutm/distrib/tools/bin/env'? – AtnNn

+0

1. chroot: не удалось запустить команду '/ tools/bin/env': нет такого файла или каталога 2. '-rwxr-xr-x 1 корень root 26308 Dec 8 17:27/home/user/Smoothwall/bcutm/distrib/tools/bin/env' – Haswell