Сборка ProxySQL для Debian 8.11.1 LTS Jessie
Настройка виртуальной машины
Для сборки ProxySQL понадобится настроить виртуальную машину, аналогичную используемой на том сервере, где собираемся его использовать. В рассматриваемом примере это система Debian 8.11.1 LTS с кодовым именем Jessie. Получить образ установочного диска можно по ссылке debian-8.11.1-amd64-netinst.iso.
Настройка репозиториев
Для настройки репозиториев поместим в файл /etc/apt/sources.list
следующие строки:
deb http://archive.debian.org/debian/ jessie main contrib non-free
deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
deb http://archive.debian.org/debian/ jessie-backports main contrib non-free
Отключаем установку предлагаемых зависимостей, создав файл /etc/apt/apt.conf.d/suggests
со следующим содержимым:
APT::Install-Suggests "false";
Отключаем установку рекомендуемых зависимостей, создав файл /etc/apt/apt.conf.d/recommends
со следующим содержимым:
APT::Install-Recommends "false";
Система apt сохраняет скачанные пакеты в каталоге /var/cache/apt/archives/
, чтобы при необходимости не скачивать их снова. Файлы в этом каталоге по умолчанию не удаляются, что может привести к переполнению диска. Чтобы отключить размер файлов в этом каталоге 200 мегабайтами, создадим файл /etc/apt/apt.conf.d/cache
со следующим содержимым:
APT::Cache-Limit "209715200";
Создадим файл /etc/apt/apt.conf.d/timeouts
с настройками таймаутов обращения к репозиториям:
Acquire::http::Timeout "5";
Acquire::https::Timeout "5";
Acquire::ftp::Timeout "5";
При необходимости, если репозитории доступны через веб-прокси, можно создать файл /etc/apt/apt.conf.d/proxy
, прописав в него прокси-серверы для протоколов HTTP, HTTPS и FTP:
Acquire::http::Proxy "http://10.0.25.3:8080";
Acquire::https::Proxy "http://10.0.25.3:8080";
Acquire::ftp::Proxy "http://10.0.25.3:8080";
Обновляем список пакетов, доступных через репозитории:
# apt-get update
Обновим систему с использованием самых свежих пакетов, доступных через репозитории:
# apt-get upgrade
# apt-get dist-upgrade
Настройка репозиториев Percona
Установим пакеты, необходимые для работы пакета настройки репозиториев:
# apt-get install curl
Заглядываем в файл /etc/debian_version
или /etc/lsb-release
, определяем кодовое имя релиза.
Открываем страницу repo.percona.com/percona/apt/ и находим там пакет percona-release_latest.jessie_all.deb
, где jessie
- кодовое имя релиза. Копируем ссылку на пакет и скачиваем в систему, где нужно установить ProxySQL:
$ curl http://repo.percona.com/percona/apt/percona-release_latest.jessie_all.deb > percona-release_latest.jessie_all.deb
Установим пакет в систему:
# dpkg -i percona-release_latest.jessie_all.deb
Подключаем репозитории с ProxySQL:
# percona-release enable proxysql
Обновляем список пакетов, доступных через репозитории:
# apt-get update
Сборка пакета
Установим пакеты, которые понадобятся дальнейших действий:
# apt-get install git pkg-config cmake libgnutls28-dev libcurl4-openssl-dev automake autoconf libtool uuid-dev
# apt-get install -t jessie-backports cmake
Получим исходный пакет, который на момент написания статьи соответствует версии 2.0.12:
$ apt-get source proxysql2
Клонируем из репозитория ветку с нужной нам версией 2.4.1:
$ git clone --single-branch -b v2.4.1 https://github.com/sysown/proxysql/ proxysql2-2.4.1
Скопируем каталог debian
в каталог со скачанными исходными текстами и удалим служебный каталог .git
:
$ cp -R proxysql2-2.0.12/debian proxysql2-2.4.1/
$ rm -fR proxysql2-2.4.1/.git
Перейдём в каталог с новыми исходными текстами и запустим утилиту для редактирования журнала изменений пакета:
$ cd proxysql2-2.4.1
$ dch -i
Вводим в качестве описания последних изменений такой текст:
proxysql2 (2.4.1~jessie) unstable; urgency=medium
* Update to new upstream release ProxySQL 2.4.1
-- Vladimir Stupin <vladimir@stupin.su> Mon, 20 Jun 2022 12:22:32 +0500
Добавляем в файл debian/control
зависимости от библиотек и утилит:
Build-Depends: debhelper (>= 9), debconf, pkg-config, g++, cmake, libgnutls28-dev, libcurl4-openssl-dev, automake, autoconf, libtool, uuid-dev
Удаляем из файла debian/control
следующую строчку:
Version: @@VERSION@@
Добавляем в заплатку percona-utilities
файлы, добавленные авторами исходного пакета:
$ quilt new percona-utilities
$ quilt add etc/proxysql-admin.cnf
$ quilt add tools/proxysql-admin
$ quilt add tools/proxysql-logrotate
$ quilt add tools/proxysql-status
$ quilt add tools/README.md
$ quilt add tools/tools/enable_scheduler
$ quilt add tools/tools/mysql_exec
$ quilt add tools/tools/proxysql_exec
$ quilt add tools/tools/run_galera_checker
$ quilt add tools/tests/generic-test.bats
$ quilt add tools/tests/proxysql-admin-testsuite.bats
$ quilt add tools/tests/proxysql-admin-testsuite.sh
$ quilt add tools/tests/test-common.bash
$ quilt add tools/doc/proxysql_galera_checker.md
$ quilt add tools/doc/release-notes/proxysql-admin_v1.3.0.md
$ quilt add tools/doc/release-notes/proxysql-admin_v1.3.2a.md
$ quilt add tools/doc/release-notes/proxysql-admin_v1.3.5.md
$ quilt add tools/doc/release-notes/proxysql-admin_v1.3.6.md
$ cp ../proxysql2-2.0.12/etc/proxysql-admin.cnf etc/
$ cp ../proxysql2-2.0.12/tools/proxysql-admin tools/
$ cp ../proxysql2-2.0.12/tools/proxysql-logrotate tools/
$ cp ../proxysql2-2.0.12/tools/proxysql-status tools/
$ cp ../proxysql2-2.0.12/tools/README.md tools/
$ cp -r ../proxysql2-2.0.12/tools/tools tools/
$ cp -r ../proxysql2-2.0.12/tools/tests tools/
$ cp -r ../proxysql2-2.0.12/tools/doc tools/
$ quilt refresh
В файл debian/rules.systemd
добавим правило, удаляющее файлы, отмечающие выполненные этапы сборки пакета:
override_dh_clean:
@echo "RULES.$@"
dh_clean
rm -f override_dh_auto_build override_dh_auto_configure
Скопируем содержимое файла debian/rules.systemd
в файл debian/rules
:
$ cat debian/rules.systemd > debian/rules
Удаляем из файла debian/docs строчку с файлом requirements.txt
.
Запускаем сборку пакета:
$ GIT_VERSION=2.4.1 dpkg-buildpackage -us -uc -rfakeroot
В результате сборки в каталоге выше должны сформироваться следующие файлы:
- proxysql2 2.4.1~jessie.dsc
- proxysql2 2.4.1~jessie.tar.xz
- proxysql2 2.4.1~jessie amd64.changes
- proxysql2 2.4.1~jessie amd64.deb