使用旧软件包时遇到问题 - Debian jessie/Libdb

使用旧软件包时遇到问题 - Debian jessie/Libdb

我无法运行 squidguard。这是由于 berkelydb ( libdb ) 的版本所致。

这是全新安装的 Debian jessie 服务器。无 gui,只有 ssh、build-essential 等。

从源代码安装了 squid。没问题。

尝试从 apt 安装 squidgaurd。想安装 squid3,但不行。从源代码安装了 squidguard。没用。发现用户错误。用正确的用户重新编译。没有错误。

配置了 squidguard。使用 squidguard -d 测试配置并得到以下结果:

2015-10-29 18:41:10 [10707] New setting: dbhome: /usr/local/squidGuard/db
2015-10-29 18:41:10 [10707] New setting: logdir: /usr/local/squidGuard/log
BDB1565 DB->put: method not permitted before handle's open method
2015-10-29 18:41:10 [10707] sgDbUpdate: put: Invalid argument
2015-10-29 18:41:10 [10707] Going into emergency mode

谷歌了一下。发现 1.4 版本与 berkelydb 4.6 以上版本存在问题。

找到了 libdb4.6 的 .deb。已安装。同样的失败。使用 --with-db 重新编译,指向 /usr/lib/libdb-4.6.so - 同样的失败使用 --with-db-lib 重新编译,指向 /usr/lib/libdb-4.6.so - 同样的失败再次尝试不使用 .so 文件名。同样的失败。

接下来我想也许我错过了什么。所以我找到了 squeeze backport 存储库并尝试从那里重新安装 libdb4.6。

Reinstallation of libdb4.6 is not possible, it cannot be downloaded.
Reinstallation of libdb-dev is not possible, it cannot be downloaded.

至此,我的 Linux 技能已经耗尽。我尝试了各种搜索方式,但一无所获。

我本来要尝试 mysql 支持,但据我所见,它仅用于身份验证。

我要么喜欢:

To fix this and get it working
Find something other than squidguard that can do blacklists.

答案1

我知道这个问题已经过去很长时间了,但我一直在努力解决同样的问题。

为了解决这个问题,我做了以下事情:

下载 BerkeleyDB 并从源代码进行编译。

tar -xzvf db-4.6.21.tar.gz

cd db-4.6.21

cd build_unix/

../dist/configure --prefix=/usr/local/berkeleydb

make

make install

echo "/usr/local/berkeleydb/lib/" >> /etc/ld.so.conf

ldconfig

再次编译SquidGuard:

./configure  --with-db=/usr/local/berkeleydb

核实:

squidGuard -v

SquidGuard: 1.4 Berkeley DB 4.6.21: (September 27, 2007)

squidGuard -d

2018-09-04 23:00:47 [7581] New setting: dbhome: /usr/local/squidGuard/db
2018-09-04 23:00:47 [7581] New setting: logdir: /usr/local/squidGuard/log
2018-09-04 23:01:01 [7581] squidGuard 1.4 started (1536112847.496)
2018-09-04 23:01:01 [7581] squidGuard ready for requests (1536112861.611)

相关内容