1

Я хотел установить более новую версию SVN без рут-доступа. В Ubuntu версия apt-get:

svn --version

SVN, версия 1.8.8 (r1568071)

Пока я бы хотел установить более свежую subversion-1.8.13 .

На сервере, которым я занимаюсь, не установлен apr, apr-util, для этого я также установил их в автономном режиме:

cd $HOME
mkdir custom_installed
cd custom_installed
# Install apr
wget ftp://mirror.switch.ch/mirror/apache/dist//apr/apr-1.5.2.tar.gz
tar xvfz apr-1.5.2.tar.gz
cd apr-1.5.2
./configure —prefix=$HOME/custom_installed
make
make test
make install
cd ..

# Install apu
wget ftp://mirror.switch.ch/mirror/apache/dist//apr/apr-util-1.5.4.tar.gz
tar xvfz apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=$HOME/custom_installed --with-apr=$HOME/custom_installed
make
make test
make install
cd ..

Кажется, он правильно установлен на custom_installed, имеет следующие архивы include, lib и bin:

ls lib

apr.exp aprutil.exp libapr-1.la libapr-1.so.0
libaprutil-1.a libaprutil-1.so libaprutil-1.so.0.5.4 apr-util-1 libapr-1.a libapr-1.so libapr-1.so.0.5.2 libaprutil-1.la libaprutil- 1.so.0 pkgconfig

ls include/apr-1

apr_allocator.h apr_dbm.h apr_general.h apr_ldap_init.h apr_mmap.h apr_queue.h apr_signal.h
apr_thread_pool.h apr_want.h apr_anylock.h apr_dso.h
apr_getopt.h apr_ldap_option.h apr_network_io.h
apr_random.h apr_skiplist.h apr_thread_proc.h apr_xlate.h apr_atomic.h apr_env.h appr_global_mutex.h h apr_optional_hooks.h apr_ring.h apr_strmatch.h apr_time.h apu_errno.h apr_buckets.h apr_escape.h
apr_hash.h apr_lib.h apr_poll.h apr_rmm.h apr_support.h apr_uri.h apu.h apr_crypto.h
apr_file_info.h apr_hooks.h apr_md4.h apr_pools.h
apr_sdbm.h apr_tables.h apr_user.h apu_version.h apr_date.h apr_file_io.h apr_inherit.h apr_md5.h
apr_portable.h apr_sha1.h apr_thread_cond.h apr_uuid.h
apu_want.h apr_dbd.h apr_fnmatch.h apr_ldap.h
apr_memcache.h apr_proc_mutex.h apr_shm.h
apr_thread_mutex.h apr_version.h

ls bin

apr-1-config apu-1-config

Тем не менее, когда я пытаюсь установить SVN, либо с помощью tarball:

wget http://apache.claz.org/subversion/subversion-1.8.13.tar.gz
tar xvfz subversion-1.8.13.tar.gz
cd subversion-1.8.13
wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
unzip sqlite-amalgamation-3071501.zip
mv sqlite-amalgamation-3071501 sqlite-amalgamation
./configure --prefix=$HOME/custom_installed --with-apr=$HOME/custom_installed --with-apr-util=$HOME/custom_installed
make

или ствол SVN:

svn co https://svn.apache.org/repos/asf/subversion/trunk svn
cd svn
# get SQLite amalgamation if required
chmod +x autogen.sh
./autogen.sh
wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
unzip sqlite-amalgamation-3071501.zip
mv sqlite-amalgamation-3071501 sqlite-amalgamation
./configure —prefix=$HOME/custom_installed --with-apr=$HOME/custom_installed --with-apr-util=$HOME/custom_installed
make

Я продолжаю получать эту ошибку:

libtool: ссылка: предупреждение: библиотека /home/wsfreund/custom_installed/lib/libapr-1.la' was moved. /bin/sed: can't read /usr/local/apr/lib/libapr-1.la: No such file or directory libtool: link: /usr/local/apr/lib/libapr-1.la 'нет действительный архив libtool make: *** [subversion /libsvn_subr /libsvn_subr-1.la] Ошибка 1

во время связи:

