make 无法使用 openssl 构建 squid(使用了已弃用的函数)

make fails to build squid with openssl (deprecated functions used)

我正在尝试使用 openssl 构建 squid,但失败了,因为 make threats warnings as errors

一个例子:gadgets.h -> error 'void RSA_free(RSA*)' is deprecated; Since **Openssl 3.0.0** -Werror=deprecated-declarations ..

我假设 -Werror=deprecated-declarations 指示 make 将这些警告视为错误。但是 -Werror=deprecated-declarations 在哪个文件中?我怎样才能抑制它/避免它?

我需要带有 openssl 的鱿鱼。

自 Openssl 3.0.0 以来,这些东西已被弃用 。 我刚刚使用了 Openssl 1.1.1 LTS - 它成功了!

但后来我注意到 ubuntu 20.10 存储库中有一个 squid-openssl.. 所以我安装了它。

OpenSSL 1.1.1l:https://www.openssl.org/source/openssl-1.1.1l.tar.gz

france1 回答正确。但也许“一步一步”的命令会对某人有所帮助。我使用 Openssl 3.0.2 在 Ubuntu 22.04 上成功构建了 Squid 5.5。

下载 openssl 1.1.1j:

cd /tmp/
wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1j.zip

从源

提取openssl并将其安装到/usr/local/openssl_1_1_1j
unzip openssl-OpenSSL_1_1_1j.zip 
cd ./openssl-OpenSSL_1_1_1j/
./config --prefix=/usr/local/openssl_1_1_1j --openssldir=/usr/local/openssl_1_1_1j/ssl
make
sudo make install

导出变量

export PATH="/usr/local/openssl_1_1_1j/bin:$PATH" LD_LIBRARY_PATH="/usr/local/openssl_1_1_1j/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH=/usr/local/openssl_1_1_1j/lib/pkgconfig

下载 squid 并使用自定义 openssl 进行编译:

wget http://www.squid-cache.org/Versions/v5/squid-5.5.tar.gz
tar -xzvf ./squid-5.5.tar.gz 
cd squid-5.5/
./configure --enable-ssl-crtd --with-openssl=/usr/local/openssl_1_1_1j/lib
make
sudo make install

有效!