Сборка Subversion 1.5.4 на Debian: не удалось найти библиотеку, содержащую RSA_new - PullRequest
1 голос
/ 08 ноября 2008

Я давно пытался создать 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

Может ли кто-нибудь объяснить мне:

  1. Возможные причины для этого
  2. Возможные способы обойти это
  3. Дополнительно: что это за модули и какова их цель (Neon / RSA_new)

Спасибо!

Содержимое файла журнала:

Попытка найти интересные биты из неонового файла 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

-

Ответы [ 8 ]

9 голосов
/ 08 ноября 2008
  1. у вас нет libcrypto.a и libcrypto.so в вашей системе
  2. вам нужно установить install libcrypto, которая находится в пакете libssl-dev (aptitude install libssl-dev)
  3. Neon - это библиотека WebDAV, включенная в Subversion; WebDAV является одним из проводных протоколов, поддерживаемых Subversion (http :). RSA - это алгоритм шифрования. Neon на самом деле не нужен сам по себе - просто configure использует его для определения доступности libcrypto.
4 голосов
/ 11 января 2010

Наконец получил его на работу. Как: загрузить в него openssl-0.x.x.tar.gz, распаковать, cd

установить его где-нибудь, как (для меня)

$ ./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

зайдите в неоновый подкаталог

$ ./configure --with-ssl=openssl --prefix=$HOME/installs && make clean && make && make install

удалить неоновый каталог

перейдите в каталог subversion

$ ./configure --with-ssl --prefix=$HOME/installs --with-neon=/root/installs/bin/neon-config && make clean && make && make install

Примечание: вы можете обойтись без экспорта, используя --with-ssl = / root / installs или что-то в этом роде.

2 голосов
/ 01 декабря 2008

Проверьте мой ответ по здесь .

2 голосов
/ 08 ноября 2008

Вам либо нужно сначала установить OpenSSL, либо настроить --without-ssl (или просто пропустить опцию --with-ssl, если вы буквально следовали инструкциям).

1 голос
/ 08 ноября 2008

Если я пропущу 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

: - * s * 1013

1 голос
/ 08 ноября 2008

Вы проверили Компиляция 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 install libssl-dev.

Короче говоря, либо заголовки отсутствуют, либо они не находятся на правильном пути во время процесса настройки.

0 голосов
/ 09 ноября 2008

Я думаю, что у меня наконец-то появилась часть "configure" для работы.

Сначала я получил 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

Кажется, это бесконечная история ... могу ли я где-нибудь просто загрузить последние двоичные файлы?

0 голосов
/ 08 ноября 2008

Примечание: я использую общий хост , поэтому я не могу сделать некоторые вещи.

Вызов

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?

Calling 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

Как вы, возможно, видите, я полностью потерян, поэтому любая дальнейшая рука будет высоко оценена! :)

...