手册:PPC64/安装/安装stage3

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:PPC64/Installation/Stage and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский • ‎தமிழ் • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
PPC64 Handbook
安装
关于安装
选择安装媒介
配置网络
准备磁盘
安装stage3
安装基本系统
配置Linux内核
配置系统
安装系统工具
配置系统引导程序Bootloader
收尾安装工作
使用Gentoo
Portage介绍
USE标记
Portage功能特性
初始化脚本(Initscript)系统
环境变量
使用Portage
文件和目录
变量
混合使用不同的软件分支
额外的工具
定制Portage树
高级特性
网络配置
入门
高级配置
模块化网络
无线
添加功能
动态管理


安装stage包

设置日期和时间

在安装Gentoo之前,最好确保日期和时间设置正确。 错误配置的时间可能会导致奇怪的结果:基本系统文件应设置精确的时间戳。 事实上,由于几个网站和服务使用加密通信(SSL / TLS),如果系统时间差的离谱,可能无法下载安装文件!

验证当前时间使用命令date:

root #date
Mon Oct  3 13:16:22 PDT 2016

如果显示的日期/时间不正确,请使用下列方法之一进行更新。

附注
不包括实时时钟(RTC)的主板应配置为自动将系统时钟与时间服务器同步。 这也适用于包含RTC但具有故障电池的系统。

自动

Gentoo 的官方安装光盘包含 ntpd 命令 (属于包 net-misc/ntp package)。官方光盘包括指向ntp.org时间服务器的配置文件。它可以用于使用时间服务器,使得系统时钟自动同步到UTC时间。使用方法见配置网络 但在某些架构的光盘上可能不可用。

警告
自动时间同步需要付出一个代价。它将向时间服务器显示系统的IP地址和相关网络信息(在下面的示例中为ntp.org)。有隐私问题的用户应该注意这个“之前”使用下面的方法设置系统时钟。
root #ntpd -q -g

手册

也可以用date 命令来对系统时钟执行手动设置。使用 MMDDhhmmYYYY 语法 (月, 日, 小时, 分钟 和 年)。

建议所有Linux系统使用UTC时间。 稍后在安装期间将定义时区。 这将修改时钟的显示为本地时间。

比如,设置时间到2016年10月3日的13:16:

root #date 100313162016

选择一个stage包

multilib(32和64位)

选择一个基础压缩包的系统可以在稍后的安装过程节省大量的时间,特别是当它是一次选择正确的配置文件。一个stage包的选择将直接影响未来的系统配置,可以在以后省的头痛。该压缩包 multilib 尽可能使用64位的库,只必要时对32位版本兼容。这对于大多数安装一个很好的选择,因为它在未来的定制提供了极大的灵活性量。那些谁希望自己的系统,能够容易地切换配置,应该下载根据各自的处理器架构 multilib的压缩包选项。

大多数用户应该不需要使用“高级”tar包选项;它们用于特定的软件或硬件配置。

no-multilib(纯64位)

选择一个no-multilib压缩包:no-multilib是在系统的基础上提供了一个完整的64位操作系统环境。这有效地使得切换到multilib的profile是不可能的(不是完全不可能)。这些刚刚开始使用Gentoo的新手不应该选择一个 no-multilib 压缩包,除非"绝对必要"。而且应该有很好的理由并做出负责任的选择。

警告
注意,把一个系统从no-multilib迁移到multilib需要极其丰富的使用Gentoo的知识并熟悉底层的工具链。这一做法甚至可能导致Toolchain developers 这令人不寒而栗。不适合内心柔弱之人,而且也超出了本指南的范围。

OpenRC

OpenRC 是一个基于依赖的 init 系统(负责在内核启动后启动系统服务),OpenRC 与系统提供的 init 程序保持兼容,通常在 /sbin/init。它是 Gentoo 原创的 init 系统,但也部署在一些其它的 Linux 发行版和 BSD 系统。

默认情况下,OpenRC 不能替代 /sbin/init 文件 以及 100% 兼容 Gentoo init 脚本。这意味着可以在 Gentoo ebuild 仓库找到运行多个守护进程的解决方案。

只是出于历史原因,本手册专注于安装和配置使用 OpenRC。但也计划重写和加强,并且解释 Systemd 安装(查看下面)。

systemd

systemd 是Linux 系统上一个现代化的 SysV 风格的 init 以及 rc 替代方案。到目前为止,大多数 Linux 发行版都在使用它。Gentoo 支持 systemd,并且运行良好,它可以随意配置。不幸的是,相应的安装手册章节在很大程度上还在正编写。

