Собираем SQUID из исходников

Posted by

Не хочу использовать сторонние репозитарии (а если они не работают и у меня нет копии необходимых файлов при использовании apt-cacher), лучше я разберу как собрать из исходников пакет squid (Version: 3.5.19, 3.5.20 у меня не собирается) предпоследней стабильной версии.

Ниже список команд которые приводят к решению поставленной задачи не отвлекаясь на разъяснение что и для и почему, уже столько раз все говорилось, что плодить одно и то же на своем ресурсе я не намерен. Характеристики будущего же сервера под SQUID каждый системный администратор выбирает из своего опыта и своих задач.

Ладно поехали все действия применимы на .5 Server amd64

ekzorchik@srv-host:~$ sudo rm -Rf /var/lib/apt/lists/

ekzorchik@srv-host:~$ sudo apt-get update && apt-get upgrade -y

ekzorchik@srv-host:~$ uname -a && lsb_release -a

Linux srv-host 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 14.04.5 LTS

Release: 14.04

Codename: trusty

ekzorchik@srv-host:~$ sudo apt-get -y install devscripts build-essential fakeroot debhelper dh-autoreconf cdbs

ekzorchik@srv-host:~$ sudo apt-get -y build-dep libecap

ekzorchik@srv-host:~$ sudo apt-get -y build-dep squid3

ekzorchik@srv-host:~$ sudo apt-get -y --purge remove libecap2-dev libecap2

ekzorchik@srv-host:~$ sudo apt-get -y install nettle-dev libgnutls28-dev libssl-dev libdbi-perl

ekzorchik@srv-host:~$ mkdir -p build/libecap

ekzorchik@srv-host:~$ pushd build/libecap/

~/build/libecap ~

ekzorchik@srv-host:~/build/libecap$ wget http://http.debian.net/debian/pool/main/libe/libecap/libecap_1.0.1-3.dsc

ekzorchik@srv-host:~/build/libecap$ wget http://http.debian.net/debian/pool/main/libe/libecap/libecap_1.0.1.orig.tar.gz

ekzorchik@srv-host:~/build/libecap$ wget http://http.debian.net/debian/pool/main/libe/libecap/libecap_1.0.1-3.debian.tar.xz

ekzorchik@srv-host:~/build/libecap$ sudo dpkg-source -x libecap_1.0.1-3.dsc

Убираем из строки номер 4 зависимость: g++ (>= 4:5.2) и остается:

ekzorchik@srv-host:~/build/libecap$ sudo nano +4 libecap-1.0.1/debian/control

Build-Depends: debhelper (>= 8.0.0), autotools-dev, cdbs, dh-autoreconf

ekzorchik@srv-host:~/build/libecap$ cd libecap-1.0.1/

ekzorchik@srv-host:~/build/libecap/libecap-1.0.1$ sudo dpkg-buildpackage -rfakeroot -b

ekzorchik@srv-host:~/build/libecap/libecap-1.0.1$ popd

~

ekzorchik@srv-host:~$ pushd build/libecap/

~/build/libecap ~

ekzorchik@srv-host:~/build/libecap$ sudo dpkg -i libecap3_1.0.1-3_amd64.deb

ekzorchik@srv-host:~/build/libecap$ sudo dpkg --install libecap3-dev_1.0.1-3_amd64.deb

ekzorchik@srv-host:~/build/libecap$ popd

~

ekzorchik@srv-host:~$ mkdir -p build/squid3

ekzorchik@srv-host:~$ pushd build/squid3/

~/build/squid3 ~

ekzorchik@srv-host:~/build/squid3$

ekzorchik@srv-host:~/build/squid3$ wget http://http.debian.net/debian/pool/main/s/squid3/squid3_3.5.19-1.dsc

ekzorchik@srv-host:~/build/squid3$ wget http://http.debian.net/debian/pool/main/s/squid3/squid3_3.5.19.orig.tar.gz

ekzorchik@srv-host:~/build/squid3$ wget http://http.debian.net/debian/pool/main/s/squid3/squid3_3.5.19-1.debian.tar.xz

ekzorchik@srv-host:~/build/squid3$ sudo dpkg-source -x squid3_3.5.19-1.dsc

Удаляем 48 строчку (—with-default-user=proxy), а взамен нее добавляю следующее:

ekzorchik@srv-host:~/build/squid3$ sudo nano +48 squid3-3.5.19/debian/rules

--with-default-user=proxy \

--with-openssl \

--enable-ssl \

--enable-ssl-crtd

По окончании редактирования не забываем сохранить внесенные изменения.

ekzorchik@srv-host:~/build/squid3/squid3-3.5.19$ sudo dpkg-buildpackage -rfakeroot -b

процесс долгий можно пойти поспать

ekzorchik@srv-host:~/build/squid3/squid3-3.5.19$ popd

~

ekzorchik@srv-host:~$ pushd build/squid3/

~/build/squid3 ~

ekzorchik@srv-host:~/build/squid3$ sudo apt-get install squid-langpack -y

ekzorchik@srv-host:~/build/squid3$ sudo dpkg -i squid-common_3.5.19-1_all.deb

ekzorchik@srv-host:~/build/squid3$ sudo dpkg -i squid_3.5.19-1_amd64.deb

ekzorchik@srv-host:~/build/squid3$ sudo dpkg -i squidclient_3.5.19-1_amd64.deb

ekzorchik@srv-host:~/build/squid3$ popd

~

А теперь проверяю, что в текущей системе действительно установлено касательно squid:

ekzorchik@srv-host:~$ apt list --installed | grep squid

WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.

squid/now 3.5.19-1 amd64 [installed,local]

squid-common/now 3.5.19-1 all [installed,local]

squid-langpack/trusty,now 20121005-1 all [installed]

squidclient/now 3.5.19-1 amd64 [installed,local]

Вот и отлично, но как по мне, если есть возможность использовать подключаемые репозитарии, то отказываться от этого глупо, а собирать как все же как в этой заметке я считаю слишком трудоемко и порой можно встать на двухсторонние грабли, тут ошибка, исправил, опять ошибка и т. д. А так по заметке все, прощаюсь, до новых встреч, с уважением автор блога — ekzorchik.