Gentoo Logo

网站首页

文档相关:

作者列表:

Daniel Robbins
Chief Architect

Sven Vermeulen
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Aron Griffis
Gentoo Alpha Developer

Brad House
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

Hans Joanphan
Translator


[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]


6. 安装Gentoo基本系统

内容列表:

6.a. Chrooting

可选:选择镜像

       如果你是从一个Gentoo LiveCD启动的,你可以使用mirrorselect来更新/etc/make.conf,使得下载Portage和源代码可以使用更快的镜像(当然是在你有一个可以工作的网络环境的条件下):

代码 1: 选择快速的镜像点

# mirrorselect -a -s4 -o | grep -ve '^Netselect' >> /mnt/gentoo/etc/make.conf

       如果因为某些原因,mirrorselect失败了,不要惊慌。这一步完全是供选择的,默认的值也已经够了。

复制DNS信息

       在我们进入新的环境之前还有一件事清要做,那就是复制/etc/resolv.conf里的DNS信息。你需要做这一步以确保进入新的环境后网络仍然可以工作。/etc/resolve.conf里包含了你的网络所需的域名解析服务器。

代码 2: 复制DNS信息

(参数"-L"是必须的,确保不是复制一个符号链接过去)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

进入新的环境

       现在,所有的分区已经初始化过了,基本的环境也已经安装了,该到使用chrooting进入我们新安装的环境里了。这意味着我们从当前的安装环境(LiveCD或者其他的安装介质)转移到你的安装系统(也就是初始后的分区)。

       这个chrooting过程三步可以完成。首先,我们使用chroot将根目录从/(在安装介质上的)转移到/mnt/gentoo(你的分区上)。然后我们将使用env-update来创建一个新的环境,主要是创建环境变量。最后我们使用source将这些变量载入内存中。

代码 3: Chrooting到一个新的环境

# chroot /mnt/gentoo /bin/bash
# env-update
 * Caching service dependencies...
# source /etc/profile

       恭喜!你现在已经进入你自己的Gentoo Linux环境里了。当然远未结束,这也是为什么安装过程还有一些章节:-)

可选:更新Portage

       如果在上一节中,你还没有安装一个Portage的快照,你必须从因特网上下载一个最近的Portage树。emerge sync就是做这个的。其他的用户应该跳过这一节从配置USE变量继续。

代码 4: 更新Portage

# emerge sync

       Portage使用RSYNC协议来更新Portage树。如果上述命令由于你的防火墙设置的原因失败了,使用emerge-webrsync来通过一个普通的HTTP协议下载和安装一个portage快照。

代码 5: 使用emerge-webrsync更新portage

# emerge-webrsync

       如果你收到一个新版的portage发行和你应该更新你的Portage的警告,你应该忽略这个。在你安装过程的后面将会更新你的Portage。

配置USE变量

       USE是Gentoo提供给其用户的一个非常有用的变量。一些程序可以带上或者不带上对某些选项的支持来编译。比如说,有些程序可以带上gtk的支持来编译,或者带上qt的支持。其他的可以带上或者不带上SSL的支持。一些程序甚至可以带上frambuffer的支持(svgalib)而不是X11的支持(X-server)来编译。

       大部分的发行版编译他们的软件时尽量的能带上更多的支持,这增加了程序的大小和启动时间,更不要提一大堆依赖性的问题。而在Gentoo中,你可以定义一个软件包编译时带上什么选项。这就是USE所做的。

       在USE变量中,你定义了映射在编译选项的关键词。比如说,ssl将会在支持它的程序里编译时带上这个支持。-X将会去掉X-服务器的支持(注意前面的小提示)。gnome gtk -kde -qt将会在编译软件时带上gnome(和gtk)的支持,而不是kde(和qt)的支持,使得你的系统完全集中在GNOME上。

       默认的USE设置放置在/etc/make.profile/make.defaults里。你在/etc/make.conf的修改将会覆盖默认的设置。如果你添加某参数到USE设置上,这个参数就会添加到默认的参数列表中。如果你从USE去掉某个参数(在这个参数前添加一个负号),这个参数就会从参数列表中去掉(如果这个参数在默认参数列表中)。不要改动/etc/make.profile文件夹里的任何东西;每次更新Portage的时候它都会被重新覆盖。

       关于USE的一个完整的描述可以在Gentoo手册的第二部分第一段:USE参数中找到。你的系统中所存在的USE参数的完整描述可以在/usr/portage/profiles/use.desc找到。

代码 6: 查看已有的USE参数

# less /usr/portage/profiles/use.desc

       作为一个例子,我们给你看看一个支持DVD、ALSA和CD刻录的基于KDE的系统的USE设置:

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

# nano -w /etc/make.conf

代码 8: USE设置

