Gentoo Logo

1.  Chroot

拷贝DNS信息

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

代码 1.1: 拷贝DNS信息

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

挂载/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.1: chroot到新环境里

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

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

1.  配置Portage

更新Portage树

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

代码 1.1: 更新Portage树

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

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

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

选择正确的Profile

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

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

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

从2006.0开始,MIPS系统的profile经历了一次重新洗牌。这些profile设定了很多不同的选项包括USE标记,它能影响到很多不同的系统中的关键包(特别是,gccmips-sources)会启用哪些补丁集。

所以,必须要很小心的确保为你的系统类型选择了正确的profile。Gentoo/MIPS 2007.0包含的profile有:

系统 Profile Userland 状态/备注
Cobalt Qube/RaQ default-linux/mips/2007.0/cobalt/o32 32位Linuxthreads 推荐
" default-linux/mips/2007.0/cobalt/o32/nptl 32位NPTL 正在测试 (1)
       
一般的big endian
包括SGI Indy, Indigo2 (R4x00), Challenge S and O2
default-linux/mips/2007.0/generic-be/o32 32位Linuxthreads 推荐
" default-linux/mips/2007.0/generic-be/o32/nptl 32位NPTL 正在测试 (1)
" default-linux/mips/2007.0/generic-be/n32 N32 Linuxthreads 高度实验性质 (2)
" default-linux/mips/2007.0/generic-be/n32/nptl N32 NPTL 高度实验性质 (1) (2)
" default-linux/mips/2007.0/generic-be/n64 N64 Linuxthreads 不支持 (3)
" default-linux/mips/2007.0/generic-be/n64/nptl N64 NPTL 不支持 (1) (3)
       
SGI Origin 200/2000 default-linux/mips/2007.0/ip27/o32 32位Linuxthreads 推荐
" default-linux/mips/2007.0/ip27/o32/nptl 32位NPTL 正在测试 (1)
" default-linux/mips/2007.0/ip27/n32 N32 Linuxthreads 高度实验性质 (2)
" default-linux/mips/2007.0/ip27/n32/nptl N32 NPTL 高度实验性质 (1) (2)
       
SGI Indigo2 Impact R10000 default-linux/mips/2007.0/ip28/o32 32位Linuxthreads 推荐
" default-linux/mips/2007.0/ip28/o32/nptl 32位NPTL 正在测试 (1)
" default-linux/mips/2007.0/ip28/n32 N32 Linuxthreads 高度实验性质 (2)
" default-linux/mips/2007.0/ip28/n32/nptl N32 NPTL 高度实验性质 (1) (2)
       
SGI Octane/Octane2 default-linux/mips/2007.0/ip30/o32 32位Linuxthreads 推荐
" default-linux/mips/2007.0/ip30/o32/nptl 32位NPTL 正在测试 (1)
" default-linux/mips/2007.0/ip30/n32 N32 Linuxthreads 高度实验性质 (2)
" default-linux/mips/2007.0/ip30/n32/nptl N32 NPTL 高度实验性质 (1) (2)

重要: (1) MIPS里的NPTL目前正在测试中,需要gcc-4.1glibc-2.4。一般认为NPTL已经足够安全可供人们使用了,以后的版本中它将成为默认设定。欢迎勇敢的用户测试这些profile,并报告使用结果。

警告: (2) n32 Userland是高度实验性的,很多软件使用这个ABI都有问题,所以目前可以保证你会遇到稳定性问题。目前有人正致力于改进目前的状况,如果你使用这个profile将不会获得任何支持,除非你愿意提交补丁来帮助解决存在的问题。

警告: (3) n64 Userland目前在所有的系统上都不获支持。现在没有stage支持n64,不远的将来这种情况也不会改变。

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

代码 1.1: 验证系统profile

# ls -FGg /etc/make.profile
lrwxrwxrwx  1 48 Apr  8 18:51 /etc/make.profile -> ../usr/portage/profiles/${profile}

看完了上面的profile,决定了哪个最合适,你需要调整你的make.profile符号链接。默认的,profile在/usr/portage/profiles里,所以如果你把portage树移到了别处(不推荐这样做),就要适当的调整下面的命令。

代码 1.1: 设定系统profile

(删除旧的profile符号连接)
# rm -f /etc/make.profile

(创建一个新的符号链接指向你指定的profile)
(比如,这个是在Indy或者O2上可以用的。)
# ln -s /usr/portage/profiles/default-linux/mips/2007.0/generic-be/o32

注意: 对不熟悉Bash的人的一个小提示……如果你打了一个文件名或者命令的一部分,然后按TAB键,bash会自动填充命令/文件名直到最后一个相同的字符。比如,键入/usr/portage/profiles/def<TAB>bash会自动输入default-。再按TAB几次,将会显示几种可能的填充,default-linuxdefault-darwindefault-bsd。试一试,你会发现这个功能在命令行浏览时很有用。

配置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

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

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

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

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

# nano -w /etc/make.conf

代码 1.1: USE设置

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

可选:glibc Locales

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

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

# nano -w /etc/locale.gen

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

代码 1.1: 指定你的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。

现在我们继续(配置内核)

更新于2008年 4月 2日

本文档的原始版本最后更新于2011年 8月 22日

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.