установить libssl-dev и libncurses5-dev без привилегий root

Я пытаюсь выполнить префиксную установку Erlang R16B02 на общем пространстве сервера, на котором работает Ubuntu 13.04. Поскольку это общее пространство, у меня нет привилегий root. В системе установлен OpenSSL 1.0.1c.

После распаковки архива я запускаю configure следующим образом:

./configure --prefix=/home/myname/software --with-ssl=/usr/lib/ssl/

Система жалуется на ncurses:

...
checking whether the child waiter thread should be enabled... yes on SMP build, but not on non-SMP build
checking for kstat_open in -lkstat... (cached) no
checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermcap... no
checking for tgetent in -ltermlib... no
configure: error: No curses library functions found
configure: error: /bin/bash '/home/myname/software/otp_src_R16B02/erts/configure' failed for erts

Помимо ncurses (без которых я, наверное, мог бы жить), мне также нужен libssl-dev (без которого я не могу жить). Я попытался выполнить установку без ncurses (используя флаг --without-termcap) следующим образом:

./configure --prefix=/home/myname/software --with-ssl=/usr/lib/ssl/ --without-termcap
make

В этом случае configure выполняется успешно, но make не работает с криптографией:

make[2]: Entering directory `/home/myname/software/otp_src_R16B02/lib/crypto'
=== Entering application crypto
make[3]: Entering directory `/home/myname/software/otp_src_R16B02/lib/crypto/src'
make[3]: Nothing to be done for `opt'.
make[3]: Leaving directory `/home/myname/software/otp_src_R16B02/lib/crypto/src'
make[3]: Entering directory `/home/myname/software/otp_src_R16B02/lib/crypto/c_src'
make -f x86_64-unknown-linux-gnu/Makefile TYPE=opt
make[4]: Entering directory `/home/myname/software/otp_src_R16B02/lib/crypto/c_src'
/usr/bin/install -c -d ../priv/obj/x86_64-unknown-linux-gnu
gcc -c -o ../priv/obj/x86_64-unknown-linux-gnu/crypto.o -Werror=return-type  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wdeclaration-after-statement  -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS -g -O2 -I/home/myname/software/otp_src_R16B02/erts/x86_64-unknown-linux-gnu   -fno-tree-copyrename  -D_GNU_SOURCE -fPIC -DHAVE_DYNAMIC_CRYPTO_LIB -I/usr/lib/ssl//include -I/home/myname/software/otp_src_R16B02/erts/emulator/beam -I/home/myname/software/otp_src_R16B02/erts/include -I/home/myname/software/otp_src_R16B02/erts/include/x86_64-unknown-linux-gnu -I/home/myname/software/otp_src_R16B02/erts/include/internal -I/home/myname/software/otp_src_R16B02/erts/include/internal/x86_64-unknown-linux-gnu -I/home/myname/software/otp_src_R16B02/erts/emulator/sys/unix crypto.c
crypto.c:36:33: fatal error: openssl/opensslconf.h: No such file or directory
compilation terminated.
make[4]: *** [../priv/obj/x86_64-unknown-linux-gnu/crypto.o] Error 1
make[4]: Leaving directory `/home/myname/software/otp_src_R16B02/lib/crypto/c_src'
make[3]: *** [opt] Error 2
make[3]: Leaving directory `/home/myname/software/otp_src_R16B02/lib/crypto/c_src'
make[2]: *** [opt] Error 2
make[2]: Leaving directory `/home/myname/software/otp_src_R16B02/lib/crypto'
make[1]: *** [opt] Error 2
make[1]: Leaving directory `/home/myname/software/otp_src_R16B02/lib'
make: *** [libs] Error 2

Если бы у меня были привилегии root, я мог бы решить эту проблему с помощью apt-get:

sudo apt-get libncurses5-dev
sudo apt-get libssl-dev

но я не знаю, как/где получить исходный код без apt-get. Может кто-нибудь помочь?


person Ampers4nd    schedule 17.10.2013    source источник
comment
В стеке обмена Ubuntu есть некоторая информация об установке пакетов от имени пользователя без полномочий root: askubuntu.com/questions/339/   -  person kjw0188    schedule 17.10.2013
comment
Спасибо. Я остановился на лучшем хостинге. В любом случае, я не должен ничего делать без root-доступа :-)   -  person Ampers4nd    schedule 23.10.2013


Ответы (1)


Вы можете скомпилировать библиотеки ssl у себя дома, чтобы использовать их в своем коде. Загрузите библиотеки SSL и ncurses (или используйте apt-get source) и что-то вроде этого:

./configure --prefix=$HOME/opt/libssl
make && make install

Если вы используете Debian или Ubuntu, это будет проще, потому что вы можете сделать это:

apt-get source libssl
cd libssl
./configure --prefix=$HOME/opt/libssl
make && make install

После этого вы можете настроить R16B02 для получения библиотек в этом месте:

./configure --with-ssl=$HOME/opt/libssl
person Manuel Rubio    schedule 19.03.2014