說明:基於linux平臺的svn有diff的功能,但是字符界面的diff可讀性太差,於是乎想升級一下diff的功能,正好搭建了bugfreeforsvn,裏面的建議是用ViewVC,這個軟件應該是個不錯的選擇,OK,不用想那麼多了,let's go......
怎麼做?
1、由於需要和svn整合,那麼之前搭建的SVN需要重新編譯安裝。
2、viewvc是用python寫的,爲了支持python,需要將svn和python整合起來。
3、安裝swig,用來將Python和c/c++對接起來,如果你想了解更多,請查看:http://blog.sina.com.cn/s/blog_677257e40100l3bi.html。
準備:
Python-2.7.6.tgz
swig-1.3.24.tar.gz
viewvc-1.1.21.tar.gz
subversion-1.6.18.tar.gz
subversion-deps-1.6.18.tar.gz
操作系統:RHEL x86_64 AS 4.6
下面2個軟件的版本單獨說明一下:這2個軟件的版本很重要,因爲操作系統版本太老4.6的,其他軟件如swig,python都不能用最新的,經過測試必須用某一時間段的版本才能完美整合,下面2個軟件也是如此。
neon-0.29.6.tar.gz serf-0.3.0.tar.bz2
一 搭建SVN
請參見我之前的博文 http://bblxlit.blog.51cto.com/151710/1338493 。
二 重新編譯安裝SVN
1、將/usr/local/subversion這個文件夾備份一下
mv /usr/local/subversion /usr/local/subversion.bak
2、安裝python
由於viewVC使用python寫的,而系統自帶的版本太低,因此安裝該版本。
tar xvzf Python-2.7.6.tgz cd Python-2.7.6 ./configure --prefix=/usr/local/python2 make && make install
3、安裝swig
tar xzvf swig-1.3.24.tar.gz cd SWIG-1.3.24 ./configure --prefix=/usr/local/swig \ --with-python=/usr/local/python2/bin/python make && make install
4、安裝svn
tar xzvf subversion-1.6.18.tar.gz tar xzvf subversion-deps-1.6.18.tar.gz tar xzvf neon-0.29.6.tar.gz tar xzvf serf-0.3.0.tar.bz2 cd subversion-1.6.18 rm -rf apr apr-util neon serf cp -ar ../neon-0.29.6 neon cp -ar ../serf-0.3.0 serf chown -R 1000:users neon serf ./configure \ --prefix=/usr/local/subversion \ --with-apxs=/usr/local/apache2/bin/apxs \ --with-ssl \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util \ --with-zlib=/usr/lib64 \ --with-swig=/usr/local/swig/bin/swig \ --enable-shared \ --enable-static \ PYTHON=/usr/local/python2/bin/python make && make install
5、配置SVN
參見我之前的博文 http://bblxlit.blog.51cto.com/151710/1338493 。
6、綁定subversion
cd subversion-1.6.18 make swig-py make check-swig-py #有一個trac的報錯,無須理會 make install-swig-py
7、添加svn的python binding安裝路徑到Python的path中
由於是源碼安裝,svn的python-binging 不在python默認的搜索路徑中,默認是/usr/local/lib/svn-python/,需要修改如下:
cd /usr/local/python2/lib/python2.7/site-packages echo /usr/local/subversion/lib/svn-python > subversion.pth echo /usr/local/subversion/lib >> /etc/ld.so.conf ldconfig
8、測試svn模塊
首先要修改python的可執行文件路徑,這是由於系統自帶的python未刪除。如果不修改,viewvc在調用python的時候默認使用系統自帶的。如果你不嫌麻煩,那麼請修改viewvc-1.1.21安裝目錄下的所有腳本文件,它們的路徑都是以#!/usr/bin/python開頭的。
cd /usr/bin mv python python.bak ln -s /usr/local/python2/bin/python python
執行如下命令測試:
# python Python 2.7.6 (default, Nov 29 2013, 11:32:29) [GCC 3.4.6 20060404 (Red Hat 3.4.6-9)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import svn.core
如果沒有任何提示,就說明OK了。
三 安裝配置ViewVC
1、安裝ViewVC
tar xvzf viewvc-1.1.21.tar.gz cd viewvc-1.1.21 ./viewvc-install
2、配置apache
# vim /usr/local/apache2/conf/httpd.conf 在306行添加: ScriptAlias /viewvc "/usr/local/viewvc-1.1.21/bin/cgi/viewvc.cgi" ScriptAlias /query "/usr/local/viewvc-1.1.21/bin/cgi/query.cgi" 在330行添加: <Directory "/usr/local/viewvc-1.1.21/bin/cgi"> AllowOverride None Options None Order allow,deny Allow from all </Directory> 在最後添加: <Location "/viewvc"> AuthType Basic AuthName "ViewVC Client Access" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL "ldap://192.168.1.226:389/dc=example,dc=com,dc=cn?uid?sub?(objectClass=*)" Require valid-user </Location>
3、重啓apache
/usr/local/apache2/bin/apachectl restart
4、修改viewVC配置文件
讓viewvc啓用svn的權限控制。
# vim /usr/local/viewvc-1.1.21/viewvc.conf 在如下section中添加: [general] root_parents = /home1/subversion/project: svn 因爲我所有的庫都在project目錄下 [options] authorizer = svnauthz 啓用svn的認證 [authz-svnauthz] authzfile = /home1/subversion/auth 認證文件的路徑
5、訪問viewvc
http://localhost/viewvc
配置完成。