构建Debian的精彩世界
时间:2007-01-30 来源:shiyaowen
写这篇文档的主要目的是我自己Debian系统桌面化的安装配置总结。
我本人是2000年开始接触linux,最初使用的是redhat,后来又接触了slackware,mandrake和suse,在以后的工作中使用最 多的还是redhat,从7.0一直用到了9;主要是运用在服务器领域(以前公司linux服务器全是清一色redhat),个人感觉在服务器领域这些发 行版表现都不错,各有特点,slackware相对比较简洁,定制自由度较高;redhat等安装比较方便,有大量现成的rpm包可用;mandrake 的桌面应用很出色,比redhat要好的多,自己也增经用过一段时间mandrake,但是很快因为rpm包的关联,新版本的高速推出和升级就是重装等问 题搞的头大,从而重新回到MS的怀抱。去年在朋友的推荐下使用了Debian,让我体验到了GNU/Linux的味道,其高度自由化定制,丰富的软件资 源,优秀的软件包管理体系和一次安装终生升级等特性一次次的使我激动和兴奋,从此再也不想用其他发行版了。
在LNA社团领导人Lee的鼓励下我格掉了笔记本中的winXP,装上了Debian,才真正发现了linux的精彩,也真正的理解什么是 opensource,那只小企鹅已经成为我个人的信仰,它不但在server方面具有强大优势,在desktop方面也是同样非常优秀的,夸张点说我现 在面对没有linux系统的计算机已经不知道干什么了。希望我篇文档能让大家看到linux里面色彩斑斓的世界,能给大家带来帮助。
在此十分感谢LNA社团领导人ChunXin.Lee,他给予我很多帮助和启发。
由于本人水平有限,文档中错误地方望大家提出改正。
--------------------------------------------------------------------------------
1.安装基本系统:
我使用的是网络环境安装方式,优点在于可以省去不断更换光盘的麻烦和体现Debian强势的网络功能(没有网络的Debian是灰色的,有网络的Debian是彩色的);这种安装方式需要高速的网络支持才行,现在随着宽带的普及,这点应该不成问题。
安装版本选择使用Sarge,不要用 3.0 Woody,很快Sarge就会进入stable,也就是3.1,
http://debian.cn99.com/debian-cd/sarge/rc3/sarge-i386-netinst.iso 是最新的netinst盘镜像,可以硬盘安装,但是刻一张光盘会更简单稳妥,省去不少麻烦。
把光盘放进光驱,由光盘启动,出现boot:时候直接按回车是使用2.4内核,也可键入linux26回车,使用2.6内核;安装语言选简体中文,剩下的一路都有中文提示;基本系统安装过程结束后,会要求拿出光盘,重启机器后进行base-config配置。
系统重启后会自动进入base-config配置:
时区设置:亚洲/上海
设置root用户密码和启动shadow
建立系统用户
设置sorucelist为http方式,源可选debian.cn99.com或者mirrors.geekbone.org,速度都非常快
配置exim客户端,不想用exim作为邮件客户端的,可以选择不配置exim程序
选择安装软件时,我什么都没选,因为我想高度的自定义系统
结束base-config后,就可以登入系统了,如果再想在控制台下进行base-config和使用apt安装软件不会出现乱码,则要运行zhcon 进入中文控制台环境,才会有正常的中文界面出现,除非设置了在控制台下不使用中文locale,或用了unicon补丁的内核,就先安装zhcon,很简 单apt-get install zhcon,然后运行zhcon,进入中文控制台环境。
如果是adsl拨号上网的用户进入Debian系统后,先配置好拔号程序,运行pppoeconfig进行配置。按提示填上ADSL帐号和密码即可。注意,网卡的网关不要设,否则会连接不上外网。成功连接Internet后再选择源来进一步安装。
--------------------------------------------------------------------------------
2.系统的升级和编译内核:
2.1 系统的升级
Sarge安装的系统是testing,如果想使用更多软件和体验Debian更新的功能,可以升级到sid,
修改/etc/apt/sources.list,把里面testing全部替换成sid,下面是我的sources.list文件:
deb http://mirrors.geekbone.org/debian/ testing main contrib non-free
deb-src http://mirrors.geekbone.org/debian/ testing main contrib non-free
deb http://debian.cn99.com/debian/ testing main contrib non-free
deb-src http://debian.cn99.com/debian/ testing main contrib non-free
deb http://mirrors.geekbone.org/debian/ sid main contrib non-free
deb-src http://mirrors.geekbone.org/debian/ sid main contrib non-free
deb http://debian.cn99.com/debian/ sid main contrib non-free
deb-src http://debian.cn99.com/debian/ sid main contrib non-free
deb http://debian.okey.net/debian-uo/ sid java marillat rareware misc
deb http://ftp.debian.org/debian/ sid main contrib non-free
然后运行命令:
apt-get update
apt-get dist-upgrade(注意:普通升级用apt-get upgrade,发行版升级用apt-get dist-upgrade)
当然为求稳定可以先不升级到Sid,那就不必把Sid的源加进sources.list。
在升级的过程中,通常会把系统现有较老的内核版本替换成源上最新的内核版本,当然我们自己也能使用apt-get install来安装新版本的二进制内核包,比如安装是选的是2.4内核,那就可以apt-get install kernel-image-2.6.8.1-i386来装上2.6内核,(Sid上是2.6.10),不过在安装新内核之前,先apt-cache search --names-only kernel-image一下, 查找一下可用的版本,选一个适合自己的CPU的。
2.2 编译内核
但更新二进制的内核包会有两个问题,一是内核包的更新要滞后于Linux内核的更新速度,也就是说采用该方式你用不到最新的内核;二是内核包不是针对你的计算机编译的,所以性能和配置可能会不符合你的要求,所以很多情况下我们需要自己手动编译源码包的内核。
首先到http://www.kernel.org 下载最新的2.6.10内核,解压到/usr/src目录下;
tar -jxvf linux-2.6.10.tar.bz2 -C /usr/src
cd /usr/src
ln -s linux-2.6.10 linux
接下来安装编译2.6内核所需的软件:
apt-get install kernel-package ncurses-dev fakeroot module-init-tools
在/usr/src/linux目录下运行以下命令配置和编译新内核:
make menuconfig
make-kpkg clean
fakeroot make-kpkg --revision=mykernel.1.0 kernel_image
如果编译失败,可用make clean和make menuconfig重新配置和编译。
配置信息默认会保存在/usr/src/linux/.config文件中。
内核编译完成后在/usr/src目录下就会生成一个kernel-image-2.6.10_mykernel.1.0_i386.deb软件包,用以下命令安装:
dpkg -i kernel-image-2.6.10_mykernel.1.0_i386.deb
这样,在/boot目录下会生成System.map-2.6.10,vmlinuz-2.6.10文件。在安装内核时grub会自动生成启动选项,非常方便,当然也可以手动来修改grub配置文件menu.list,这就随个人喜好了,重启系统,开始使用新内核。
我们在编译内核过程需要注意的是:1)内核配置完成后,在退出配置菜单时如果选择保存配置,则会在当前目录中生成一个.config文件,记录内核的所有 配置参数。该配置文件会在下次配置内核时自动导入。也可以通过内核配置菜单的导入和存盘功能导入其它内核配置文件和把当前配置以任意的名字保存在其它地 方。2)Loadable module support-->Module unloading选项可允许卸载已加载的内核模块。通过该功能,我们可以通过rmmod module_name和modprobe module_name命令改变内核模块的加载参数。
用新内核重启时如果提示VFS不能挂接问题(很久以前我教我同学第一次编内核的时候,他出现的就是这个问题)
提示出错信息类似以下内容:
VFS:Cannot open root device "hdb2" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
原因:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。
如果要使用alsa,那么在内核选项中要加入alsa模块,然后安装:apt-get install alsa-utils aumix xmix,完成以后输入alsaconf来自动配置,如果一切正常的话,完美无瑕疵的声音就会永远伴随你了。
--------------------------------------------------------------------------------
3. 安装桌面系统:
3.1 安装x-window
先安装X-Window系统:apt-get install x-window-system
安装过程中会配置Xfree86,需要知道显卡芯片,显示器参数等,当然不知道也行,可以让Xfree86自动找寻你的显卡芯片等。
这里值得一提是如果显卡是nvidia和ATI的芯片,那么需要重新编译配置带nvidia和ATI的官方驱动的内核,不然Xfree86只会默认安装通 用驱动程序,要想玩3D游戏和在Linux下模拟星际争霸和DiabloII的话就.....,Debian的各个源上都有nvidia-kernel各 个版本下载,需要的话可以下载下来参照有关文档进行配置,这里就不多说了;配置完Xfree86后,可以输入startx测试一下,如果正常的话应该没问 题了,退出X继续前进。
安装中文字体:apt-get install xfonts-intl-chinese;不过这个中文字体库不怎么好看,第4部分会具体讲到字体的设定。 (不过我在此建意你安装apt-get install ttf-arphic-ukai楷体字)
3.2 设定Locale
接下来设定Locale,在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.GBK,zh代表中文, CN代表大陆地区,GBK表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:
LC_COLLATE,定义该环境的排序和比较规则
LC_CTYPE,用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
LC_MONETARY,货币格式
LC_NUMERIC,非货币的数字显示格式
LC_TIME,时间和日期格式
LC_MESSAGES,提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则 LC_MESSAGES参数就会失效。 LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
LANG,LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL
LC_ALL,它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响
举个例子,使用zh_CN.GBK中文locale:
einstein:~# export LC_ALL=zh_CN.GBK
einstein:~# locale
LANG=zh_CN.GB2312
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
L
我本人是2000年开始接触linux,最初使用的是redhat,后来又接触了slackware,mandrake和suse,在以后的工作中使用最 多的还是redhat,从7.0一直用到了9;主要是运用在服务器领域(以前公司linux服务器全是清一色redhat),个人感觉在服务器领域这些发 行版表现都不错,各有特点,slackware相对比较简洁,定制自由度较高;redhat等安装比较方便,有大量现成的rpm包可用;mandrake 的桌面应用很出色,比redhat要好的多,自己也增经用过一段时间mandrake,但是很快因为rpm包的关联,新版本的高速推出和升级就是重装等问 题搞的头大,从而重新回到MS的怀抱。去年在朋友的推荐下使用了Debian,让我体验到了GNU/Linux的味道,其高度自由化定制,丰富的软件资 源,优秀的软件包管理体系和一次安装终生升级等特性一次次的使我激动和兴奋,从此再也不想用其他发行版了。
在LNA社团领导人Lee的鼓励下我格掉了笔记本中的winXP,装上了Debian,才真正发现了linux的精彩,也真正的理解什么是 opensource,那只小企鹅已经成为我个人的信仰,它不但在server方面具有强大优势,在desktop方面也是同样非常优秀的,夸张点说我现 在面对没有linux系统的计算机已经不知道干什么了。希望我篇文档能让大家看到linux里面色彩斑斓的世界,能给大家带来帮助。
在此十分感谢LNA社团领导人ChunXin.Lee,他给予我很多帮助和启发。
由于本人水平有限,文档中错误地方望大家提出改正。
--------------------------------------------------------------------------------
1.安装基本系统:
我使用的是网络环境安装方式,优点在于可以省去不断更换光盘的麻烦和体现Debian强势的网络功能(没有网络的Debian是灰色的,有网络的Debian是彩色的);这种安装方式需要高速的网络支持才行,现在随着宽带的普及,这点应该不成问题。
安装版本选择使用Sarge,不要用 3.0 Woody,很快Sarge就会进入stable,也就是3.1,
http://debian.cn99.com/debian-cd/sarge/rc3/sarge-i386-netinst.iso 是最新的netinst盘镜像,可以硬盘安装,但是刻一张光盘会更简单稳妥,省去不少麻烦。
把光盘放进光驱,由光盘启动,出现boot:时候直接按回车是使用2.4内核,也可键入linux26回车,使用2.6内核;安装语言选简体中文,剩下的一路都有中文提示;基本系统安装过程结束后,会要求拿出光盘,重启机器后进行base-config配置。
系统重启后会自动进入base-config配置:
时区设置:亚洲/上海
设置root用户密码和启动shadow
建立系统用户
设置sorucelist为http方式,源可选debian.cn99.com或者mirrors.geekbone.org,速度都非常快
配置exim客户端,不想用exim作为邮件客户端的,可以选择不配置exim程序
选择安装软件时,我什么都没选,因为我想高度的自定义系统
结束base-config后,就可以登入系统了,如果再想在控制台下进行base-config和使用apt安装软件不会出现乱码,则要运行zhcon 进入中文控制台环境,才会有正常的中文界面出现,除非设置了在控制台下不使用中文locale,或用了unicon补丁的内核,就先安装zhcon,很简 单apt-get install zhcon,然后运行zhcon,进入中文控制台环境。
如果是adsl拨号上网的用户进入Debian系统后,先配置好拔号程序,运行pppoeconfig进行配置。按提示填上ADSL帐号和密码即可。注意,网卡的网关不要设,否则会连接不上外网。成功连接Internet后再选择源来进一步安装。
--------------------------------------------------------------------------------
2.系统的升级和编译内核:
2.1 系统的升级
Sarge安装的系统是testing,如果想使用更多软件和体验Debian更新的功能,可以升级到sid,
修改/etc/apt/sources.list,把里面testing全部替换成sid,下面是我的sources.list文件:
deb http://mirrors.geekbone.org/debian/ testing main contrib non-free
deb-src http://mirrors.geekbone.org/debian/ testing main contrib non-free
deb http://debian.cn99.com/debian/ testing main contrib non-free
deb-src http://debian.cn99.com/debian/ testing main contrib non-free
deb http://mirrors.geekbone.org/debian/ sid main contrib non-free
deb-src http://mirrors.geekbone.org/debian/ sid main contrib non-free
deb http://debian.cn99.com/debian/ sid main contrib non-free
deb-src http://debian.cn99.com/debian/ sid main contrib non-free
deb http://debian.okey.net/debian-uo/ sid java marillat rareware misc
deb http://ftp.debian.org/debian/ sid main contrib non-free
然后运行命令:
apt-get update
apt-get dist-upgrade(注意:普通升级用apt-get upgrade,发行版升级用apt-get dist-upgrade)
当然为求稳定可以先不升级到Sid,那就不必把Sid的源加进sources.list。
在升级的过程中,通常会把系统现有较老的内核版本替换成源上最新的内核版本,当然我们自己也能使用apt-get install来安装新版本的二进制内核包,比如安装是选的是2.4内核,那就可以apt-get install kernel-image-2.6.8.1-i386来装上2.6内核,(Sid上是2.6.10),不过在安装新内核之前,先apt-cache search --names-only kernel-image一下, 查找一下可用的版本,选一个适合自己的CPU的。
2.2 编译内核
但更新二进制的内核包会有两个问题,一是内核包的更新要滞后于Linux内核的更新速度,也就是说采用该方式你用不到最新的内核;二是内核包不是针对你的计算机编译的,所以性能和配置可能会不符合你的要求,所以很多情况下我们需要自己手动编译源码包的内核。
首先到http://www.kernel.org 下载最新的2.6.10内核,解压到/usr/src目录下;
tar -jxvf linux-2.6.10.tar.bz2 -C /usr/src
cd /usr/src
ln -s linux-2.6.10 linux
接下来安装编译2.6内核所需的软件:
apt-get install kernel-package ncurses-dev fakeroot module-init-tools
在/usr/src/linux目录下运行以下命令配置和编译新内核:
make menuconfig
make-kpkg clean
fakeroot make-kpkg --revision=mykernel.1.0 kernel_image
如果编译失败,可用make clean和make menuconfig重新配置和编译。
配置信息默认会保存在/usr/src/linux/.config文件中。
内核编译完成后在/usr/src目录下就会生成一个kernel-image-2.6.10_mykernel.1.0_i386.deb软件包,用以下命令安装:
dpkg -i kernel-image-2.6.10_mykernel.1.0_i386.deb
这样,在/boot目录下会生成System.map-2.6.10,vmlinuz-2.6.10文件。在安装内核时grub会自动生成启动选项,非常方便,当然也可以手动来修改grub配置文件menu.list,这就随个人喜好了,重启系统,开始使用新内核。
我们在编译内核过程需要注意的是:1)内核配置完成后,在退出配置菜单时如果选择保存配置,则会在当前目录中生成一个.config文件,记录内核的所有 配置参数。该配置文件会在下次配置内核时自动导入。也可以通过内核配置菜单的导入和存盘功能导入其它内核配置文件和把当前配置以任意的名字保存在其它地 方。2)Loadable module support-->Module unloading选项可允许卸载已加载的内核模块。通过该功能,我们可以通过rmmod module_name和modprobe module_name命令改变内核模块的加载参数。
用新内核重启时如果提示VFS不能挂接问题(很久以前我教我同学第一次编内核的时候,他出现的就是这个问题)
提示出错信息类似以下内容:
VFS:Cannot open root device "hdb2" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
原因:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。
如果要使用alsa,那么在内核选项中要加入alsa模块,然后安装:apt-get install alsa-utils aumix xmix,完成以后输入alsaconf来自动配置,如果一切正常的话,完美无瑕疵的声音就会永远伴随你了。
--------------------------------------------------------------------------------
3. 安装桌面系统:
3.1 安装x-window
先安装X-Window系统:apt-get install x-window-system
安装过程中会配置Xfree86,需要知道显卡芯片,显示器参数等,当然不知道也行,可以让Xfree86自动找寻你的显卡芯片等。
这里值得一提是如果显卡是nvidia和ATI的芯片,那么需要重新编译配置带nvidia和ATI的官方驱动的内核,不然Xfree86只会默认安装通 用驱动程序,要想玩3D游戏和在Linux下模拟星际争霸和DiabloII的话就.....,Debian的各个源上都有nvidia-kernel各 个版本下载,需要的话可以下载下来参照有关文档进行配置,这里就不多说了;配置完Xfree86后,可以输入startx测试一下,如果正常的话应该没问 题了,退出X继续前进。
安装中文字体:apt-get install xfonts-intl-chinese;不过这个中文字体库不怎么好看,第4部分会具体讲到字体的设定。 (不过我在此建意你安装apt-get install ttf-arphic-ukai楷体字)
3.2 设定Locale
接下来设定Locale,在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.GBK,zh代表中文, CN代表大陆地区,GBK表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:
LC_COLLATE,定义该环境的排序和比较规则
LC_CTYPE,用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
LC_MONETARY,货币格式
LC_NUMERIC,非货币的数字显示格式
LC_TIME,时间和日期格式
LC_MESSAGES,提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则 LC_MESSAGES参数就会失效。 LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
LANG,LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL
LC_ALL,它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响
举个例子,使用zh_CN.GBK中文locale:
einstein:~# export LC_ALL=zh_CN.GBK
einstein:~# locale
LANG=zh_CN.GB2312
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
L
相关阅读 更多 +