Назад | Перейти на главную страницу

Ошибка rpmbuild на зависимости gnutls-devel, даже если pkg-config определяет установленную библиотеку

Я пытаюсь установить последнюю версию csync2, инструмента синхронизации файлов, из LINBIT на CENT OS 5.4. Некоторые недавние изменения, внесенные в это программное обеспечение, требуют, чтобы в системе был установлен gnutls> = 2.6 (для поддержки SSL).

К сожалению, gnutls rpms, доступные в CENT OS 5, имеют версию не выше 1.4.3. Однако я нашел несколько compat-gnutls * .rpm, compat-gnutls-devel * .rpm из репозитория art и установил их в своей системе CENT OS 5. Я проверил, что эта библиотека (имена, gnutls) установлена ​​правильно, выполнив следующие команды, все из которых вернули ожидаемые результаты.

pkg-config --cflags --print-errors gnutls 
pkg-config --libs --print-errors gnutls

gcc `pkg-config gnutls --cflags`   -o test.o test.c

gcc -lgnutls -o test.o test.c


pkg-config --cflags "gnutls >= 2.6.0"
pkg-config  --modversion gnutls | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }'

Теперь, после этого, я попытался создать rpm cssync2, который выдает следующие ошибки:

[root@myvm1 opt]# rpmbuild -bb /usr/src/redhat/SPECS/csync2.spec
error: Failed build dependencies:
    gnutls-devel is needed by csync2-2.0-0.1.rc1.x86_64
You have new mail in /var/spool/mail/root
[root@myvm1 opt]#

Я пробовал установить wirehark, который также зависит от gnutls; он также не работает в той же зависимости, то есть gnutls.

[root@myvm1 replica]# rpm -ivh wireshark-1.0.15-1.el5_6.4.x86_64.rpm
error: Failed dependencies:
    libgnutls.so.13()(64bit) is needed by wireshark-1.0.15-1.el5_6.4.x86_64
    libgnutls.so.13(GNUTLS_1_3)(64bit) is needed by wireshark-1.0.15-1.el5_6.4.x86_64
    libsmi.so.2()(64bit) is needed by wireshark-1.0.15-1.el5_6.4.x86_64

Я не уверен, почему rpm или rpmbuild не обнаруживают установленные библиотеки gnutls, даже если они уже установлены в системе.

Вот что вернула команда "locate libgnutls.so", указывающая на наличие libgnutls.

[root@pdev22vm1 replica]# locate libgnutls.so
/usr/gnutls2/lib/libgnutls.so
/usr/gnutls2/lib/libgnutls.so.26
/usr/gnutls2/lib/libgnutls.so.26.14.12
/usr/lib/libgnutls.so
/usr/lib64/libgnutls.so

и команда "найти libgnutls-openssl.so" вернула:

[root @ pdev22vm1 replica] # найдите libgnutls-openssl.so /usr/gnutls2/lib/libgnutls-openssl.so /usr/gnutls2/lib/libgnutls-openssl.so.26 / usr / gnutls2 / lib / libgnutls-openssl. so.26.14.12 /usr/lib/libgnutls-openssl.so /usr/lib64/libgnutls-openssl.so

Я даже попытался собрать csync2 rpm, удалив зависимость от "gnutls-devel"; встроенный rpm не работал с SSL и выдавал ошибку «этот двоичный файл не построен на SSL».

Может ли кто-нибудь помочь мне понять, почему rpm или rpmbuild не распознают установленную библиотеку gnutls и что можно сделать, чтобы преодолеть эту ситуацию?

С уважением и уважением, Samba

Я думаю, вам нужно отредактировать свой SRPMS, чтобы изменить файл спецификации, чтобы указать сборку, требуемую для compat-gnutls-devel, то есть ту, которую вы нашли для последней версии.

Если вы не знаете, как изменить SRPMS и не можете найти соответствующий документ в Google, я постараюсь вам помочь.