Я пытаюсь установить последнюю версию 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, я постараюсь вам помочь.