Costruire Subversion 1.5.4 su Debian: impossibile trovare la libreria contenente RSA_new
-
07-07-2019 - |
Domanda
Ho cercato di creare sovversione (con un account limitato) da molto tempo ma senza fortuna :(
Le istruzioni che sto seguendo: http://wiki.dreamhost.com/Subversion_Installation
Eseguendo questo:
./configure --prefix=${RUN} --without-berkeley-db --with-ssl --with-zlib --enable-shared
Mi dà questo errore:
checking for library containing RSA_new... not found
configure: error: could not find library containing RSA_new
configure failed for neon
Qualcuno può spiegarmi:
- Possibili ragioni per questo
- Possibili modi per aggirarlo
- Opzionale: cosa sono questi moduli e quale è il loro scopo (Neon / RSA_new)
Grazie!
Contenuto del file di registro:
Prova di trovare bit interessanti dal file 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
-
Soluzione
Controlla la mia risposta su qui .
Altri suggerimenti
- non hai libcrypto.a e libcrypto.so sul tuo sistema
- devi installare install libcrypto, che si trova nel pacchetto libssl-dev (
aptitude install libssl-dev
) - Neon è la libreria WebDAV inclusa in Subversion; WebDAV è uno dei protocolli wire supportati da Subversion (http :). RSA è un algoritmo di crittografia. Neon non ne ha davvero bisogno da solo - è solo che configure lo usa per determinare se libcrypto è disponibile.
Finalmente ha funzionato. Come: download openssl-0.x.x.tar.gz, decompressione, cd in esso
installalo da qualche parte, come (per me)
$ ./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"
decomprime la sovversione + i suoi avvallamenti
vai nella sottodirectory neon
$ ./configure --with-ssl=openssl --prefix=$HOME/installs && make clean && make && make install
elimina la directory neon
vai nella directory di sovversione
$ ./configure --with-ssl --prefix=$HOME/installs --with-neon=/root/installs/bin/neon-config && make clean && make && make install
Nota: potresti essere in grado di cavartela senza tutte le esportazioni usando --with-ssl = / root / installs o qualcosa del genere.
Devi prima installare OpenSSL, o configurare --without-ssl (o semplicemente omettere l'opzione --with-ssl se hai seguito letteralmente le istruzioni).
Se salto SSL:
./configure --prefix=${RUN} --without-ssl
Ottengo questo errore:
checking for openssl/opensslv.h... no
configure: error: We require OpenSSL; try --with-openssl
configure failed for serf
Se lo faccio:
./configure --prefix=${RUN} --with-openssl
Ricevo un avviso:
configure: WARNING: Unrecognized options: --with-openssl
...
configure: error: '--with-openssl requires a path to a directory'
configure failed for serf
: - s
hai controllato Compilazione di Subversion con supporto SSL , dove erano necessarie le seguenti variabili per completare il processo?
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"
E il post non è riuscito a trovare la libreria contenente RSA_new , si raccomanda di assicurarsi che anche le intestazioni siano installate sul sistema (Debian-Ubuntu-Dapper-Beta2: " apt-get install libssl-dev ") o come Martin dice : aptitude install libssl-dev.
In breve, o le intestazioni non sono presenti o non sono nel percorso corretto durante il processo di configurazione.
NB: sto usando un host condiviso quindi non sono in grado di fare alcune cose.
Chiamata
apt-get install libssl-dev
mi dà questo errore:
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 installa libssl-dev
mi dà questo errore:
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
Come forse puoi vedere, sono totalmente perso, quindi qualsiasi ulteriore presa in mano sarebbe molto apprezzata! :)
Penso di aver finalmente ottenuto " configura " parte al lavoro.
Innanzitutto, ho recuperato 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
Quindi ho creato la sovversione con un riferimento a quella cartella:
./configure --prefix=${RUN} --without-berkeley-db --with-openssl=$HOME/soft/openssl-0.9.8a
In realtà ho ricevuto questo avviso:
configure: WARNING: Unrecognized options: --with-openssl
Ora che anche se avevo tutto coperto, si compila per alcuni minuti ma poi mi dà questo errore:
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
Questa sembra essere la storia infinita ... posso da qualche parte scaricare gli ultimi binari?