Почему я не могу скомпилировать эту версию Postfix?

Я только что установил 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. Но я не уверен.

1
задан 8 August 2012 в 17:48

2 ответа

Вы должны добавить -ldb -lnsl -lresolv в AUXLIBS.

1
ответ дан 25 May 2018 в 07:47

Пакет postfix на Ubuntu будет автоматически устанавливать все зависимые библиотеки для установки, называемые «Build Dependencies».

Я бы рекомендовал вам установить все пакеты зависимостей сборки, показанные на этой ссылке, а затем попробовать для восстановления, вероятно, вам не хватает некоторых библиотек для компиляции.

0
ответ дан 25 May 2018 в 07:47
  • 1
    Привет @Lord of Time Я уже запускаю " apt-get build-dep postfix " перед установкой postfix. Может быть, вы можете видеть, на самом деле у меня есть все файлы заголовков и библиотеки, просто отсутствует «-lnsl». в файле make. Это вопрос, почему тот же пакет может быть создан без изменений в CentOS? Спасибо за вашу ссылку, но как я могу получить постфиксную версию 2.7? Мне нужна эта версия. – Coofucoo 9 August 2012 в 06:17
  • 2
    Вам нужно будет проверить источник пакета CentOS и убедиться, что его здание без этого, в Debian это может быть необходимо, но не в CentOS. (CentOS - Red-Hat, Ubuntu - Debian) – Thomas Ward♦ 9 August 2012 в 17:58

Другие вопросы по тегам:

Похожие вопросы: