Summary: | не отрабатывается installkernel при make install при пересборке ядра | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> | ||||
Component: | bootloader-utils | Assignee: | placeholder <placeholder> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P2 | CC: | at, boyarsh, glebfm, ldv, placeholder, sem, slazav, vitty, vt | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Sergey Y. Afonin
2004-07-16 12:59:40 MSD
А при чём тут make? А кто вызывает installkernel, когда отрабатывается make install ? Мне кажется, что все дело в том, с какими параметрами окружения installkernel вызывается в этот момент. Иначе почему он правильно работает, когда сам по себе с теми же параметрами вызывается просто от рута ? Всмысле, perl находит или не находит ? Например, окружение могло поменяться. Так а я про что ? Когда installkernel сам по себе из баша запускается, окружение нормальное, а как из-под make, так что-то не так... Скорее всего, так оно и есть... Вот только надо крайнего найти. Created attachment 614 [details]
Proposed patch against/sbin/installkernel
Это ошибка в /sbin/installkernel. Корневый Makefile в ядре устанавливает
переменную PERL следующим образом:
PERL = perl
В новом /sbin/installkernel делается следующая проверка:
if [ ! -x "$PERL" ]; then
echo "$0: warning: $PERL not available; supposed to run manually..."
PERL="echo $PERL"
fi
Предлагаемый патч -- в attachment.
Предлагаемый патч, конечно, не годится, поскольку вводит дополнительную зависимость на which(1), но идея правильная. Вообще, если есть зависимость на Perl, мне кажется, что все остальное уже не сильно существенно... Ну, будет еще и на which. По хорошему, вообще не стоило от bash уходить, но если ушли, что уж теперь... Или я что-то еще не понимаю ? Может быть тогда так? --- installkernel.old 2004-08-17 06:08:27 +0400 +++ installkernel 2004-10-25 14:29:52 +0400 @@ -90,12 +90,14 @@ : ${LILO_CONF:=/etc/lilo.conf} : ${GRUB_MENU_LST:=$BOOTDIR/grub/menu.lst} : ${GRUB_DEVICE_MAP:=$BOOTDIR/grub/device.map} -: ${PERL:=/usr/bin/perl} : ${LILO:=/sbin/lilo} : ${DETECTLOADER:=/usr/sbin/detectloader} : ${SHARFILE:=/usr/share/loader} # check perl +if [ -z "$PERL" -o ! -x "$PERL" ]; then + PERL=/usr/bin/perl +fi if [ ! -x "$PERL" ]; then echo "$0: warning: $PERL not available; supposed to run manually..." PERL="echo $PERL" Приложил в 0.3.1-alt1.1 как NMU. Предлагаю более хорошее исправление, которое сводится к этому: -if [ ! -x "$PERL" ]; then +if [ ! -x "$PERL" ] && ! type "$PERL" >/dev/null 2>&1; then и соответственно расквотить "$PERL" чтобы PERL="echo perl" работало |