独立安装ViewVC

jackxiang 2010-6-14 16:05 | |
wget //viewvc.tigris.org/files/documents/3330/44050/viewvc-1.0.7.tar.gz
下载后解压SetUP:
bogon:~/svn_view/viewvc-1.0.7 # ./viewvc-install
This is the ViewVC 1.0.7 installer.
Installation path [/usr/local/viewvc-1.0.7]:确定



安装结束后的提示:
  1) Edit the /usr/local/viewvc-1.0.7/viewvc.conf file.

  2) Either configure an existing web server to run
     /usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi.
    
     Or, copy /usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi to an
     already-configured cgi-bin directory.
    
     Or, use the standalone server provided by this distribution at
     /usr/local/viewvc-1.0.7/bin/standalone.py.


---------------------------------------------------------------------------------------------------------------------


开始配置:
打开viewvc.conf,修改下面几行:

#cvs_roots = cvs: /home/cvsroot
svn_roots = SOA_TAE_ALL: /opt/svn/repositories/SOA_TAE_ALL


---------------------------------------------------------------------------------------------------------------------

StartRun:

/svn_view/viewvc-1.0.7/bin
./standalone.py


---------------------------------------------------------------------------------------------------------------------
中文乱码解决:
./templates/classic/include/header.ezt:
./templates/classic/error.ezt:
./templates/classic/query.ezt:
./templates/default/include/header.ezt:
./templates/default/error.ezt:
./templates/default/query.ezt:

在head下面加上:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

文献参考:


ViewVC独立运行的基本配置:
1. ViewVC最简单配置
    打开viewvc.conf,修改下面几行:
    将cvs_roots = cvs: /home/cvsroot注释掉;
    #svn_roots = svn: /home/svnrepos 改成类似于 svn_roots = mytest: C:\svn_repos\mytest,其中mytest是你指定的仓库名,冒号后面跟的是仓库所在的路径;
    default_root = cvs注释掉,这样你至少可以看到仓库列表。//去掉很重要的
2. 双击ViewVC\bin下的standalone.py,就可以启动ViewVC自带的Web服务,然后在IE中输入http://localhost:7467/viewvc就应该可以看到仓库列表了,到这一步为止,我没有碰到什么障碍,所以,没什么可以提示的了;
3. 点击任何一个仓库,就应该可以看到仓库中的目录或文件了,但是,如果你在IE中看到如下的提示:
    ImportError: No module named svn  那说明你没有安装Subversion的Python包,或者将其放到了Subversion的目录下了;
    'module' object has no attribute 'SubversionRepository' 那说明你将Subversion的Python包复制到了viewvc的vclib下,并且覆盖掉了viewvc自己的文件;那么,要怎样安装这个包呢,ok,将其复制到ViewVC或者Python的lib目录下吧,唉,当初整这个也费了我不少周折,惭愧,谁叫我是个Python盲呢:
http://pysvn.tigris.org/project_source_code.html
http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz
安装方法参考模仿:http://www.jackxiang.com/post/3981/
最后问题及其解决:
('Error:', 'cannot find SVN include svn_client.h - use --svn-inc-dir')
make: *** 没有规则可以创建目标“clean”。 停止。
make: *** 无目标。 停止。
make: *** 没有规则可以创建目标“egg”。 停止。
error: Not a URL, existing file, or requirement spec: 'dist/pysvn-1.7.6-py2.6-linux-i686.egg'
解决办法:
yum install  subversion-devel

cd Source
python setup.py configure
make clean
make
=================编译pysvn===============================
cd ../Tests
Test pysvn by running
make

Install pysvn by copying the following from Extension/Source to python site-specific directory.
mkdir python-libdir/site-packages/pysvn
cp pysvn/__init__.py python-libdir/site-packages/pysvn
cp pysvn/_pysvn*.so python-libdir/site-packages/pysvn

rpm -ql python-2.6.6-29.el6_2.2.i686
找到python路径:/usr/lib/python2.6/
cp -Rf /root/software/pysvn-1.7.6/Source/pysvn/_pysvn_2_6.so ./.
cp -Rf /root/software/pysvn-1.7.6/Source/pysvn/__init__.py ./.

========swig支持并绑定到subversion=====================================
绑定到subversion:
要安装viewCvs还需要python的支持,因此我们这里安装的python的2.4版本
./configure PYTHON=/usr/bin/python
make swig-py&&make install-swig_py
然后会生成 libsvn_swig_py.so  文件,使python和subversion绑定起来
=============================================