USE="-gtk -gnome qt kde dvd alsa cdr"

可选:使用分布式编译

       如果你有兴趣使用一系列的系统来帮助你编译你的系统,你可以参看我们的DistCC指南。通过使用distcc你可以使用几个系统的处理能力来帮助你的安装。

6.b. Stage1,Stage2和Stage3之间的不同之处

       现在我们坐下来看看前面的步骤。我们前面要求过你从stage1stage2stage3作一个选择,并且警告你这个选择对以后的安装步骤是很重要的。就是这样的,现在就是你的选择决定以后步骤的第一个地方。

  • 如果你选择了stage1,那么你必须跟着这个章节(从从Stage1进行到Stage2开始)里的两个步骤来做。
  • 如果你选择了stage2,你只可以跳过第一步,并从第二步(从Stage2进行到Stage3)马上继续。
  • 如果你选择了stage3(不管是否使用GRP),那么你可以跳过这两个步骤,从配置你的内核继续。

6.c. 从Stage1进行到Stage2

Bootstrapping的介绍

       好,你决定从源码编译任何东西?好的,那么:-)

       在这一步,你将会bootstrap你的Gentoo系统。这个将会花很长的时间2,但是结果将会是得到一个根据你特定机器和特定需求而从根本优化过的系统。

       Bootstrapping意思是编译GNU C库、GNU编译器和几个其他的关键系统程序。

       在开始bootstrap之前,我们列出两个你可能需要或者不需要的可选选项。如果你不想看这些,从Bootstrapping系统继续。

可选:减少编译时间

       如果你要加快bootstrapping这个过程,你可以暂时的去掉java支持。这意味着GNU编译器和GNU C库编译时不带上对java的支持(这会大大减少编译的时间)。虽然这意味着你将不会有GNU Java编译器(gcj),这并表明你的系统不同使用java程序和其他java相关的东西。

       在开始bootstrap的脚本之前定义USE="-java"来暂时去掉对java的支持。

代码 9: 去掉对java的支持

# export USE="-java"

       千万记住在bootstapping后重新设定这个变量:

代码 10: 重新设定USE

# unset USE

可选:先下载源代码包

       如果之前你没有将所有的源代码复制过来,那么boostrap的脚本将会下载所有必须的文件。如果你一直有网络链接,就不用谈论此事了:-) 但是如果你要先下载源代码,然后bootstrap你的系统(比如你不要让你的因特网链接在编译的时候一直开着),使用bootstrap脚本时带上-f选项,这个将会取得(也就是字母f)所有的源代码。

代码 11: 现在必须的源代码

# cd /usr/portage
# scripts/bootstrap.sh -f

Bootstrap你的系统

       好了,拿起你的键盘,输入下面几个命令来开始bootstrap。然后去找点别的事情玩玩,因为这个步骤将会花掉很长的时间才能完成。

代码 12: Bootstrap你的系统

# cd /usr/portage
# scripts/bootstrap.sh

       如果你以前已经在/etc/make.conf里改动过CHOST设置,你必须重新初始化一些变量,使gcc可以运行更快点:

代码 13: 重新初始化环境变量

# source /etc/profile

       现在可以继续下一个步骤从Stage2进行到Stage3了。

6.d. 从Stage2进行到Stage3

介绍

       你读这个的时候,你已经有了一个bootstrap过的系统(不管你是因为在先前bootstrap过,还是使用stage2)。然后该到编译所有系统软件的时候了。

       所有的系统软件?不是,不是这样的。在这步里,你将会编译没有其他选择的系统软件包。一些系统软件包有几个选择(如系统日志工具),而对于Gentoo来说,重视的就是选择,我们不会强求你什么的。

可选:查看要做的工作

       如果你想知道将会安装什么软件,执行emerge --pretend system。这个会列出所有将会编译的软件。因为这个列表很长,你应该使用一个pager如less或者more,以方便可以前后查看这个列表。

代码 14: 查看'emerge system'将会做什么

# emerge --pretend system | less

可选:下载源代码

       如果你在继续之前想让emerge下载所有的源代码(比如你不想在编译所有软件时保持你的因特网连接一直开着),你可以使用emerge--fetchonly选项,这个可以下载所有的源代码。

代码 15: 获得源代码

# emerge --fetchonly system

编译系统

       执行emerge system开始编译系统。然后去做点别的事情,因为这个步骤也需要花掉很长的时间来完成。

代码 16: 编译系统

# emerge system

       现在你可以安全的忽略有关更新配置文件的警告(运行etc-update)。你的Gentoo系统完全安装和启动后,一定要读读在保护配置文件上的文档。

       这个过程完成后,从配置内核继续。


[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]


本文档内容按照Creative Commons - Attribution / Share Alike协议发布。