Gentoo Logo

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


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]   ${profile} *
 [2]   ${profile}/desktop
 [3]   ${profile}/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。

现在我们继续配置内核


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2010年 1月 2日

总结: 安装并配置完stage3以后,你就会有一个可用的Gentoo基本系统了。这一章将教你如何达到这一状态。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

Mike Frysinger
Gentoo * 开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Stuart Longland
编辑

Tobias Scherbaum
编辑

Xavier Neys
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

张乐
译者

叶宝泰
译者

杨珂
译者

杨小广
译者

vivian.ye
译者

余雷
译者

陈永骥
译者

王国辉
译者

娄东斌
译者

贾震
译者

余鈺炜
译者

陈代焱
译者

范华
译者

沈辰俊
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.