最近要编译android需要64位系统,一直拖着不想重装,今天终于决定一劳永逸,顺便记录安装过程中经常遇到的一些问题。
1. 基本服务。
1.1 Ubuntu安装完成后,安装openssh-server(远程ssh连接)和vim(自带vi有点难用)。
1.2 设置网络固定IP和DNS:
sudo vi /etc/network/interfaces
一个可能的配置:
auto eth0
iface eth0 inet static
address 192.168.1.133
gateway 192.168.1.1
netmask 255.255.255.0
dns-nameservers x.x.x.x x.x.x.x
auto lo
iface lo inet loopback
重启网卡:
sudo /etc/init.d/networking restart
在/etc/resolv.conf中能看到添加的nameserver,不能直接修改此文件,否则重启会失效。
注:如果只更改了interfaces没有添加nameserver,在apt-get install软件时,可能会出现“no address associated with hostname”错误。
2. 安装apache服务器。
sudo apt-get install apache2
apache会安装在/etc/apache2目录,用sudo service apache2 restart启动,测试http://localhost看是否成功。
3. 安装apache svn模块。
sudo apt-get install libapache2-svn
为了进行权限认证,修改/etc/apache2/mods-enabled/dav_svn.load文件:
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
/etc/apache2/mods-enabled下生成dav_svn.conf配置文件,我的配置如下:
<Location /svn> DAV svn SVNListParentPath on AuthzSVNAccessFile /usr/local/svn/conf/authz SVNParentPath /usr/local/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /usr/local/svn/dav_svn.passwd #Require valid-user </Location>
4. 权限控制
权限控制文件为/usr/local/svn/conf/authz,与网上经常能搜到的svnserve中配置的authz不同,svnserve仅对ssh有效,不能用于http。
示例如下:
[groups] admin = user1 dev = user2,user3 [/] @admin = rw [doc:/temp] * = rw [doc:/public] @dev = rw [src:/user2]
user2 = rw
定义了两组用户,user1对svn下所有文件所有读写权限,dev组中的用户对doc/public具有读写权限,user2对src/user2具有读写权限,所有用户对doc/temp具有读写权限。
4.安装svn。
sudo apt-get install subversion
创建一个测试目录:
cd /usr/local/svn
sudo svnadmin create test
sudo chown -R www-data:www-data test #更改svn权限,否则只能读不能写
htpasswd -c dav_svn.passwd <username>#创建svn访问用户的用户名和密码,后续追加用户用htpasswd -m ...
重启apache2,浏览器输入http://localhost/svn/test进行测试。
5. svn转储。
备份原有的svn文件。
sudo svnadmin dump /usr/local/svn/test > svntemp
在新的系统中导入备份文件。
sudo svnadmin create /usr/local/svn/test
sudo svnadmin load /usr/local/svn/test < svntemp