Menu
Categories
Статическая сборка pdns_server
August 10, 2019 Софт

При ручной сборке в ./configure у PowerDNS Authoritative Server есть ключи –enable-static и –enable-static-boost, позволяющие собрать бинарники статически, поскольку не всегда есть время и возможности угадывать, что и, главное, каких именно версий окажется установлено или доступно к установке на целевой операционке. Если вам не повезло иметь операционку, где готового пакета с pdns не существует, а готовый к сборке чего попало сервер уже налажен.

Вот только при запуске успешно собранного бинарника можно увидеть ошибку pdns_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26′ not found (required by pdns_server)

Она говорит о том, что указанная библиотека ни черта не прилинковалась статически.

Заставить ее это сделать можно дописыванием LDFLAGS перед запуском ./configure:

LDFLAGS="-static-libstdc++" ./configure --with-modules="gmysql" --without-lua --enable-static --enable-static-boost --prefix=/

Это отвяжет зависимость от версии libstdc++ на целевой машине.

Говорят, для другого софта может пригодиться вбивание -static-libgcc, если он собирается CC, а общий -static попытается собрать всё остальное статически.

А так-то понятно, что лучше не собирать на коленке вручную, а использовать готовые пакеты требуемого софта для имеющейся операционной системы. Когда они есть в природе. Правда ведь, RHEL8?

Leave a Reply




*