在thinkpad t400上安装debian lenny

上周末从upnb搬了一部Thinkpad T400-aa1回来,价钱比较实惠。刚好debian 5.0 (lenny)发布,于是打算在小黑上安装lenny,这一系列文章主要是记录安装、配置lenny的过程。

安装前的准备花费了一点时间。因为t400 aa1是港版学生机,自带的操作系统是繁体中文windows vista,也可以转换成英文vista用,不过据说运行简体软件仍会出现乱码。于是就把它格掉,准备安装windows xp。之所以装xp,是因为对vista系统印象一直不好。家里DELL计算机上的vista,用了两年多了,还是用不习惯。

安装xp的过程就不细讲了,用的是upnb提供的windows xp恢复盘。

安装完xp后,整个硬盘只有两个分区,一个系统分区,另外一个是一键恢复占用的隐藏分区。虽然说lenovo的一键恢复没什么大用,不过懒得删掉它,放在那儿放着吧,反正250G的硬盘足够大了。

要安装debian,首先要为debian留出空闲分区。可以使用PQMAGIC来重新分区,不过这样分区后,一键恢复功能就不能用了。在网上搜了一下,联想网站上介绍了一种分区方法,这种方法不会影响一键恢复功能。

参照文章对ThinkPad预装系统重新分区,先磁盘整理(其实没什么好整理的,刚装的xp),然后拿出我DELL机配的vista安装盘,运行diskpart,收回了不到120G的硬盘空间。把这120G建成扩展分区,里面再拿出两个32G来格成fat32系统。之所以格成fat32系统,主要考虑到这两个分区要同时能在debian以及windows里访问,而32G是fat32文件系统能支持的最大分区大小。

现在还剩下大概50多G的空间,对安装debian来说足够了。

我安装debian,都是使用netinst映像。先由netinst光盘安装完基本系统,然后再由网络安装。这样的好处是不用下载几张光盘镜像,这些镜像在装过一次后基本没什么用了,因为debian在不断更新中;不过网络安装要求有便利的上网条件,以及高速的下载源。在当前的宽带环境下,这倒不是什么问题。

debian官方网站下载netinst光盘映像,我下的是大约180MB的映像。如果你更懒的话,可以下载不到40MB的映像。

把映像刻录到光盘后,光盘启动,按照提示一步步做就可以了。lenny在安装过程中有中文界面,如果选用中文界面的话,安装后系统的默认语言就是中文。我在这里选的是英文界面,中文打算安装完lenny后再配置。

安装过程不必多讲,大概只有硬盘分区时费一点脑子,要想好自己怎么分区。我通常是分三个区,一个/分区,一个/home分区,一个swap分区。debian也可以帮你自动分区,不过我看了一下,自动分区后,留给/分区的空间不够,最好还是手动分区。

在配置apt源的时候,要等上很长一段时间,当时以为出了什么问题,不过后来还是走过去了。apt源设置成网速最快的,以前我都使用debian.cn99.com,不过最近用它更新好像不正常,改用台湾的源http://ftp.tw.debian.org/debian,下载的速度还不错。配置完apt源,会让你选择安装哪些包,我在这儿把所有选项都清掉了,先把基本系统装好再装这些包也不迟。

跳过package安装后,很快基本系统就装好了。重启计算机,进入debian,本本的硬件差不多都能识别出来。切换到root用户,运行aptitude,把自己想装的任务(task)选中,GO,开始下载安装~~ 下载安装的过程差不多花了两个小时,主要取决于你所选的包的数目,我选了xfce、KDE、笔记本相关组件、中文组件等。

安装完成了,接下来要进行系统配置,下篇文章继续。

在debian etch中配置subversion版本管理

以下操作如无特殊注明,均为root执行的操作。

安装软件包

首先,需要下载安装下列软件包:

  • apache2
  • apache2-common
  • apache2-utils
  • libapache2-svn
  • openssl
  • ssl-cert
  • subversion
  • subversion-tools

使用apt-get install命令安装上列软件包。

生成SSL自认证证书

如果要加密对版本服务器的访问,需要启用SSL。你可以到商业证书颁发机构去申请一个合法的证书,也可以采用自认证的方式。我们用下面的命令生成SSL自认证证书,并把它放在/etc/apache2/ssl/目录中。

