Сборка Subversion 1.5.4 на Debian:не удалось найти библиотеку, содержащую RSA_new
-
07-07-2019 - |
Вопрос
Я долгое время пытался создать subversion (на ограниченной учетной записи), но безуспешно: (
Инструкции, которым я следую: http://wiki.dreamhost.com/Subversion_Installation
Запускаю это:
./configure --prefix=${RUN} --without-berkeley-db --with-ssl --with-zlib --enable-shared
Выдает мне эту ошибку:
checking for library containing RSA_new... not found
configure: error: could not find library containing RSA_new
configure failed for neon
Кто-нибудь может мне объяснить:
- Возможные причины этого
- Возможные способы обойти это
- Необязательно:Что это за модули и каково их назначение (Neon/RSA_new)
Спасибо!
Содержимое файла журнала:
Пытаюсь найти интересные фрагменты из файла neon config.log:
configure:27693: gcc -o conftest -g -O2 conftest.c >&5
/tmp/ccazXdJz.o: In function `main':
/home/stpinst/soft/subversion-1.5.4/neon/conftest.c:93: undefined reference to `RSA_new'
collect2: ld returned 1 exit status
configure:27699: $? = 1
configure: failed program was:
...
| int
| main ()
| {
| RSA_new();
| ;
| return 0;
| }
configure:27742: gcc -o conftest -g -O2 conftest.c -lcrypto -lz >&5
/usr/bin/ld: cannot find -lcrypto
collect2: ld returned 1 exit status
configure:27748: $? = 1
--
Решение
Ознакомьтесь с моим ответом по здесь.
Другие советы
- у вас нет libcrypto.a и libcrypto.so в вашей системе
- вам необходимо установить install libcrypto, который находится в пакете libssl-dev (
aptitude install libssl-dev
) - Neon - это библиотека WebDAV, включенная в subversion;WebDAV является одним из проводных протоколов, поддерживаемых subversion (http:).RSA - это алгоритм шифрования.Neon на самом деле не нуждается в нем самом по себе - просто configure использует его, чтобы определить, доступен ли libcrypto.
Наконец-то это заработало.Как:скачать openssl-0.x.x.tar.gz , распаковать, вставить в него компакт-диск
установите его где-нибудь, например (для меня)
$ ./config shared --prefix=$HOME/installs && make clean && make && make install
$ export CFLAGS= "-O2 -g -I/root/installs/include"
$ export CFLAGS="-O2 -g -I/root/installs/include"
$ export LDFLAGS="-L/root/installs/lib"
$ export CPP="gcc -E -I/root/installs/include"
распакуйте subversion + его deps
перейдите в подкаталог neon
$ ./configure --with-ssl=openssl --prefix=$HOME/installs && make clean && make && make install
удалить каталог neon
перейдите в каталог subversion
$ ./configure --with-ssl --prefix=$HOME/installs --with-neon=/root/installs/bin/neon-config && make clean && make && make install
Примечание:возможно, вы сможете обойтись без всего экспорта, используя --with-ssl=/root/installs или что-то в этом роде.
Вам нужно либо сначала установить OpenSSL, либо настроить --without-ssl (или просто опустить параметр --with-ssl, если вы буквально следовали инструкциям).
Если я пропущу SSL:
./configure --prefix=${RUN} --without-ssl
Я получаю эту ошибку:
checking for openssl/opensslv.h... no
configure: error: We require OpenSSL; try --with-openssl
configure failed for serf
Если я это сделаю:
./configure --prefix=${RUN} --with-openssl
Я получаю предупреждение:
configure: WARNING: Unrecognized options: --with-openssl
...
configure: error: '--with-openssl requires a path to a directory'
configure failed for serf
:-с
вы проверяли Компиляция Subversion с поддержкой SSL, где для завершения процесса были необходимы следующие параметры ?
setenv CC "gcc -I/usr/local/ssl/include -L/usr/local/ssl/lib"
setenv CFLAGS "-O2 -g -I/usr/local/ssl/include"
setenv LDFLAGS "-L/usr/local/ssl/lib"
setenv CPP "gcc -E -I/usr/local/ssl/include"
И этот пост не удалось найти библиотеку, содержащую RSA_new, рекомендую убедиться , что заголовки также были установлены в системе (Debian-Ubuntu-Dapper-Beta2:"apt-get install libssl-dev"), или как Мартин говорит:aptitude устанавливает libssl-dev.
Короче говоря, либо заголовков там нет, либо они находятся не по правильному пути во время процесса настройки.
ПРИМЕЧАНИЕ:Я использую общий хост так что я не в состоянии делать некоторые вещи.
Зовущий
apt-get install libssl-dev
выдает мне эту ошибку:
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Вызов aptitude устанавливает libssl-dev
выдает мне эту ошибку:
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root
Как вы, возможно, можете видеть, я совершенно растерян, поэтому я был бы очень признателен за любую дальнейшую поддержку за руку!:)
Я думаю, у меня наконец-то заработала часть "настроить".
Во-первых, я извлек openssl локально:
wget http://www.openssl.org/source/openssl-0.9.8a.tar.gz
tar zxvf openssl-0.9.8a.tar.gz
cd openssl-0.9.8a
./configure --prefix=${RUN}
make
make install
Затем я создал subversion со ссылкой на эту папку:
./configure --prefix=${RUN} --without-berkeley-db --with-openssl=$HOME/soft/openssl-0.9.8a
Я действительно получил это предупреждение:
configure: WARNING: Unrecognized options: --with-openssl
Теперь, когда я подумал, что у меня все это есть, он компилируется в течение нескольких минут, но затем выдает мне эту ошибку:
link: warning: `/usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../..//libsqlite 3.la' seems to be moved
libtool: link: warning: `/usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../..//libsqlite .la' seems to be moved
libtool: link: warning: `/usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../..//libexpat. la' seems to be moved
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make[1]: *** [libserf-0.la] Error 1
make[1]: Leaving directory `/mnt/local/home/stpinst/soft/subversion-1.5.4/serf'
make: *** [external-all] Error 1
Кажется, это бесконечная история...могу ли я где-нибудь просто загрузить последние двоичные файлы?