本文是 Gentoo问题查找经验谈(一) 的续篇
最新版在这
方法篇(二)
以下介绍一些比较有效的方法。具体的解决手段意会即可以,千万别照搬。
[编辑] 一、经验法
笔者把经验法大致分成以下三类:
[编辑] (1)向高手提问
这是很多新手自然而然想到的方法,但是我建议应该把这当成最后的手段。
我认识的大部分学Linux的人,在有一定的经验后,都很乐意向新手回答问题,但几乎没有一个人能坚持下来。
为什么呢?因为那实在不是一件愉快的事...
关于怎么样向他人提问,权威的解释在: [color="Red"]Gentoo的问题解决之道
[编辑] (2)在文档中查找相似问题
坦白说,本人刚用Gentoo时,有很多时间就是用来看文档的。
[编辑] (3)根据自身的经验
不要忘了自己曾经解决过的问题,特别是在重装的时候。
[编辑] 二、排除法
根据可供排除的程序之间的关系,我将排除法分成如下几类,并各举一个例子,以助理解:
[编辑] (1)并列排除法
例:compiz-fusion 有三个可用的窗口装饰器,分别为:
GTK Window Decorator, KDE Window Decorator, Emerald。
当你的启动compiz后,发现窗口标题栏消失的时候,为了排除是否自己使用的窗口装饰器的问题,可换用另外两个窗口装饰器试试
[编辑] (2)链式排除法
指一个软件的启动或运行过程中,先后与几个因素有关。
例:一般我们为了方便进入图形界面,会安装登录管理器(dm),所以这时进入图形界面的顺序是这样:
xdm-->X->kdm/gdm-->kde/gnome/...
当我们遇到无法进入图形界面的问题时,可用startx绕过dm,从而可确定是否dm的问题,以此进行排除。
[编辑] (3)树状排除法
这是比较复杂的情况,同时也是比较符合现实的。
例:在配置一个基于apache+mysql+php的站点时,显然出现的问题可能与apache, mysql和php有关,同时关于这三个软件,又有如下关联:
apache是否正确启动,是否载入php支持,与/etc/apache2和/etc/conf.d/apache2的配置有关.
php能否正常运行与版本的兼容、是否编译了apache支持、php的配置文件等因素有关。
mysql是否正常工作与mysql本身的配置、用户名及密码、用户的权限等因素有关。
如果把这些关联关系画在一张图上就组成了一棵树。
[编辑] (三)程序输出分析法
这是分析程序的log、标准输出、调试信息等进行排错的方法。
例:这是我遇到过多次的问题,stardict在X不正常挂起后,启动不了。
于是我在bash中手动打入"stardict", 回车,结果发现stardict输出一行:- error: .stardict/stardict.cfg is a null file (大致意思是这样)
复制代码 于是 - rm .stardict/stardict.cfg
复制代码 问题解决。
[编辑] (四)最小化系统法
又称不相关因素排除法。这是在关联因素实在太多时,相当有效的一个方法。
比如:你第一次安装显示驱动、xorg-x11和kde,却无法进入桌面,怎么办?排除法?要排除的因素太多了...
可尝试使用最小化系统法,解析如下:
1、只使用最基本的xorg-x11和vesa驱动启动桌面:
把 /etc/env.d/90xsession 中的 XSESSION 的行注释掉
把 /etc/X11/xorg.conf 中的驱动换成 vesa
这时用 startx,会进入一个极简单的桌面环境(叫twm或dwm?)。
如果有问题,检查 xorg 的配置或log吧。
2、运行 kwin --replace& 或 metacity --replace&
检查窗口管理器是否正常工作
3、startkde & (gnome 下是什么命令,我忘了...)
尝试在此环境下启动kde/gnome,虽然结果与正常的启动会有所出入,但可以得到很多信息。
4、尝试使用专用显示驱动启动X |