cd subversion/libsvn_subr && /bin/bash "/home/wsfreund/custom_installed/svn/libtool" --tag=CC --silent --mode=link gcc  -g -O2  -g -O2 -pthread    -rpath /home/wsfreund/custom_installed/lib -version-info 0 -Wl,--no-undefined -o libsvn_subr-1.la  adler32.lo atomic.lo auth.lo base64.lo bit_array.lo cache-inprocess.lo cache-membuffer.lo cache-memcache.lo cache.lo cache_config.lo checksum.lo cmdline.lo compat.lo compress.lo config.lo config_auth.lo config_file.lo config_win.lo crypto.lo ctype.lo date.lo debug.lo deprecated.lo dirent_uri.lo dso.lo eol.lo error.lo fnv1a.lo gpg_agent.lo hash.lo io.lo iter.lo lock.lo log.lo macos_keychain.lo magic.lo md5.lo mergeinfo.lo mutex.lo nls.lo object_pool.lo opt.lo packed_data.lo path.lo pool.lo prefix_string.lo prompt.lo properties.lo quoprint.lo root_pools.lo simple_providers.lo skel.lo sorts.lo spillbuf.lo sqlite.lo sqlite3wrapper.lo ssl_client_cert_providers.lo ssl_client_cert_pw_providers.lo ssl_server_trust_providers.lo stream.lo string.lo subst.lo sysinfo.lo target.lo temp_serializer.lo time.lo token.lo types.lo user.lo username_providers.lo utf.lo utf8proc.lo utf_validate.lo utf_width.lo validate.lo version.lo win32_crashrpt.lo win32_crypto.lo win32_xlate.lo x509info.lo x509parse.lo xml.lo -L/home/wsfreund/custom_installed/lib -laprutil-1 -L/home/wsfreund/custom_installed/lib -lapr-1 -lexpat -lz  -ldl -lpthread   

Что самое странное, я понятия не имею, почему он хочет найти его в /usr/local/apr/lib/libapr-1.la , так как он должен найти его в /home/wsfreund/custom_installed/lib

Добавление дополнительной информации:

/home/wsfreund/custom_installed/svn/libtool --tag=CC --mode=link gcc  -g -O2  -g -O2 -pthread    -rpath /home/wsfreund/custom_installed/lib -version-info 0 -Wl,--no-undefined -o libsvn_subr-1.la  adler32.lo atomic.lo auth.lo base64.lo bit_array.lo cache-inprocess.lo cache-membuffer.lo cache-memcache.lo cache.lo cache_config.lo checksum.lo cmdline.lo compat.lo compress.lo config.lo config_auth.lo config_file.lo config_win.lo crypto.lo ctype.lo date.lo debug.lo deprecated.lo dirent_uri.lo dso.lo eol.lo error.lo fnv1a.lo gpg_agent.lo hash.lo io.lo iter.lo lock.lo log.lo macos_keychain.lo magic.lo md5.lo mergeinfo.lo mutex.lo nls.lo object_pool.lo opt.lo packed_data.lo path.lo pool.lo prefix_string.lo prompt.lo properties.lo quoprint.lo root_pools.lo simple_providers.lo skel.lo sorts.lo spillbuf.lo sqlite.lo sqlite3wrapper.lo ssl_client_cert_providers.lo ssl_client_cert_pw_providers.lo ssl_server_trust_providers.lo stream.lo string.lo subst.lo sysinfo.lo target.lo temp_serializer.lo time.lo token.lo types.lo user.lo username_providers.lo utf.lo utf8proc.lo utf_validate.lo utf_width.lo validate.lo version.lo win32_crashrpt.lo win32_crypto.lo win32_xlate.lo x509info.lo x509parse.lo xml.lo -L/home/wsfreund/custom_installed/lib -laprutil-1 -L/home/wsfreund/custom_installed/lib -lapr-1 -lexpat -lz  -ldl -lpthread --debug --config 

