wget最新的版本地址本身修改html
一、編譯安裝apr、apr-util
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.5.2.tar.gz
./configure --prefix=/usr/local/apr
make & make install
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make & make installpython
二、若是沒有安裝scons和serf須要安裝,不然會報錯linux
Traceback (most recent call last): File "<stdin>", line 1, in <module> pysvn._pysvn_2_7.ClientError: Unrecognized URL scheme for 'https://svn.xxx/'
參考:http://blog.uouo123.com/post/402.html
c++
緣由在svn1.8版本以前按照原來的安裝方法是能夠加載到dav的模塊,可是,1.8版本之後,須要serf軟件包支持訪問 http 協議的版本庫,否則就會報錯. serf須要用scons來編譯安裝,因此先安裝下sconssql
wget http://pkgs.fedoraproject.org/repo/pkgs/scons/scons-2.3.6.tar.gz/9c6a1c3c716cbe5f16515f163c91d928/scons-2.3.6.tar.gz
tar -zxvf scons-2.3.6
cd scons-2.3.6
/usr/local/bin/python2.7 setup.py installapache
wget https://archive.apache.org/dist/serf/serf-1.3.8.zip
unzip serf-1.3.8.zip
cd serf-1.3.8
ln -s /usr/local/apr/bin/apr-1-config /usr/bin/apr-1-config
ln -s /usr/local/apr-util/bin/apu-1-config /usr/bin/apu-1-config
scons PREFIX=/usr/local/serf
scons install
scons -cpython2.7
三、編譯安裝sqlite
wget http://www.sqlite.org/2016/sqlite-autoconf-3110100.tar.gz
./configure --prefix=/usr/local/sqlite3
make && make installsvn
指定路徑能夠避免svn安裝時候出現與原環境sqlite版本衝突的問題:post
Traceback (most recent call last): File "<stdin>", line 1, in <module> pysvn._pysvn_2_7.ClientError: Couldn't perform atomic initialization SQLite compiled for 3.11.1, but running with 3.6.20
四、編譯安裝subversion :
參考:https://teddysun.com/243.html (這裏編譯安裝)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.3.tar.gz
./configure --with-serf=/usr/local/serf --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite3/
make && make install
四、編譯安裝pysvn:
wget http://tigris.org/files/documents/1233/49465/pysvn-1.8.0.tar.gz
cd pysvn-1.8.0/Source
/usr/local/bin/python2.7 setup.py configure --svn-bin-dir=/usr/local/subversion/bin --svn-inc-dir=/usr/local/subversion/include/subversion-1/ --svn-lib-dir=/usr/local/subversion/lib/ --apu-inc-dir=/usr/local/apr-util/include/apr-1/ --apr-inc-dir=/usr/local/apr/include/apr-1/ --apr-lib-dir=/usr/local/apr/lib/
make
編譯完在Source路徑下會生成pysvn
cp -r pysvn /你的python2.7路徑/python2.7/site-packages/測試
五、安裝完測試報錯:
>>> import pysvn Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pysvn/__init__.py", line 116, in <module> raise ImportError( 'pysvn was built against newer (svn, apr, etc.) libraries then the ones installed on this system. %s' % str(e) ) ImportError: pysvn was built against newer (svn, apr, etc.) libraries then the ones installed on this system. /usr/local/subversion/lib/libsvn_delta-1.so.0: undefined symbol: apr_hash_this_key
分別執行ldd查看引用差別:
ldd /usr/local/subversion/lib/libsvn_delta-1.so.0
ldd pysvn/_pysvn_2_7.so
[root@test1 ~]# ldd /usr/local/subversion/lib/libsvn_delta-1.so.0 linux-vdso.so.1 => (0x00007fff2e747000) libsvn_subr-1.so.0 => /usr/local/subversion/lib/libsvn_subr-1.so.0 (0x00007f1960ec9000) libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f1960c2e000) libaprutil-1.so.0 => /usr/local/apr-util/lib/libaprutil-1.so.0 (0x00007f1960a09000) libexpat.so.0 => /usr/local/apr-util/lib/libexpat.so.0 (0x00007f19607e2000) libapr-1.so.0 => /usr/local/apr/lib/libapr-1.so.0 (0x00007f19605ae000) librt.so.1 => /lib64/librt.so.1 (0x00007f19603a6000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f196016f000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f195ff51000) libz.so.1 => /lib64/libz.so.1 (0x00007f195fd3b000) libc.so.6 => /lib64/libc.so.6 (0x00007f195f9a7000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f195f7a2000) /lib64/ld-linux-x86-64.so.2 (0x0000003510000000) libfreebl3.so => /lib64/libfreebl3.so (0x00007f195f52b000) [root@test1 ~]# ldd /usr/local/lib/python2.7/site-packages/pysvn/_pysvn_2_7.so linux-vdso.so.1 => (0x00007fff154b6000) libsvn_client-1.so.0 => /usr/local/subversion/lib/libsvn_client-1.so.0 (0x00007f7eab298000) libsvn_repos-1.so.0 => /usr/local/subversion/lib/libsvn_repos-1.so.0 (0x00007f7eab060000) libsvn_wc-1.so.0 => /usr/local/subversion/lib/libsvn_wc-1.so.0 (0x00007f7eaada9000) libsvn_fs-1.so.0 => /usr/local/subversion/lib/libsvn_fs-1.so.0 (0x00007f7eaab9e000) libsvn_subr-1.so.0 => /usr/local/subversion/lib/libsvn_subr-1.so.0 (0x00007f7eaa878000) libsvn_diff-1.so.0 => /usr/local/subversion/lib/libsvn_diff-1.so.0 (0x00007f7eaa662000) libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f7eaa42b000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f7eaa124000) libm.so.6 => /lib64/libm.so.6 (0x00007f7ea9ea0000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f7ea9c8a000) libc.so.6 => /lib64/libc.so.6 (0x00007f7ea98f5000) libsvn_ra-1.so.0 => /usr/local/subversion/lib/libsvn_ra-1.so.0 (0x00007f7ea96e8000) libsvn_ra_local-1.so.0 => /usr/local/subversion/lib/libsvn_ra_local-1.so.0 (0x00007f7ea94de000) libsvn_fs_fs-1.so.0 => /usr/local/subversion/lib/libsvn_fs_fs-1.so.0 (0x00007f7ea928e000) libsvn_fs_x-1.so.0 => /usr/local/subversion/lib/libsvn_fs_x-1.so.0 (0x00007f7ea903b000) libsvn_fs_util-1.so.0 => /usr/local/subversion/lib/libsvn_fs_util-1.so.0 (0x00007f7ea8e39000) libsvn_ra_svn-1.so.0 => /usr/local/subversion/lib/libsvn_ra_svn-1.so.0 (0x00007f7ea8c1b000) libsvn_delta-1.so.0 => /usr/local/subversion/lib/libsvn_delta-1.so.0 (0x00007f7ea8a09000) libz.so.1 => /lib64/libz.so.1 (0x00007f7ea87f3000) libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f7ea8563000) libaprutil-1.so.0 => /usr/local/apr-util/lib/libaprutil-1.so.0 (0x00007f7ea833e000) libexpat.so.0 => /usr/local/apr-util/lib/libexpat.so.0 (0x00007f7ea8117000) librt.so.1 => /lib64/librt.so.1 (0x00007f7ea7f0e000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f7ea7cd7000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7ea7aba000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f7ea78b5000) /lib64/ld-linux-x86-64.so.2 (0x0000003510000000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f7ea76b0000) libfreebl3.so => /lib64/libfreebl3.so (0x00007f7ea7439000)
apr文件差別:
_pysvn_2_7.so libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f7eaa42b000) libsvn_delta-1.so.0 libapr-1.so.0 => /usr/local/apr/lib/libapr-1.so.0 (0x00007f19605ae000)
備份/usr/lib64/libapr*
用編譯完的apr/lib和apr-util/lib下的類文件替換/usr/lib64/下的原libapr*
pysvn報下面錯誤,須要在本地先用svn命令checkout,有個選項「p」,而後輸入帳號密碼
pysvn._pysvn_2_7.ClientError: callback_ssl_server_trust_prompt required
svn報:
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
ln -s /usr/local/serf/lib/libserf-1.so.1 /usr/lib64/libserf-1.so.1