Я только что установил postfix 2.7.11 на сервер Ubuntu из исходного кода. Я не использую собственный ubuntu, потому что мне нужна старая версия.
Я нашел очень интересную проблему. Прежде, как в CentOS 5, так и в 6, я могу создать исходный код без каких-либо проблем. Но в Ubuntu сервер 12.04 совершенно другой.
У меня возникли следующие проблемы:
dict_nis.c:173: error: undefined reference to 'yp_match'
dict_nis.c:187: error: undefined reference to 'yp_match'
dns_lookup.c:347: error: undefined reference to '__dn_expand'
dns_lookup.c:218: error: undefined reference to '__res_search'
dns_lookup.c:287: error: undefined reference to '__dn_expand'
dns_lookup.c:498: error: undefined reference to '__dn_expand'
dns_lookup.c:383: error: undefined reference to '__dn_expand'
Да, эта причина, очевидно. Я просто ищу соответствующую библиотеку и добавляю ее в make-файл. Оно работает.
Вопрос в том, почему? В чем разница между сервером Ubuntu и CentOS?
Одна из возможностей - версия gcc и ld. Сервер Ubuntu использует другую версию gcc и ld с CentOS. Но я не уверен.
Вы должны добавить -ldb -lnsl -lresolv в AUXLIBS.
Пакет postfix на Ubuntu будет автоматически устанавливать все зависимые библиотеки для установки, называемые «Build Dependencies».
Я бы рекомендовал вам установить все пакеты зависимостей сборки, показанные на этой ссылке, а затем попробовать для восстановления, вероятно, вам не хватает некоторых библиотек для компиляции.