Ubuntu环境编译Squid 5¶
准备¶
备注
我的编译工作是在 私有云架构 的 私有云KVM环境 进行的,采用 ref:libvirt_lvm_pool 中 clone虚拟机
脚本构建的编译虚拟机。
编译Squid需要大量磁盘空间,默认clone出来虚拟机6G磁盘(实际空闲空间不足3G)因容量不足,首次编译失败。所以,采用 在libvirt LVM卷管理存储池中扩展虚拟机磁盘 将虚拟机磁盘扩展到 16GB 以完成编译工作。
升级操作系统:
sudo apt update && sudo apt upgrade -y && sudo reboot
安装编译所需的工具:
sudo apt -y install devscripts build-essential fakeroot debhelper dh-autoreconf dh-apparmor cdbs
安装squid 5需要的的头文件包:
sudo apt -y install \ libcppunit-dev \ libsasl2-dev \ libxml2-dev \ libkrb5-dev \ libdb-dev \ libnetfilter-conntrack-dev \ libexpat1-dev \ libcap-dev \ libldap2-dev \ libpam0g-dev \ libgnutls28-dev \ libssl-dev \ libdbi-perl \ libecap3 \ libecap3-dev \ libsystemd-dev \ libtdb-dev
编译Squid 5¶
源代码包是从 http://http.debian.net/debian/pool/main/s/squid/ 获取,所以查看该目录下可以确定最新版本是 5.2
创建配置文件
squid.ver
:
#!/usr/bin/env bash
# set squid version
SQUID_VER="5.2"
SQUID_PKG="${SQUID_VER}-1"
编译脚本
build_squid.sh
:
#!/bin/bash
if [[ $EUID -eq 0 ]]; then
echo "This script must NOT be run as root" 1>&2
exit 1
fi
# drop squid build folder
rm -R build/squid
# we will be working in a subfolder make it
mkdir -p build/squid
# set squid version
source squid.ver
# decend into working directory
pushd build/squid
# get squid from debian experimental
wget http://http.debian.net/debian/pool/main/s/squid/squid_${SQUID_PKG}.dsc
wget http://http.debian.net/debian/pool/main/s/squid/squid_${SQUID_VER}.orig.tar.xz
wget http://http.debian.net/debian/pool/main/s/squid/squid_${SQUID_VER}.orig.tar.xz.asc
wget http://http.debian.net/debian/pool/main/s/squid/squid_${SQUID_PKG}.debian.tar.xz
# unpack the source package
dpkg-source -x squid_${SQUID_PKG}.dsc
# build the package
cd squid-${SQUID_VER} && dpkg-buildpackage -rfakeroot -b -us -uc
# and revert
popd
执行编译:
./build_squid.sh
安装脚本
install_squid.sh
:
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
# set squid version
source squid.ver
# decend into working directory
pushd build/squid
# install squid packages
sudo apt-get install squid-langpack
dpkg --install squid-common_${SQUID_PKG}_all.deb
dpkg --install squid-openssl_${SQUID_PKG}_amd64.deb
dpkg --install squidclient_${SQUID_PKG}_amd64.deb
# and revert
popd
# verify the installed squid binary
systemctl stop squid && systemctl start squid && systemctl status squid && /usr/sbin/squid -v
执行安装:
./install_squid.sh