10 нояб. 2009 г.

Slackware. Сборка Apache Httpd 2.2.14 поверх 2.2.9

Возился долго со сборкой Apache Httpd 2.2.14 на системе под Slackware с имеющимся httpd 2.2.9. При make возникало:

log.c: In function 'piped_log_spawn':
log.c:900: error: 'piped_log' has no member named 'cmdtype'
log.c: In function 'ap_open_piped_log_ex':
log.c:1039: error: 'piped_log' has no member named 'cmdtype'
make[2]: *** [log.lo] Error 1
make[2]: Leaving directory `/home/user/install/httpd/server'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/install/httpd/server'
make: *** [all-recursive] Error 1


Поиск по форумам ничего толкового не дал. Обновление библиотек apr и apr-utils тоже.
Сделал так:
Взял последнюю команду сборщика, после которой он выходил с сообщением об ошибке. Посмотрел подозрительные пути в параметре -I (указание на директорию, в которой нужно искать необходимые для компиляции библиотеки), увидел там старую директорию include. Попробовал ее заменить на новую и библиотека log.c скомпилировалась. Далее понял куда двигаться. Нашел все файлы в дистрибутиве httpd, в которых упоминается функция ap_open_piped_log_ex - 4 файла. Посмотрел где находятся найденные файлы *.h. Увидел, что они расположены и в старой (в уже установленном старом httpd), и в новой директориях include (в инсталляции). От старой директории избавился переименованием. Указание --includedir при ./configure тоже почему-то не помогло.

1 комментарий:

  1. Указание --includedir при ./configure не помогло, потому что make искал и в новых и в старых директориях
    Помогло бы make uninstall перед make install. Может быть :)

    ОтветитьУдалить