Linux
使用舊軟體包時遇到問題 - Debian jessie/Libdb
我一直試圖讓 squidguard 執行。這是由於 berkelydb ( libdb ) 的版本。
這是一個全新的 Debian jessie 伺服器安裝。沒有 gui,只有 ssh、build-essential 等。
從源安裝魷魚。沒問題。
試圖從 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
Google了一下。看到 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.
我知道這個問題已經很久了,但我一直在努力解決同樣的問題。
為了解決我做了以下事情:
下載 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)