Содержание |
При попытке обновить clamav получаю ошибку:
../libclamav/.libs/libclamav.so: undefined reference to `gethostbyname_r' *** Error code 1
Решение найдено тут:
cd /usr/ports/security/clamav change in Makefile --enable-gethostbyname_r \ to --disable-gethostbyname_r \
При обновлении вывалилась ошибка сборки gio-fam-backend
/usr/bin/ld: cannot find -lgio-2.0 gmake: *** [libgiofam.la] Ошибка 1 *** Error code 2
Решение отсюда: пересобрать порт /usr/ports/devel/glib20 (что то много он там собирает...)
Для установки расширения php5-mysqli на FreeBSD нужно пересобрать PHP. Для этого в /usr/ports/lang/php5/Makefile нужно добавить
--with-mysqli=/usr/local/bin/mysql_config
к переменной CONFIGURE_ARGS (почти в самом начале файла). Затем собрать и заново установить PHP (версия 5.2.11 и более ранние).
При вызове функции imagecreatefrompng() PHP5.2 и PHP5.3 вываливается в кору. Пример:
$ php -r "imagecreatefrompng('/usr/local/www/apache22/icons/blank.png');" Abort trap: 6 (core dumped)
Помогло принудительное обновление/пересборка png зависимых от него:
$ sudo portupgrade -rf png
Ну не собрался у меня Sablotron, который используется в этом модуле. Вылетает с ошибкой несоответствия типов при компиляции. Как несколько лет назад, на версии 6.1 32-bit, так и на свежей 8.1 66-bit. И в том, и в другом случае установка из пакета.
Скачиваем пакет для 32-битной версии:
$ fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-stable/All/Sablot-1.0.3.tbz
Или для 64-битной:
$ fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-stable/All/Sablot-1.0.3.tbz
И устанавливаем:
$ sudo pkg_add Sablot-1.0.3.tbz
Версии 5.3.3_4 и 5.3.4 не собираются, вываливаясь с ошибкой warning: passing argument 4 of 'add_assoc_string_ex' discards qualifiers from pointer target type
Решение отсюда: в файле /usr/ports/databases/php5-pdo_mysql/work/php-5.3.4/ext/pdo_mysql/mysql_statement.c заменяем в 134 (для версии 5.3.4) строке
#ifdef HAVE_MYSQL_STMT_PREPARE
на
#ifndef PDO_USE_MYSQLND
Удаляем файл /usr/ports/databases/php5-pdo_mysql/work/.configure_done.php5._usr_local и собираем и устанавливаем ручками: make && make deinstall && make install clean
Столкнулся на FreeBSD 6.1 в процессе обновления графических приблуд. При стандартной установке Image::Magick через perl -MCPAN -e shell сборка вылетает с ошибкой cc1: error: unrecognized command line option "-fopenmp". Гугление с текстом данной ошибки не дало результатов, однако, поиск по фразам вроде FreeBSD Image::Magick install вывел на эту страничку. Способ сработал, потому продублирую здесь.
Сначала устанавливаем ImageMagick:
$ cd /usr/ports/graphics/ImageMagick $ sudo make install
Копируем директорию с файлами PerlMagick в свою домашнюю чтоб далее работать там:
$ cp -r work/ImageMagick-6.5.8-10/PerlMagick/ ~/perlmagick $ cd ~/perlmagick/
Делаем резервную копию файла Makefile.PL
$ cp Makefile.PL Makefile.PL~
Правим Makefile.PL, добавляя правильные пути к библиотекам и к ImageMagick. Очевидно, Makefile.PL меняется от версии к версии (здесь пример с ImageMagick-nox11-6.5.8.10_1), потому пришлось поискать нужные строки, номера и содержимое которых несколько отличаются от статьи по ссылке (ссылка выше). Исправления выглядят так:
$ diff Makefile.PL Makefile.PL~ 141,142c141,142 < my $INC_magick = '-I/usr/local/include/ImageMagick -I../ -I.. -I/usr/local/include/graphviz -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick"'; < my $LIBS_magick = '-L/usr/local/lib -L../magick/.libs -lMagickCore -lperl -lm'; --- > my $INC_magick = '-I../ -I.. -I/usr/local/include/graphviz -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick"'; > my $LIBS_magick = '-L../magick/.libs -lMagickCore -lperl -lm';
Делаем Makefile:
$ perl Makefile.PL
Если всё нормально, получим сообщение
Writing Makefile for Image::Magick
Далее собираем и устанавливаем:
$ make $ sudo make install
Когда установка пройдёт нормально, прибираемся:
$ cd - $ sudo make clean $ cd $ rm -rf perlmagick
Перенесено сюда.
После обновления Апача в связке Apache + suexec + fastcgi перестали работать скрипты PHP. Браузер висит долго, в логах ошибки такого вида:
httpd-error.log
FastCGI: (dynamic) server "/usr/home/ase/www/cgi-bin/php.sh" (pid 37367) terminated by calling exit with status '0'
httpd-suexec.log
cannot get docroot information (/usr/local/www/data)
Но... указанной директории /usr/local/www/data у нас нет, сайты юзеров живут в /home.
В файл /usr/ports/www/apache22/Makefile добавляем строку:
SUEXEC_DOCROOT=/home
И заново перекомпилируем/переустанавливаем Апача
# portupgrade -f apache