Еще в апреле пришлось обновить систему на сервере. Был замечен глюк из-за которого MySQL черезчур часто делал обращения к диску, из-за чего притормаживал всю систему. На форумах уважаемые мной люди посоветовали перейти на Freebsd 7, которая к тому времени стала RELEASE.
Обновление прошло успешно, за пару часов пересобрались ядро и мир, потом сверка конфигов. Ок. Все супер. Загрузились, нормально, проверил софт – все работает: и почта, и веб, и всякие там файерволы. С тем сервер был и оставлен. Я лишь заходил время от времени почитать логи, посмотреть бенчмарки.
Но потом пришло время обновлять и остальной софт – в PHP, Clamav и некоторых других портах portaudit показывал найденные узвимости. Взялся за PHP, пересобрал нормально. Начал обновлять до новой версии экстеншены – вот тут начались траблы. То не компилируется, то еще на этапе конфигурирования вылетает. А потом вообще начал выдавать ошибку:
Fatal error ‘Cannot allocate red zone for initial thread’ at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12), и хоть ты тресни!
Оказалось проблема в том, что линковщики пытались подрубить при сборке сразу 2 версии библиотек – старые и новые. Новые появились в системе при компиляции нового мира, а старые – я просто забыл удалить.
Что ж, делается это просто:
1
| cd /usr/src && make delete-old |
Но после удаления будьте готовы к тому, что придется пересобирать весь софт, который ссылается на эти системные библиотеки.
Для этого пригодится portuprgade, о котором я уже раньше писал:
Для тех кто не знает, объяню назначение приведенных ключей.
- -a – предписывает обновить все порты;
- -f – force – пересобирать даже те порты, для которых нет свежих версий;
- -R – рекурсивно обновлять все порты, от которых зависит обновляемый.
Так что, после введения приведенной выше команды portupgrade погружается в работу на несколько часов. У меня, например, пересборка заняла почти всю ночь. Зато утром – все стояло на своих местах, и работало как надо.
Чего и вам желаю!
Автор: Кирилл Павлюков
\\ Метки: FreeBSD, PHP, portupgrade, обновление
12 сентября 2008 в 15:38