Construyendo Subversion 1.5.4 en Debian: no se pudo encontrar la biblioteca que contiene RSA_new

StackOverflow https://stackoverflow.com/questions/274656

Pregunta

He intentado crear subversión (en una cuenta limitada) durante mucho tiempo pero sin suerte :(

Las instrucciones que estoy siguiendo: http://wiki.dreamhost.com/Subversion_Installation

Ejecutando esto:

./configure --prefix=${RUN} --without-berkeley-db --with-ssl --with-zlib --enable-shared

Me da este error:

checking for library containing RSA_new... not found
configure: error: could not find library containing RSA_new
configure failed for neon

¿Puede alguien explicarme:

  1. Posibles razones para esto
  2. Posibles formas de evitarlo
  3. Opcional: qué son estos módulos y cuál es su propósito (Neon / RSA_new)

¡Gracias!

Contenido del archivo de registro:

Intentando encontrar partes interesantes del archivo config.log de neón:

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

-

¿Fue útil?

Solución

Vea mi respuesta en aquí .

Otros consejos

  1. no tienes libcrypto.a y libcrypto.so en tu sistema
  2. necesita instalar install libcrypto, que se encuentra en el paquete libssl-dev ( aptitude install libssl-dev )
  3. Neon es la biblioteca WebDAV incluida en subversion; WebDAV es uno de los protocolos de cable que admite la subversión (http :). RSA es un algoritmo de cifrado. Neon en realidad no lo necesita, es solo que configure lo usa para determinar si libcrypto está disponible.

Finalmente lo puse a trabajar. Cómo: descarga openssl-0.x.x.tar.gz, descomprime, cd en él

instalarlo en algún lugar, como (para mí)

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

descomprime la subversión + sus deps

ir al subdirectorio de neón

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

eliminar el directorio de neón

vaya al directorio de subversión

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

Nota: es posible que pueda escapar sin todas las exportaciones utilizando --with-ssl = / root / installs o algo por el estilo.

Necesita instalar OpenSSL primero, o configurar --without-ssl (o simplemente omitir la opción --with-ssl si ha seguido las instrucciones literalmente).

Si me salto el SSL:

./configure --prefix=${RUN} --without-ssl

Me sale este error:

checking for openssl/opensslv.h... no
configure: error: We require OpenSSL; try --with-openssl
configure failed for serf

Si lo hago:

 ./configure --prefix=${RUN} --with-openssl

Recibo una advertencia:

configure: WARNING: Unrecognized options: --with-openssl
...
configure: error: '--with-openssl requires a path to a directory'
configure failed for serf

: -s

¿verificó compilando Subversion con soporte SSL , donde se necesitaban las siguientes variables para completar el proceso?

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"

Y la publicación no pudo encontrar la biblioteca que contiene RSA_new , se recomienda asegurarse de que los encabezados también estén instalados en el sistema (Debian-Ubuntu-Dapper-Beta2: " apt-get install libssl-dev "), o como Martin dice : aptitude install libssl-dev.

En resumen, o los encabezados no están allí, o no están en la ruta correcta durante el proceso de configuración.

NB: estoy usando un host compartido , así que no puedo hacer algunas cosas.

Llamadas

apt-get install libssl-dev

me da este error:

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?

Llamando     aptitude install libssl-dev

me da este error:

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

Como puede ver, estoy totalmente perdido, por lo que agradecería cualquier otra toma de la mano. :)

Creo que finalmente tengo el " configure " parte para trabajar.

Primero, recuperé openssl localmente:

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

Luego construí subversion con una referencia a esa carpeta:

./configure --prefix=${RUN} --without-berkeley-db --with-openssl=$HOME/soft/openssl-0.9.8a

Realmente recibí esta advertencia:

configure: WARNING: Unrecognized options: --with-openssl

Ahora que pensé que tenía todo cubierto, se compila durante unos minutos pero luego me da este error:

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

Esta parece ser la historia interminable ... ¿puedo descargar los últimos binarios en algún lugar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top