libtool: ссылка: предупреждение: библиотека `/home/wsfreund/custom_installed/lib/libapr-1.la 'была перемещена.

libtool: link: rm -fr  .libs/libsvn_subr-1.a .libs/libsvn_subr-1.so .libs/libsvn_subr-1.so.0 .libs/libsvn_subr-1.so.0.0.0

libtool: link: gcc -shared  -fPIC -DPIC  .libs/adler32.o .libs/atomic.o .libs/auth.o .libs/base64.o .libs/bit_array.o .libs/cache-inprocess.o .libs/cache-membuffer.o .libs/cache-memcache.o .libs/cache.o .libs/cache_config.o .libs/checksum.o .libs/cmdline.o .libs/compat.o .libs/compress.o .libs/config.o .libs/config_auth.o .libs/config_file.o .libs/config_win.o .libs/crypto.o .libs/ctype.o .libs/date.o .libs/debug.o .libs/deprecated.o .libs/dirent_uri.o .libs/dso.o .libs/eol.o .libs/error.o .libs/fnv1a.o .libs/gpg_agent.o .libs/hash.o .libs/io.o .libs/iter.o .libs/lock.o .libs/log.o .libs/macos_keychain.o .libs/magic.o .libs/md5.o .libs/mergeinfo.o .libs/mutex.o .libs/nls.o .libs/object_pool.o .libs/opt.o .libs/packed_data.o .libs/path.o .libs/pool.o .libs/prefix_string.o .libs/prompt.o .libs/properties.o .libs/quoprint.o .libs/root_pools.o .libs/simple_providers.o .libs/skel.o .libs/sorts.o .libs/spillbuf.o .libs/sqlite.o .libs/sqlite3wrapper.o .libs/ssl_client_cert_providers.o .libs/ssl_client_cert_pw_providers.o .libs/ssl_server_trust_providers.o .libs/stream.o .libs/string.o .libs/subst.o .libs/sysinfo.o .libs/target.o .libs/temp_serializer.o .libs/time.o .libs/token.o .libs/types.o .libs/user.o .libs/username_providers.o .libs/utf.o .libs/utf8proc.o .libs/utf_validate.o .libs/utf_width.o .libs/validate.o .libs/version.o .libs/win32_crashrpt.o .libs/win32_crypto.o .libs/win32_xlate.o .libs/x509info.o .libs/x509parse.o .libs/xml.o   -Wl,-rpath -Wl,/home/wsfreund/custom_installed/lib -Wl,-rpath -Wl,/home/wsfreund/custom_installed/lib -L/home/wsfreund/custom_installed/lib /home/wsfreund/custom_installed/lib/libaprutil-1.so /home/wsfreund/custom_installed/lib/libapr-1.so /usr/lib/x86_64-linux-gnu/libexpat.so -lz -ldl -lpthread  -O2 -O2 -pthread -Wl,--no-undefined   -pthread -Wl,-soname -Wl,libsvn_subr-1.so.0 -o .libs/libsvn_subr-1.so.0.0.0

libtool: link: (cd ".libs" && rm -f "libsvn_subr-1.so.0" && ln -s "libsvn_subr-1.so.0.0.0" "libsvn_subr-1.so.0")

libtool: link: (cd ".libs" && rm -f "libsvn_subr-1.so" && ln -s "libsvn_subr-1.so.0.0.0" "libsvn_subr-1.so")

libtool: link: ar cru .libs/libsvn_subr-1.a  adler32.o atomic.o auth.o base64.o bit_array.o cache-inprocess.o cache-membuffer.o cache-memcache.o cache.o cache_config.o checksum.o cmdline.o compat.o compress.o config.o config_auth.o config_file.o config_win.o crypto.o ctype.o date.o debug.o deprecated.o dirent_uri.o dso.o eol.o error.o fnv1a.o gpg_agent.o hash.o io.o iter.o lock.o log.o macos_keychain.o magic.o md5.o mergeinfo.o mutex.o nls.o object_pool.o opt.o packed_data.o path.o pool.o prefix_string.o prompt.o properties.o quoprint.o root_pools.o simple_providers.o skel.o sorts.o spillbuf.o sqlite.o sqlite3wrapper.o ssl_client_cert_providers.o ssl_client_cert_pw_providers.o ssl_server_trust_providers.o stream.o string.o subst.o sysinfo.o target.o temp_serializer.o time.o token.o types.o user.o username_providers.o utf.o utf8proc.o utf_validate.o utf_width.o validate.o version.o win32_crashrpt.o win32_crypto.o win32_xlate.o x509info.o x509parse.o xml.o
libtool: link: ranlib .libs/libsvn_subr-1.a

/bin/sed: не могу прочитать /usr/local/apr/lib/libapr-1.la: нет такого файла или каталога libtool: ссылка: `/usr/local/apr/lib/libapr-1.la 'is недопустимый архив libtool

Об этом также сообщили users@subversion.apache.org

1 ответ1

1

Согласно этому вопросу о переполнении стека, оба файла .la (libapr-1.la и libaprutil-1.la) описывают сами библиотеки и должны быть прокомментированы. Вероятно, пути, на которые ссылаются эти файлы, неверны или по умолчанию соответствуют LD_LIBRARY_PATH вашей системы.

Редактирование обоих файлов с помощью текстового редактора и обновление соответствующих путей для указания на вновь скомпилированные двоичные файлы библиотеки должны решить эту проблему. Особенности внесенных изменений подробно описаны ниже.


Если проблема не устранена, может помочь следующий вопрос о переполнении стека . Вы можете вручную добавить свои локально скомпилированные библиотеки в LD_LIBRARY_PATH или установить флаг -rpath для любых вызовов gcc , отредактировав Makefile (или любые сценарии сборки), чтобы переопределить пути общих библиотек по умолчанию.



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

строка 41 в файле libapr-1.la:

libdir='/usr/local/apr/lib' # change to your installation path

и строка 20 на libaprutil-1.la:

dependency_libs=' /usr/lib/x86_64-linux-gnu/libexpat.la /usr/local/apr/lib/libapr-1.la -lrt -lcrypt -lpthread -ldl' # change libapr-1.la path to the correct one

После этого обязательно сбросьте установочные файлы конфигурации, выполнив (адаптируйте ./configure к своим правильным путям и потребностям):

make clean
./configure —prefix=$HOME/custom_installed --with-apr=$HOME/custom_installed/bin/apr-1-config --with-apr-util=$HOME/custom_installed/bin/apu-1-config

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .