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

5. 安装Gentoo安装文件

内容:

5.a. 安装一个Stage Tarball

正确设置日期/时间

在继续之前,你需要检查和更新系统日期/时间。未正确设置的时钟可能会在将来导致奇怪的结果!

确认当前日期/时间,请运行date:

代码 1.1: 确认日期/时间

# date
Fri Mar 29 16:21:18 UTC 2005

如果显示的日期/时间不正确,可以使用date MMDDhhmmYYYY命令(MM是月,DD是日,hh是时,mm是分,YYYY是年)来更新它。在这一步,你应该使用UTC时间。稍后你可以设置你自己的时区。举个例子,设置时间为2005年3月29日16时21分:

代码 1.2: 设置UTC日期/时间

# date 032916212005

5.b. 默认:使用安装光盘里的Stage3

解开stage

stage文件的位置是在光盘的/mnt/cdrom/stages目录里。如果你想要查看可用的stage,请使用ls命令:

代码 2.1: 查看可用的stage

# ls /mnt/cdrom/stages

如果系统返回一个错误提示,你可能需要先挂载CD-ROM:

代码 2.2: 挂载CD-ROM

# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages

我们现在进入你Gentoo的挂载点(通常是/mnt/gentoo):

代码 2.3: 进入目录/mnt/gentoo

# cd /mnt/gentoo

现在我们来解开你所选择的stage tarball,使用的是tar这个工具。请确认你使用了同样的参数(xvjpf)。x参数代表Extract(解压缩),v参数代表Verbose(可选参数,添加该参数后可以看到在解开tar包的过程中发生了些什么),j参数代表使用bzip2解压缩p参数代表Preserve permissiions(保留权限),而f参数代表我们想要解开的是一个文件而不是来自于标准输入的数据。在接下来的一个例子里,我们将解开stage tarball stage3-ppc64-32ul-2008.0.tar.bz2。请确保用你的stage文件名来替换我们给出的tarball文件名。

代码 2.4: 解开stage tarball

# tar xvjpf /mnt/cdrom/stages/stage3-ppc64-32ul-2008.0.tar.bz2

现在stage已经安装好,下面我们继续安装Portage

5.c. 安装Portage

解开一个Portage快照

现在你得安装一个Portage的快照,它包含的一堆文件告诉Portage哪些软件可以安装,有哪些profile可用等等。

从安装光盘里解开Portage快照

为了安装快照,到/mnt/cdrom/snapshots/里面看一下有哪些快照可用:

代码 3.1: 查看/mnt/cdrom/snapshots的内容

# ls /mnt/cdrom/snapshots

现在按下面的步骤来解开快照。再次确认你使用了正确的tar参数。另外-C是大写的C,而不是c。在下一个例子里我们将使用portage-<date>.tar.bz2作为快照的文件名。确保用你安装光盘上的快照文件名来替换此文件名。

代码 3.2: 解开一个Portage快照

# tar xvjf /mnt/cdrom/snapshots/portage-<date>.tar.bz2 -C /mnt/gentoo/usr

复制源代码包

你还需要从通用安装光盘里复制所有的源代码包。

代码 3.3: 复制源代码包

# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/

5.d. 配置编译选项

介绍

你可设置一些影响Portage行为的变量来优化Gentoo。这些变量都可作为环境变量来设置(使用export),但是它们不是永久的。为了保持你的设置,Portage为你提供了/etc/make.conf,一个Portage的配置文件。这就是我们现在要编辑的文件。

注意: 所有可能的变量都用注释形式罗列在/mnt/gentoo/etc/make.conf.example里。为了成功地安装Gentoo,你只需要设置下面提到的变量。

打开你喜欢的编辑器(在这个指南里我们使用nano),这样我们可以改变我们下面将讨论的优化变量。

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

# nano -w /mnt/gentoo/etc/make.conf

你很可能已经注意到了,make.conf.example文件的结构和一般的shell脚本一样:注释行以"#"开头,其它行使用VARIABLE="content"的语法来定义变量。make.conf文件也使用相同的语法。其中的一些变量我们接下来讨论。

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

CHOST

CHOST变量声明了你的系统的target、build和host(译注:target定义了编译出的工具链产生的代码将运行的系统类型,只在编译工具链时有意义;build定义了本机系统类型; host定义了编译出的软件将运行的系统类型)。这个变量应该已经被设置为正确的值了。不要编辑它,这可能会毁坏你的系统。如果CHOST变量看起来是不正确的,你也许使用了错误的stage3 tarball。

CFLAGS和CXXFLAGS

CFLAGSCXXFLAGS变量分别定义了gcc (C和C++的编译器)的优化标记。尽管我们通常都在这里定义,你也可以对每个软件单独定义这些优化标记以获得最好的性能。因为每个程序都是不同的。

make.conf里你应该定义一些你认为可以使系统在一般情况下快速响应的优化标记。不要把实验性质的设置放到这个变量里来;过多的优化会使程序表现很差(崩溃,甚至更糟,不正常工作)。

我们不会在这里解释所有可能的优化选项。如果你想搞清楚它们,请阅读GNU在线手册或者是gcc info页面(info gcc——只能在装好的Linux系统中查看)。make.conf.example本身也包含了不少信息和范例;不要忘了也看看它。

首先要设置的是-march=或者-mcpu=参数,它指定了目标架构的名称。可能的选项以注释的形式列在make.conf.example文件里。

第二个是-O标记(是大写的O,而不是数字零),它是指定gcc的优化级别的标记。可能的级别有s(为优化文件大小),0(0——不优化),12乃至3是针对速度的优化标记(每个级别都包含前一级的优化措施,并额外增加了一些)。-O2是推荐的默认设置。-O3已知当全局启用时会引起一些问题,所以我们推荐你还是用-O2

另一个普遍使用的优化标记是-pipe(不同编译阶段通信使用管道而不是临时文件)。它对产生的代码没有影响。

提醒你一下,使用-fomit-frame-pointer(它将不在寄存器里为不需要帧指针的函数保存帧指针)可能会在调试程序的时候造成严重后果!

在你定义CFLAGSCXXFLAGS的时候,你需要把这些优化标记都合并起来。从stage3里解压出来的默认值应该就足够好了。下面的例子仅仅是个例子:

代码 4.2: 定义CFLAGS和CXXFLAGS变量

CFLAGS="-O2 -pipe"
# 两个变量使用相同的设置
CXXFLAGS="${CFLAGS}"

注意: 你应该看一看编译优化指南以了解更多的信息,比如不同的编译选项将如何影响你的系统。

MAKEOPTS

通过使用MAKEOPTS你可以定义在安装软件的时候同时可以产生并行编译的数目。你的CPU数目加一是个不错的选择,但是这个准则并不永远都是完美的。

代码 4.3: 单CPU系统的MAKEOPTS

MAKEOPTS="-j2"

设置已准备好,让我们开始!

根据你的喜好更新/mnt/gentoo/etc/make.conf并保存(nano用户可以敲Ctrl-X)。你现在准备好可以继续安装Gentoo基本系统了。