笔记本上之前装的双系统(Vista + Ubuntu 9.10),在刚拿到机器的时候,把Vista从home换成ultimate,之前OEM的序列号竟然有效,所以就一直开着Windows Update,前段时间终于遭遇了传说中的黑屏。想想算了,自从使用Ubuntu,慢慢觉得使用盗版软件是一件可耻的事情,也就不想再去激活Vista了(当然也不会去买正版),不用就是了。
所以这次Ubuntu 10.04升级失败之后,决定不再要双系统,只装10.04(这次之所以急于安装10.04,是因为10.04开始支持iPhone和iPodTouch了)。我对恢复系统没有十足的把握,本来想好是要备份的,一冲动,只把自己需要的东西转到老婆的电脑上,没有备份/etc、/var、/usr下面的内容。于是这两天没做什么事情,开始重复噩梦:
==== evince中文支持问题 ====
evince是Ubuntu下默认的pdf阅读器,对于没有内嵌中文字体的pdf文件,evince无法显示。evince使用Poppler作为pdf渲染库,因此需要安装Poppler编码库poppler-data以支持中文显示:
apt-get install poppler-data
==== emacs中文输入问题 ====
Ubuntu中文输入从9.10开始默认使用ibus,安装新的输入法倒是比较简单,但默认的输入法切换使用Ctrl+Space。emacs23内置中文支持,但中文输入还是使用ibus更习惯一些。emacs下Ctrl+Space作为Mark Set快捷。
查了一下,是locale的问题,因为装的是英文环境,默认变量均为en_US.utf8,其中LC_CTYPE定义系统的字符处理编码,在/etc/environment(这是Ubuntu下的环境配置,个人的~/.bashrc文件中也可以)中添加LC_CTYPE="zh_CN.utf8",并在/var/lib/locales/supported.d/zh-hans中加入下面几行:
zh_CN.UTF-8 UTF-8
zh_SG.UTF-8 UTF-8
zh_HK.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
zh_CN.GB2312 GB2312
zh_CN.GBK GBK
zh_CN.GB18030 GB18030
执行sudo locale-gen,将在/usr/lib/locale/下生成对应的环境编码数据。
==== 本文重点1:安装trac ====
使用了几个月,感觉trac+svn也成了我的个人知识管理(KM)的一个标配。之前没有记录下自己的安装过程,这次重装的时候,顺便理一下整个重装过程(参考TracInstall)。
如果没有特别需求的话,不用svn最新的版本,下载稳定版本的Trac就可以了。
trac使用python(Ubuntu 10.04的python版本为2.6.5)开发,使用easy_install安装,如果没有:
wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
可以直接使用下面的命令安装trac、SQLite、Genshi:
sudo easy_install Trac
Searching for Trac
Best match: Trac 0.11.7
Processing Trac-0.11.7-py2.6.egg
还可以选用MySQL、PostgreSQL作db,对于个人来说,SQLite够用了,就一个文件,很方便。
创建trac项目(在~/yulefox下创建名为km的项目),除指定项目名称和代码仓库位置外,其它我都使用了默认配置,所有配置都可以在项目目录下的conf/trac.ini中修改:
trac-admin ~/yulefox/km initenv
Creating a new Trac environment at /home/fox/yulefox/km
...
项目名称:Project Name [My Project]> FoxKM
数据库:Database connection string [sqlite:db/trac.db]>
代码版本管理工具:Repository type [svn]>
代码仓库位置:Path to repository [/path/to/repos]>/home/fox/yulefox/svn
Creating and Initializing Project
...
---------------------------------------------------------------------
Project environment for 'FoxKM' created.
If you'd like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:
tracd --port 8000 /home/fox/yulefox/km
Then point your browser to http://localhost:8000/km.
...
Congratulations!
看到Congratulations!我就放心了:),按照上面说的方式就可以测试一下了,不过我们显然希望用apache(nginx现在挺时髦的,不知道trac会不会支持nginx)搭建一个合适的Web Server。
Trac提供对CGI、FastCGUI、mod_python的支持(新加对mod_wsgi的支持),我对这一块并不是很熟悉,一般使用Apache + mod_python配置。
配置主机
我在自己的机器上使用fox.com作为虚拟主机名,反正我也不会去访问FOX,就用它了:D。我指定的IP是127.0.1.1,因为我只想在本地访问,你可以指定其他可用的IP:
# Adds virtual hosts to /etc/hosts
$ sudo emacs /etc/hosts
127.0.1.1 fox.com
127.0.1.1 www.fox.com
127.0.1.1 km.fox.com
创建虚拟主机配置:
# Adds one site named 'fox.com'
$ sudo emacs /etc/apache2/sites-available/fox.com
NameVirtualHost 127.0.1.1:80
ServerAdmin Fox
ServerName km.fox.com
DocumentRoot "/home/fox/yulefox/km"
# trac
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/fox/yulefox/km
PythonOption TracUriRoot /
# trac login
Require valid-user
AuthType Basic
AuthName "TracLogin"
AuthUserFile /etc/home/fox/yulefox/km.passwd
启用虚拟主机配置:
sudo apt-get install libapache2-mod-python libapache2-mod-python-doc
sudo a2ensite fox.com
sudo /etc/init.d/apache2 reload
有可能会得到下面的提示:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
需要在/etc/apache2/conf.d/目录下创建名为fqdn的文件,并添加配置的服务器:
ServerName fox.com
此时再reload Apache就清净了,访问一下http://km.fox.com/,提示:
TracError: The user www-data requires read _and_ write permissions to the database file /home/fox/yulefox/km/db/trac.db and the directory it is located in.
原来是访问权限的问题:
$ sudo chown -R www-data /home/fox/yulefox/km/
$ ls -l yulefox/km
total 44
drwxr-xr-x 9 www-data fox 4096 2010-04-11 16:25 ./
drwxr-xr-x 14 fox fox 4096 2010-04-11 16:25 ../
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 attachments/
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 conf/
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 db/
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 htdocs/
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 log/
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 plugins/
-rw-r--r-- 1 www-data fox 98 2010-04-11 16:25 README
drwxr-xr-x 2 www-data fox 4096 2010-04-11 16:25 templates/
-rw-r--r-- 1 www-data fox 27 2010-04-11 16:25 VERSION
搞定!
==== 本文重点2:恢复trac备份 ====
之前的trac我是备份了的,恢复起来也很方便:直接把备份的文件夹内容copy到上面的km中即可:D。关于trac使用的细节和更多丰富功能的插件,本地文档或者官方网站上面都介绍的非常详细,这也是我喜欢使用它的一个原因。