6. 安装Gentoo基本系统

内容:

6.a. Chroot

可选:选择境像站点

为了快速下载源代码,建议你选择一个速度快的境像站点。Portage将在make.conf中查找并使用GENTOO_MIRRORS变量定义的境像列表。你也可以浏览我们的镜像列表来寻找一个或者多个离你最近的镜像(通常它们是最快的),不过我们提供了一个不错的工具来帮助你选择境像,它叫mirrorselect

代码 1.1: 使用mirrorselect更新GENTOO_MIRRORS变量

# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf

警告: 不要选择任何IPv6的境像。我们的stage目前还不支持IPv6。

另一个重要的设置就是make.conf里的SYNC设置。这个变量包含你更新Portage树(Portage下载和安装软件时需要用到的ebuild和脚本等信息的集合)时用到的rsync服务器信息。虽然你可以手动输入一个SYNC服务器地址,不过还是让mirrorselect来帮你完成更加的方便:

代码 1.2: 使用mirrorselect选择rsync镜像站点

# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

运行完mirrorselect以后,最好自己再检查一下/mnt/gentoo/etc/make.conf里的设置!

拷贝DNS信息

在我们进入新环境之前,还有一件事需要完成,那就是从/etc/resolv.conf拷贝DNS信息。这一步可以保证你在进入新的系统环境后还可以继续使用网络。/etc/resolv.conf包含了你网络里的域名服务器。

代码 1.3: 拷贝DNS信息

(参数"-L"是必须的,用来确保我们拷贝的不是一个符号链接)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/

挂载/proc和/dev文件系统

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

代码 1.4: 挂载/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.5: chroot到新环境里

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

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

6.b. 配置Portage

更新Portage树

你现在应该更新你的Portage树到最新版本。执行emerge --sync

代码 2.1: 更新Portage树

# emerge --sync
(如果你在使用一个慢速终端比如一些帧缓冲或者是串口的控制台,你可以添加--quiet选项来加速这个过程:)

# emerge --sync --quiet

如果你网络前面的防火墙的配置使得rsync请求被阻挡的话,你可以使用emerge-webrsync下载和安装一个最新的portage快照。

如果系统警告你有一个新版本的Portage可用,你可以使用emerge --oneshot portage来更新它。

选择正确的Profile

首先,我们看一下一些小的定义。

profile是每个Gentoo系统的构造块。它不仅指定了USE、CFLAGS以及其他重要变量的默认值,它还把系统可用的软件版本锁定在某个范围。而这些都是由Gentoo的开发者来维护的。

以前,这个profile很少会有用户接触到。然而,有些情况下你可以决定需不需要修改profile。

你可以用下面的命令来查看当前使用的profile:

代码 2.2: 验证系统profile

# eselect profile list
Available profile symlink targets:
 [1]   default/linux/x86/10.0 *
 [2]   default/linux/x86/10.0/desktop
 [3]   default/linux/x86/10.0/server

默认的profile会提供给你一个基于2.6版本内核的Linux系统。这是默认推荐的,但是你也可以选择另外一个profile。

系统也为某些架构提供了desktopserver的子profile。运行eselect profile list来显示所有可用的profile。

看完了你的体系结构可用的profile之后,如果你愿意,你可以换一个profile。

代码 2.3: 切换profile

# eselect profile set 2

注意: 子profile developer是专为Gentoo Linux开发任务而准备的,而不是用来帮助构建一般性的开发环境的。

配置USE变量

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

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

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

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

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

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

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

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

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

# nano -w /etc/make.conf

代码 2.6: USE设置

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

可选:glibc Locales

在你的系统里可能只会用到一个或两个locale。你可用/etc/locale.gen来指定locale。

代码 2.7: 打开/etc/locale.gen

# nano -w /etc/locale.gen

下面这个例子中的locale同时支持英语(美国)和德语(德国)并带有字符集格式(比如UTF-8)的支持。

代码 2.8: 指定你的locale

en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15

下一步我们运行locale-gen。它会产生所有你在/etc/locale.gen文件里指定的locale。

现在我们继续配置内核