最近需要用到pysvn扩展包,但在cenos上用easy_install安装不了,说找不到该包,使用yum也不行,无奈只好到官网去下载,我下的是1.7.5的源码包,scp到centos后,执行一下操作:
tar zxvf  pysvn-1.7.5.tar.gz
cd pysvn-1.7.5/Source
python setup.py configure
make
cp pysvn /usr/local/python2.7/
安装完成,在终端下使用ipython,输入import pysvn正常,到此该模块安装完成。
ps:源码安装需要你安装subversion-devel包,否则会提示找不到svn_client.h文件
------------------------------------------------------------------------------------------------------------------------------------------------------------
将viewvc和Apache集成standalone.py启动的viewvc服务不够稳定,在生产环境通产需要和web服务器集成。viewvc以CGI方式集成到Apache中相当简单。只需要用ScriptAlias指令将viewvc安装目录下的bin\cgi子目录映射到一个URL上去。示例:

ScriptAlias /codeview/ "E:/viewvc/bin/cgi/"
重启Apache,即可通过URL:http://localhost/codeview/viewcvs.cgi访问所配置的代码仓库


下载viewvc
$ wget http://www.viewvc.org/nightly/viewvc-1.1-dev-20070307.tar.gz
安装viewvc
$ ./viewvc-install
编辑viewvc配置文件 viewvc.conf
root_parents = /home/userhome/zztest/svn_dir : svn,
# /home/cvs-repositories : cvs
同时你还可以在 viewvc.conf 中找到一些可选配置,比如PHP语法高亮等。
在 Apache 的配置文件中加入viewvc配置,并加如HTTP验证功能
Alias /webview /usr/local/viewvc-dev/bin/cgi/

DirectoryIndex viewvc.cgi
AddHandler cgi-script .cgi
Options ExecCGI FollowSymLinks
AllowOverride None
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /usr/local/viewvc-dev/viewpasswd.conf
Require valid-user
Order allow,deny
Allow from all

这时当你在WEB上查看viewvc时,可能会提示
viewvcImportError: No module named svn
这是因为 python 还需要一个和你工作的svn系统进行联系的库,在svn的原代码中可以进行编译并安装,前提是需要安装 swig 这个软件包,还好在大多数LINUX发行版中,这个软件包是默认安装的。你可以用
$ which swig
这样的命令来验证,如果没有安装上,可以安装一个。接下来你可能需要通过这样的方式,重新编译并安装svn软件包
$ ./configure --prefix=/usr/local --with-apxs=/usr/local/bin/apxs --with-berkeley-db=/usr/local PYTHON=/usr/local/bin/python2.5
$ make
$ sudo make install
$ make swig-py
$ make install-swig-py
现在你的viewvc就可以正常工作了。



五、安装viewCvs
    下载http://viewvc.org源码包并解压
    切换到解压目录
    $./viewvc-install,第一个提示后指定ViewVC的安装目录,第二个提示直接回车就行
   打开viewvc.conf,修改下面几行:
    将cvs_roots = cvs: /home/cvsroot注释掉;
    #svn_roots = svn: /home/svnrepos 改成仓库所在的路径;如果多个仓库加逗号隔开;
六、配置apache,在httpd.conf中添加下面两行
    ScriptAlias /viewvc /usr/local/viewvc-1.0/www/cgi/viewvc.cgi
    ScriptAlias /query /usr/local/viewvc-1.0/www/cgi/query.cgi
    在最后添加如:
    <Location /svn>
      DAV svn
      SVNParentPath /home/subversion 仓库目录
      AuthzSVNAccessFile /home/subversion/svnuser 存取权限文件
      AuthType Basic
      AuthName "Subversion repository"
      AuthUserFile /home/subversion/svnpasswd 用户验证文件
      Require valid-user
    </Location>
    创建用户难文件:
   #htpasswd -cm /home/subversion/svnpass username     //来创建的 ,后面会让你输入用户密码
    添加用户则   htpasswd -m /home/subversion/svnpass user
    对于存取权限设置文件大致内容如下:
    [/]
    * = r
    [groups]
    diggmore = nio, binzy, easy, vicki, freeman, rainx
    [diggmore:/]
    @diggmore = rw
综上设置,启动apache就可以了,如果在提交文件到仓库时出现拒绝错误,请确定httpd.conf里设置的linux用户是否对仓库目录有权限

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3191/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2012-10-26 11:28
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]