附注
可以将正在安装的 Gentoo 从 OpenRC 切换到 systemd,然后再切换回来。然而,这需要花费一些功夫,而且超出了安装手册的范围。根据你想在安装中使用什么,确保你选择了正确的 stage 归档文件。

下载 stage 归档文件

前往挂载根文件系统的 Gentoo 挂载点(类似于 /mnt/gentoo):

root #cd /mnt/gentoo

根据不同的安装媒介,下载 stage 归档文件只需要一个网络浏览器。

图形化浏览器

可以使用图形化网页浏览器从主网站下载小节复制 stage 文件 URL。只需选择适当的选项卡,右键单击 stage 文件的链接,然后复制链接到剪贴板,然后将链接粘贴到命令行中的 wget 程序来下载stage 归档文件:

root #wget <PASTED_STAGE_URL>

命令行浏览器

更多传统的读者或是 Gentoo 的“老前辈”专门使用命令行工作,他们可能更喜欢使用非图形化菜单驱动的浏览器 links。 要下载一个 stage,请像下面这样访问Gentoo镜像列表:

root #links https://www.gentoo.org/downloads/mirrors/

要设置links使用一个HTTP代理,在传入URL上加一个-http-proxy选项:

root #links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/

links之外还有一个lynx浏览器。和links类似,它也是一个非图形化的浏览器,但不是自带的。

root #lynx https://www.gentoo.org/downloads/mirrors/

如果需要定义一个代理,设置http_proxy和/或ftp_proxy变量:

root #export http_proxy="http://proxy.server.com:port"
root #export ftp_proxy="http://proxy.server.com:port"

在镜像列表中,选择一个附近镜像站。通常HTTP镜像站就足够了,但其他网络协议是可用的。请访问releases/ppc64/autobuilds/ 。 那里将显示所有可用stage文件 (可能他们个别小组架构在命名的子目录中存储)。选择一个,然后按 d 下载。

stage 文件下载完成后,可以验证 stage tarball 的完整性并验证其内容。 有兴趣的人应该进行下一节

对验证stage文件不感兴趣的用户可以通过按 q 来关闭命令行浏览器,并且可以直接移步到 解压stage压缩包 部分。

验证

附注
一些 tarballs 是通过XZ压缩的。在下载以 .tar.xz 结尾的 tarball 时,请确保在下面的命令中调整tarball文件名的 .tar.bz2

与最小安装CD一样,可以使用额外的下载来验证stage文件。 虽然这些步骤可以被跳过,但这些文件是为那些关心他们刚刚下载的文件合法性的用户提供的。

  • A .CONTENTS 文件包含stage压缩包内的所有文件的列表。
  • A .DIGESTS 文件,其中包含用不同的算法校验的stage文件。
  • A .DIGESTS.asc.DIGESTS文件一样, 包含不同的stage文件的校验和,但也加密签名,以确保它是由Gentoo项目提供的。

使用 openssl 并比较,提供的校验输出与.DIGESTS或者.DIGESTS.asc 文件的内容是否一致。

比如,要验证SHA512校验值:

root #openssl dgst -r -sha512 stage3-ppc64-<release>.tar.?(bz2|xz)

使用sha512sum命令的另外一种方式:

root #sha512sum stage3-ppc64-<release>.tar.?(bz2|xz)

要验证Whirlpool校验值:

root #openssl dgst -r -whirlpool stage3-ppc64-<release>.tar.?(bz2|xz)

该值需要匹配,否则下载的文件可能已损坏(或摘要文件)。比较这些命令的输出与.DIGESTS(.asc)中的值。该值需要匹配,否则下载的文件可能已损坏(或digests文件)。

就像在ISO文件中,它也可以来验证加密签名的.DIGESTS.asc。使用 gpg 以确保DIGESTS.asc文件校验和未被篡改:

root #gpg --verify stage3-ppc64-<release>.tar.?(bz2|xz){.DIGESTS.asc,}

OpenPGP 密钥的指纹用来对释出的安装媒介签名,在 Gentoo 服务器的 释出的安装媒介签名页面 上可以找到 OpenPGP 密钥的指纹。

解压stage 归档文件

现在,解压下载的stage到系统。我们使用 tar来进行:

root #tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

