День добрый! Всё делал по статье FreeBSD + Apache + Squid + SquidGuard.Поставил libtool и BerkeleyDB.3.2. Но при сборке squidGuard вылетают такие ошибки:
[root@ns squidGuard-1.2.0]# make
making all in squidGuard-1.2.0
make[1]: Entering directory `/guard/squidGuard-1.2.0/src'
making all in src
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c main.c
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgLog.c
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgDb.c
sgDb.c: In function `sgDbInit':
sgDb.c:101: warning: passing arg 2 of pointer to function from incompatible pointer type
sgDb.c:101: warning: passing arg 4 of pointer to function makes pointer from integer without a cast
sgDb.c:101: error: too few arguments to function
sgDb.c:107: warning: passing arg 2 of pointer to function from incompatible pointer type
sgDb.c:107: warning: passing arg 4 of pointer to function makes pointer from integer without a cast
sgDb.c:107: error: too few arguments to function
make[1]: *** [sgDb.o] пЫЙВЛБ 1
make[1]: Leaving directory `/guard/squidGuard-1.2.0/src'
make: *** [all] пЫЙВЛБ 1
[root@ns squidGuard-1.2.0]#Всё перебрал. Ваш форум облазил но ничего не помогает. пробовал менять версию BerkeleyDB и Libtool но результат тотже. Подскажите пожалуста что я делаю не так?
>День добрый! Всё делал по статье FreeBSD + Apache + Squid +
>SquidGuard.Поставил libtool и BerkeleyDB.3.2. Но при сборке squidGuard вылетают такие ошибки:
>
>[root@ns squidGuard-1.2.0]# make
>making all in squidGuard-1.2.0
>make[1]: Entering directory `/guard/squidGuard-1.2.0/src'
>making all in src
>gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c main.c
>gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgLog.c
>gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgDb.c
>sgDb.c: In function `sgDbInit':
>sgDb.c:101: warning: passing arg 2 of pointer to function from incompatible pointer
>type
>sgDb.c:101: warning: passing arg 4 of pointer to function makes pointer from
>integer without a cast
>sgDb.c:101: error: too few arguments to function
>sgDb.c:107: warning: passing arg 2 of pointer to function from incompatible pointer
>type
>sgDb.c:107: warning: passing arg 4 of pointer to function makes pointer from
>integer without a cast
>sgDb.c:107: error: too few arguments to function
>make[1]: *** [sgDb.o] пЫЙВЛБ 1
>make[1]: Leaving directory `/guard/squidGuard-1.2.0/src'
>make: *** [all] пЫЙВЛБ 1
>[root@ns squidGuard-1.2.0]#
>
>Всё перебрал. Ваш форум облазил но ничего не помогает. пробовал менять версию
>BerkeleyDB и Libtool но результат тотже. Подскажите пожалуста что я делаю
>не так?
Все подобные проблемы я решаю установкой на чистый, недавно установленный FreeBSD, желательно последней версии, пакеты ставлю из портов. С одной стороны это неправильно, но с другой слишком тяжело в гору подниматься ;-)
У меня FedoreCore3. Да и даже если ставить из портов всё равно он должен запросить этот самый BerkleyDB. А подсказать никто не могёт что сделать чтобтрабла исчезла?
>У меня FedoreCore3. Да и даже если ставить из портов всё равно
>он должен запросить этот самый BerkleyDB. А подсказать никто не могёт
>что сделать чтобтрабла исчезла?Уволить нафик SquidGuard, и поставить хотя-бы режик. Тот правда тоже со своими закидонами, но по крайней мере работает. А что касается сквидгада, то, во первых, проект заброшен хрен знает скока времени. Во вторых, разработчики в последней версии (1.2.0) ухитрились искурочить работу с базой, и работает нормально только версия 1.1.4 (которой на сайте нету кстати). В третьих, работает все это чудо только с дремучей версией BerkleyDB 2.7.7. На сайте разработчиков утверждается, что работает и с 3.2.9, но я как-то в это не верю. Лично мне не удалось добиться работоспособности SquidGuard 1.2.0 с BerkleyDB при любом раскладе. SquidGuard базу создает, инитит, правила парсит и туда складывает, докладывает радостно что все путем, а при следующем запуске говорит что мол "нет ни одного правила, я все проскипал".
Если уж сильно хочется кувыркаться со squidguard то собирай его без поддержки berkley db вовсе.
Спасибо за толковое обьяснение. Буду реджик ставить.
>Спасибо за толковое обьяснение. Буду реджик ставить.
http://linuxbox.com/tiki/tiki-index.php?page=squidGuard
И проблем нет. 4 верися DB работает.
>> А подсказать никто не могёт
>>что сделать чтобтрабла исчезла?
конечно можно.см.ниже :-))..и траблы небудет>Уволить нафик SquidGuard, и поставить хотя-бы режик. Тот правда тоже со >своими закидонами, но по крайней мере работает.
себя лучше уволь, сквид гуарда очень хороший и гибкий синтаксиси настройки>А что касается сквидгада, то, во первых, проект заброшен хрен знает скока >времени. Во вторых, разработчики
>в последней версии (1.2.0) ухитрились искурочить работу с базой, и работает нормально все там , просто он свои функции выполняет больше ни чего туда и не надо..>нормально только версия 1.1.4 (которой на сайте нету кстати). В третьих,
>работает все это чудо только с дремучей версией BerkleyDB 2.7.7. На
>сайте разработчиков утверждается, что работает и с 3.2.9, но я как-то
>в это не верю.
зря не веришь...все отлично пашет и с 4.1.25...:-)))>Если уж сильно хочется кувыркаться со squidguard то собирай его без поддержки
>berkley db вовсе.
не слушай плохих советов..енто будет тормоз перестройки...+++ squidGuard-1.2.0/src/sgDb.c
@@ -98,7 +98,7 @@
if(createdb)
flag = flag | DB_TRUNCATE;
if ((ret =
-#if DB_VERSION_MINOR == 1
+#if DB_VERSION_MINOR == 1 || DB_VERSION_MINOR == 2
Db->dbp->open(Db->dbp, NULL, dbfile, NULL, DB_BTREE, flag, 0664)) != 0) {
#else
Db->dbp->open(Db->dbp, dbfile, NULL, DB_BTREE, flag, 0664)) != 0) {
@@ -108,7 +108,7 @@
}
} else {
if ((ret =
-#if DB_VERSION_MINOR == 1
+#if DB_VERSION_MINOR == 1 || DB_VERSION_MINOR == 2
Db->dbp->open(Db->dbp, NULL, dbfile, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
#else
Db->dbp->open(Db->dbp, dbfile, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {