声明: 本手册已经被新版本代替了,不再被维护。

6. Chroot到Gentoo基础系统

内容:

6.a. Chroot

挂载/proc和/dev文件系统

/proc文件系统挂载到/mnt/gentoo/proc,这样在chroot后的环境里安装时也可以获取内核提供的相关信息,然后以bind方式挂载/dev文件系统。

代码 1.1: 挂载/proc和/dev

# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

进入新的系统环境

现在所有的分区都已经被初始化,基本环境也已安装完毕,现在是到了该用chroot进入新安装环境的时候了。这意味着我们从当前安装环境(安装光盘或者其他安装介质)切换到你安装的系统里(也就是被初始化的分区)。

完成chroot有三步。首先我们用chroot把根文件系统从/(安装介质里)切换到/mnt/gentoo(在你的分区里)。然后我们使用env-update来建立新的环境,也就是创建新的环境变量。最后我们用source加载这些变量。

代码 1.2: Chroot到新环境里

# chroot /mnt/gentoo /bin/bash
# env-update
>>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"

祝贺你!你现在已经在你自己的Gentoo Linux环境里了。当然这离安装完成还有段时间,因为我们可以看到安装指南还剩下很多章节呢 :-)

生成Portage缓存

现在Portage树已经装好了,但为了加快将来emerge的速度你现在应该建立Portage缓存。运行emerge --metadata来完成这一步。

代码 1.3: 生成Portage缓存

# emerge --metadata

6.b. 配置USE变量

什么是USE变量?

USE是Gentoo为用户提供的最具威力的变量之一。很多程序通过设置这个变量可以选择编译或者不编译某些可选的支持。例如,一些程序可以在编译时加入对gtk或是对qt的支持。其它的程序可以在编译时加入或不加入对于SSL的支持。有些程序甚至可以在编译时加入对帧缓冲的支持(svgalib)以取代X11(X服务器)。

大多数的发行版会使用尽可能多的支持特性编译它们的软件包,这既增加了软件的大小也减慢了启动时间,而这些还没有算上可能会涉及到的大量依赖性问题。Gentoo可以让你自己定义软件编译的选项,而这正是USE要做的事。

USE变量里你可以定义关键字,这些关键字对应相应的编译选项。比如,ssl会让程序在编译时加入对它的支持。-X会移除其对于X服务器的支持(注意前面的减号)。gnome gtk -kde -qt3 -qt4将会在你编译软件的时候添加对gnome(和gtk)的支持,并且移除对kde(和qt)的支持,这可以让你的系统尽可能多的为GNOME做优化。

修改USE变量

警告: 假设你打算使用我们提供的预编译软件包(GRP套件)那就不要对USE变量做任何修改。在装完你所需要的软件包以后就可以更改USE变量了。如果忽略这个警告你的系统将会有麻烦!

默认的USE设置位于/etc/make.profile/make.defaults文件里。所有你放在/etc/make.conf里的USE都会根据默认设置重新计算。如果你添加了一些USE的设置,它会被增加到默认的列表里。如果你删除了一些USE设置(通过放一个减号到它前面),它将被从默认的列表里移除(如果它确实在默认列表里的话)。绝对不要改变/etc/make.profile目录里的任何东西,它会在你更新Portage的时候被覆盖掉!

关于USE的详解你可以在Gentoo手册的第二部分,USE标记里找到。对于USE标记的详细介绍可以查看你的系统里/usr/portage/profiles/use.desc

代码 2.1: 查看可用的USE标记

# less /usr/portage/profiles/use.desc
(你可用用方向键来滚动,按'q'键退出)

作为一个例子,我们展示一个基于KDE的系统并带有DVD、ALSA以及光盘刻录支持的USE设置:

代码 2.2: 打开/etc/make.conf

# nano -w /etc/make.conf

代码 2.3: USE设置

USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"