mkdir /etc/apache2/ssl
/usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem 

根据提示回答相应的信息,最后就会生成所需的证书了。

配置apache2

在apache2中启用ssl模块,使用下面的命令:

a2enmod ssl 

接下来,配置虚拟主机来使能ssl,我的apache2服务器只提供版本库的加密访问,不提供基本的http web服务,所以关闭了80端口,只开启443端口。

修改/etc/apache2/sites-available/default文件,将前两行改为:

NameVirtualHost *:443
<VirtualHost *:443> 

然后在文件中加入下面的内容:

      SSLEngine On
      SSLCertificateFile /etc/apache2/ssl/apache.pem 

上面的语句打开了SSL引擎,使用我们刚刚生成的证书文件进行认证。

default虚拟主机应该缺省已经使能了,也就是在/etc/apache2/sites-enabled/目录中已经存在一个符号链接,指向/etc/apache2/sites-available/default。如果没有的话,可以使用下面的命令使能这个虚拟主机:

a2ensite default 

现在修改文件/etc/apache2/ports.conf,把文件的内容改为:

Listen 443 

也就是我们的apache2只监听443端口。

好了,现在启动apache2:

/etc/init.d/apache2 start 

如果你没有使用ServerName配置主机名的话,会提示下面的错误,忽略即可:

Starting web server (apache2)...apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 

在浏览器中输入如下URL,看是否能够访问:


https://127.0.0.1/

如果正常的话,你会看到一个缺省的页面,上面显示”It works!“。如果没有出现此页面,可能你的apache2配置有问题,查看一下错误日志和访问日志,以定位问题。这两个日志的缺省位置在 /var/log/apache2/。

配置subversion

首先新建一个用户svnadmin来管理版本库,使用下面的命令:

addgroup svn
adduser svnadmin –ingroup svn
adduser www-data svn 

上面的命令首先创建一个svn用户组,然后创建用户svnadmin,并把这个用户放在svn组中。第三个命令则是把www-data用户也加入到svn组,因为web server是以www-data用户在运行的,要从web server读写版本库,www-data用户必须有版本库的读写权限。

现在用su – svnadmin命令切换到svnadmin用户,我们要保证svn用户组的所有用户都具备版本库的读写权限,所以修改svnadmin的umask,修改svnadmin用户的~/.bashrc,在文件中加入下面这行:

umask 002 

退出再重新登录。这样,由svnadmin创建的版本库,就可以被所有属于svn组的用户读写了。

现在创建版本库(由用户svnadmin执行下面的命令):

svnadmin create ~/repos/svntest 

我们创建了一个名为svntest的版本库。如果你已经有cvs的版本库,想把它转到subversion上,可以安装cvs2svn软件包,用里面的工具进行转换。

配置apache2/SVN

首先,使能apache2的dav_svn模块:

a2enmod dav_svn 

我们使用基本的http认证对访问版本库的所有用户进行认证,只有认证用户才有版本库的访问权。

首先为版本库的用户生成密码文件:

htpasswd -cm /etc/svnusers xxxxx
htpasswd -m /etc/svnusers yyyyy 

上面的命令创建了密码文件/etc/svnusers,并增加两个用户xxxxx和yyyyy。

然后在/etc/apache2/sites-available/default文件中加入如下语句:

<Location /svn>
DAV svn
SVNParentPath /home/svnadmin/repos
AuthType Basic
AuthName "Subversion Auth"
AuthUserFile /etc/svnusers
require valid-user
</Location> 

这段话,对URL中指向/svn目录的访问请求,使用DAV进行访问。我们把/home/svnadmin/repos做为所有版本库的父目录,在该目录下可以增加多个版本库。另外,使用/etc/svnusers密码文件对用户进行认证。

现在,重启apache2服务:

/etc/init.d/apache2 restart 

在浏览器中输入:

https://127.0.0.1/svn/svntest 

这时,会询问你是否接受服务器的证书,选择接受,然后输入你的用户名和密码,验证通过后,在浏览器中就可以看到版本库了。

测试通过后,你就可以使用其它的subversion客户端对版本库进行访问了。

[参考文档]