2009年1月17日星期六

Linux上安装subversion手记(包括apache apr, berkeley DB)

注:转载自 http://blog.chinaunix.net/u/5948/showart_1069973.html


由于工作需要,所以试着在SUSE上安装了以把subversion,前后也搞了差不多5个小时,回头一看,要是熟练的话也就2个小时的事情,所以就把经过写出来,给也需要在linux上安装subversion的朋友一点借签。 因为我用的都是源码包编译安装,所以应该对于具体的Linux发行版本没有过多要求。也就是说我是在SUSE下安装,但是如果把这个过程放到redhat或者fedora或者ubuntu上应该也是完全可行的。 好了,不说废话了,进入主题。
  1. 首先下载berkeley DB

地址:http://download.oracle.com/berkeley-db/db-4.6.18.tar.gz

下这个因为subversion内部使用的管理数据的功能会需要用到。 但是后来经过猜测,应该不装也没问题,因为subversion有两种关于这个的模式,不装的话可以用另外种,subversion的解释如下

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository. * fs_fs : Module for working with a plain file (FSFS) repository.

但是为了保险我还是装了,具体命令行如下 tar zxvf db-4.6.18.tar.tar
cd db-4.6.18/build_unix/
../dist/configure --prefix=/usr/local/bdb
make
make install

  1. 接着安装aprapr-util

这是个apacheproject,全名是Apache Portable Runtime 现在最新的版本是1.2.12,不过貌似那个版本是给apache2.6用的,而我们的apache2.0.x的,所以我用的是0.9.17的。这个要注意下,版本不符合可能安装会有问题,下面是下载地址 http://apr.apache.org/

先装apr, 如果下的gz包可以用 tar zxvf apr-0.9.17.tar.tar 解压 如果是bz2包可以用 tar xfj apr-0.9.17.tar.tar 然后 cd apr-0.9.17/
./configure
make
make install 这里configure的时候不指定路径的话默认是安装到/usr/local/

然后安装apr-util 解压同apr 然后 cd apr-util-0.9.15/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-berkeley-db=/usr/local/bdb (这步要把berkeley数据库一起编译进去,否则berkeley就白装了) make
make install

  1. 安装subversion

首先,当然还是下载 Subversion源码包:http://subversion.tigris.org/downloads/subversion-1.4.3.tar.bz2 依赖包:http://subversion.tigris.org/downloads/subversion-deps-1.4.3.tar.bz2

tar xfj subversion-1.4.3.tar.bz2
tar xfj subversion-deps-1.4.3.tar.bz2
./configure --with-apxs=/opt/oss/sbin/apxs --with-apr=/usr/local/apr/bin/apr-config --with-apr-util=/usr/local/apr-util/bin/apu-config
make
make install

装完后用svnadmin –version查看下是否有信息,有的话说明安装成功

4.配置 首先创建一个repository svnadmin create /home/svn/projectname 然后把/home/svn/projectname/conf/passwd, /home/svn/projectname/conf/svnserve.conf, /home/svn/projectname/hooks/control-file里的参数配置一下 passwd里放的是每个用户名和密码 svnserve.conf里放的是关于匿名和非匿名用户的权限 control-file里放的是具体到每个文件夹,每个用户的读写权限

再来要打开subversion的端口,subversion默认端口是3690 su - root -c "svnserve -d -r /home/svn/projectname"

命令执行后可以用 ps -ed | grep svnserve 查看svnserve服务是否已经启动

还可以用 netstat -ant | grep 3690 查看3690端口是否已经被监听

5.导入资源

首先把当前路径设置到放代码的路径,比如说

/home/htdocs/projectname

然后执行

svn import svn://localhost/projectname -m "projectname"

等命令行重新出现后就完成了。

6Check out

这步没啥好说的了,就是从客户端把代码check out了。注意check out的时候选的资源名就是第5步中svn://localhost/projectname这个地址里的projectname

2009年1月16日星期五

Apache安装后的服务配置

参考的源代码版本是 2.2.11,系统是Redhat 4U5。
用tar解压缩,依次运行
./configure
./make
./make install
默认安装到/usr/local/apache2,但不会自动安装为服务。

另外需要执行
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
把服务脚本复制到系统路径。

执行
service httpd start
启动服务

至此,服务已经创建,但是还没有设置好RUNLEVEL,也就是说重启后服务不会自动运行。
参考下面的文章把/etc/init.d/httpd修改好,执行命令
/sbin/chkconfig httpd reset

这样就可以在XWindows的服务配置中看到httpd服务了。

--------------------------------------------------------
以下是参考文献的原文:
下载源码包 make && make install 之后, apache 并不会自动往 init.d 里面添加自己的 httpd service。需要手工把 apache 安装目录的 bin/apachectl 拷贝一份到 /etc/init.d/httpd 。如果想让 httpd service 能够在不同的运行级别下都能自动启动,还需要 vi /etc/init.d/httpd ,在 #!/bin/sh 下面增加几行 chkconfig 需要的内容:

# chkconfig: 2345 70 30
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd

关键是 chkconfig: 2345 70 30 这一行,第一个数字 2345 表示让 apache 在 2345 这四个级别都自动运行;第二个数字 70 表示进程启动的优先级;第三个数字 30 表示进程停止的优先级。修改保存之后执行 /sbin/chkconfig httpd reset ,chkconfig 就自动在各个级别的 rc*.d 中增加 httpd 的 link 。要查看 chkconfig 是否 reset 正确,通过命令 /sbin/chkconfig --list httpd 就可以查看当前 httpd service 被配置在哪几个运行级别自启动。