确保你使用了同样的参数 ( xpf--xattrs-include='*.*')。 x表示解开(Extract),v表示详细信息(Verbose)可以用来查看解压缩时发生了什么(可选参数), p 表示保留权限(Preserve permissions),还有f 表示我们要解开一个文件,而不是标准输入。最后,--numeric-owner 被用于确保从tarball中提取的文件的用户和组ID与Gentoo发布工程团队预期的保持一致,即使大胆的用户使用的不是Gentoo官方安装媒介。

现在stage文件已经解压好了,下面我们继续 配置编译选项

配置编译选项

介绍

为了优化Gentoo,可以设置一些影响Portage的变量,Gentoo官方支持包管理器。 所有这些变量可以设置为环境变量(使用export),但这不是永久的。 为了保留设置,Portage读入/etc/portage/make.conf文件 ,一个用于Portage的配置文件。

附注
所有可能的变量的注释列表可以在 /mnt/gentoo/usr/share/portage/config/make.conf.example中找到。要成功安装Gentoo,只需要设置下面提到的变量。

启动编辑器(在本指南中,我们使用 nano)来更改我们将在下面讨论的优化变量。

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

make.conf.example文件中可以明显看出文件的结构:注释行以 "#"开头,其他行使用 VARIABLE="content 语法定义变量。 接下来选取其中的几个进行讨论。

CFLAGS 和 CXXFLAGS

CFLAGSCXXFLAGS 变量分别定义了GCC C和C ++编译器的优化标志。 尽管这些标志一般在这里默认被定义过,但为了性能最大化,需要分别优化每个程序的这些配置。 原因是因为每个程序都不同。 但是,这是不可管理的,因此这些标志在 make.conf 文件中定义。

应该在make.conf中定义优化标志,这将使系统的响应速度最快。 不要在此变量中放置实验性的设置; 太多的优化可能会使程序表现不佳(崩溃,甚至更糟,故障)。

我们不会解释所有可能的优化选项。 要了解它们,请阅读GNU在线手册或gcc信息页面 (info gcc-只适用于可用的Linux系统)。make.conf.example 文件本身也包含了很多例子和信息; 不要忘了读它。

第一个设置是标志 -march=-mtune= ,指定目标体系结构的名称。 可能用到的选项在make.conf.example文件中有描述(作为注释)。 一个常用的值是“native”,它告诉编译器选择当前系统体系结构(用户正在安装Gentoo时的系统)。

第二个是标志 -O(即大写的字母O,而不是数字零),它指定了gcc优化级别标志。 可能用到级别的是s(对于大小最优化),0(零 - 无优化),1,2或甚至3等更多的优化选项(每个级别具有与前面相同的标志,加上一些额外选项)。 -O2是建议的默认值。 -O3在整个系统范围内使用时会导致问题,因此我们建议您坚持使用-O2

另一个普遍使用的优化标记是-pipe(不同编译阶段通信使用管道而不是临时文件)。它对产生的代码没有任何影响,但是会使用更多的内存。在内存不多的系统里,gcc可能会被杀掉。如果是那样的话,就不要用这个标记。

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

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

CODE CFLAGSCXXFLAGS 变量示例
# 为所有语言设置编译标志
COMMON_FLAGS="-O2 -pipe"
# 为两个变量使用相同的设置
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Tip
通过GCC 优化指导这篇文章获取有更多的信息,比如这些优化变量如何影响你的系统,Safe CFLAGS也许是对初学者开始优化系统更实用的一篇文章

MAKEOPTS

通过使用 MAKEOPTS 可以定义在安装软件时,并行编译的数目。你的CPU数目(或CPU核心数)+1 是个不错的选择,但是这个准则并不总都是最佳的。

警告
大量的 job 显著消耗内存。建议每个 job 至少有 2 GiB RAM (所以,-j6 至少 需要 12 GiB)。避免内存溢出,根据可用内存降低 job 数量。
Tip
当并行使用 emerge (--jobs),有效的 job 数量可以指数式加速(通过 emerge jobs 使 job 增加)。可以通过运行一个仅限于本地主机的 distcc 配置来解决这个问题,该配置将限制每个主机的编译器实例数量。
CODE 在make.conf中声明 MAKEOPTS 的示例
MAKEOPTS="-j2"

就位,预备,出发 !

根据你的喜好更新并保存/mnt/gentoo/etc/portage/make.conf(nano用户可以敲 Ctrl+x)。

让我们继续 安装Gentoo 基本系统.