发新话题
打印

gentoo安装手册(简体中文)

5.c. 其它选择:使用 LiveCD 的 Stage
解开 Stage 压缩档
Stage 将被放在光盘内的 /mnt/cdrom/stages 目录。要查看整个目录,使用 ls:
Code Listing 8: 查看所有可用的 Stage
# ls /mnt/cdrom/stages
如果您的系统回报错误,您将需要先挂载您的光驱:
Code Listing 9: 挂载光驱
# ls /mnt/cdrom/stagesls: /mnt/cdrom/stages: No such file or directory# mount /dev/cdroms/cdrom0 /mnt/cdrom# ls /mnt/cdrom/stages
现在到您的 Gentoo 挂载区(通常是 /mnt/gentoo):
Code Listing 10: 更变目录到 /mnt/gentoo
# cd /mnt/gentoo
我们现在需要解开您刚刚所选择的 stage 压缩档。我们将使用 GNU 的 tar 工具。确定您也使用着一样的参数(-xvjpf)!在下面的范例,我们将使用 stage3-<子架构>-2004.2.tar.bz2。要记得将压缩档档名换成您所选择的档名。
Code Listing 11: 解开 Stage 压缩档
# tar -xvjpf /mnt/cdrom/stages/stage3-<子架构>-2004.2.tar.bz2
Note: 您可以略过任何关于 ./proc 的 "No such file or directory" 警告。包括 "Error exit delayed from previous errors" 也可以略过。
现在 stage 已经安装完成了,请从 安装 Portage 继续。
5.d. 安装 Portage
有网络或是没有网络?
如果您没有网络联机,您将需要从我们的 LiveCD 内安装 portage 快照。这会假设你从 stage3 开始安装(这是唯一支持无网络安装的压缩文件),如果您想要使用预编套件加快安装的速度,您 一定要 使用光盘内的 portage 快照。其它使用者将需要在下一章使用 emerge 下载一个最新的 Portage tree。
?        从 LiveCD 安装 Portage 快照和原始码 (适用于无网络安装或是 GRP 安装)
?        设定编译选项 (适用于其它安装方式)
从 LiveCD 安装 Portage 快照和原始码
有些 Universal LiveCD 内有提供 Portage 快照。当您读到这边时,我们可以安全的假设您正在使用这种 LiveCD。要安装这个快照,看看 /mnt/cdrom/snapshots 查看我们可用的快照:
Code Listing 12: 查看 /mnt/cdrom/snapshots 的内容
# ls /mnt/cdrom/snapshots
现在将快找使用以下的方法解开。记得用正确的 tar 参数。另外,-C 是大写的 C 而不是 c。以下的范例我们将使用 portage-20040710.tar.bz2 为快照档名。记得要将更换您的档名。
Code Listing 13: 解开 Portage 快照
# tar -xvjf /mnt/cdrom/snapshots/portage-20040710.tar.bz2 -C /mnt/gentoo/usr
您也需要复制光盘内所有的原始码:
Code Listing 14: 复制原始码
# mkdir /mnt/gentoo/usr/portage/distfiles# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
现在您的 Portage 快照已经安装好了,请从 设定编译选项 继续。      
Debian linux 4.0

TOP

5.e. 设定编译参数
介绍
要自订 Gentoo,您可以设定很多变量来影响 Portage 的动作。这些变量可以设为环境变量(使用 export)但是非永久性。要保留您的设定,Portage 提供的 /etc/make.conf,一个 Portage 的设定档。这也将是我们将要编辑的档案。
Note: 您将会看到 /mnt/gentoo/etc/make.conf.example里有一大串批注的可用变量。要完整的安装 Gentoo 您至需要按照以下设定变量。
使用您最喜欢的编辑器(这份指南我们使用 nano)然后我们才可以继续我们稍后会讨论到的自订变量。
Code Listing 15: 打开 /etc/make.conf
# nano -w /mnt/gentoo/etc/make.conf
您或许已经发现了,make.conf.example 档案是基于常用的架构:批注的行数将以 "#" 放在每行的最前面,其它已定义的变量将使用类似 变量="内容"。许多变量将在下面继续讲解。
CHOST
Warning: 虽然这会对一些非 Stage1 的使用者有兴趣,但是非 stage1 的使用者 不应该 更改 make.conf 内的 CHOST 的设定。这样会造成系统不稳。再一次提醒:这只适用于 stage1 的使用者。
CHOST 的变量将定义着 gcc 针对架构所需要编译的参数。可能性为:
架构        子架构        CHOST 设定
x86        i386        i386-pc-linux-gnu
x86        i486        i486-pc-linux-gnu
x86        i586        i586-pc-linux-gnu
x86        i686 and above (incl. athlon)        i686-pc-linux-gnu
alpha                alpha-unknown-linux-gnu
ppc                powerpc-unknown-linux-gnu
sparc                sparc-unknown-linux-gnu
hppa        (通用)        hppa-unknown-linux-gnu
hppa        pa7000        hppa1.1-unknown-linux-gnu
hppa        pa8000 或以上        hppa2.0-unknown-linux-gnu
mips                mips-unknown-linux-gnu
amd64                x86_64-pc-linux-gnu
如果你改变了 CHOST 变量,你需要重新加载环境变量:
Code Listing 16: 重新加载环境变量
# env-update # source /etc/profile
CFLAGS 和 CXXFLAGS
CFLAGS 和 CXXFLAGS 变量将定义最佳效能化 gcc C 和 C++ 编译器的参数。虽然我们以通用的方式定义,您将需要分开定义适合您提高效能的设定。原因是每个程序使用的都不同。
在 make.conf 您应该要定义一个您认为会最佳化的 通用 参数。不要将测验性质的参数也放到这里;太多自订会让程序变得怪异(当掉,或是更遭,无法作用)。      
Debian linux 4.0

TOP

我们将不会解释这些可用的参数选择。如果您想知道更多,查看 GNU 线上指南 或是 gcc infopage (info gcc -- 只在一个完成的 Linux 系统上可作用)。 make.conf.example 这个文件也包含着许多范例及数据;不要忘了阅读他们。
第一个设定为 -march= 参数,这代表着计算机架构的目标。可用的参数将会在 make.conf.example 档案内说明(为批注的方式)。举例来说,给 x86 Athlon XP 的架构:
Code Listing 17: GCC march 设定
# 想要使用原生 64 位环境的 AMD64 的使用者不应该使用 athlon-xp-march=athlon-xp
第二个则是 O(是大写的 O,不是零) 参数,代表着 gcc 的性能参数。可用的参数为 s (增加档案大小性能),0 (零 - 没有提升性能), 1,2 或是 3 则关于速度的性能(一个特定的性能加上另外一个或是两个)。举例来说,一个 2 的性能参数:
Code Listing 18: GCC O 设定
-O2
其它受欢迎的参数为 -pipe (使用 pipes 进行编译中的通讯而不是暂存盘)和 -fomit-frame-pointer (在不需要 frame pointer 的时候不使用)。
当您定义 CFLAGS 和 CXXFLAGS后,您应该按照以下范例将他们结合起来:
Code Listing 19: 定义 CFLAGS 和 CXXFLAGS 变量
CFLAGS="-march=athlon-xp -pipe -O2"   AMD64 的使用者不该使用 athlon-xpCXXFLAGS="${CFLAGS}"                  # 两个变量使用一样的设定
MAKEOPTS
MAKEOPTS 将定义的是您需要在安装一个套件时需要几个平行编译。我们建议的号码为您系统上的 CPU 号码加一。
Code Listing 20: 普通的 1-CPU 系统的 MAKEOPTS
MAKEOPTS="-j2"
预备,开始!
依照您个人的选择编辑 /mnt/gentoo/etc/make.conf 然后储存。您现在可以从 安装 Gentoo 基础系统 继续      
Debian linux 4.0

TOP

6. 安装 Gentoo 基础系统
6.a. 变换根目录
自由选择:选择镜像站
如果您是从 Gentoo LiveCD 开机的话,您可以使用 mirrorselect 来更新 /etc/make.conf 让您可以从最快的镜像站取得套件和原始码(当在您有网络联机的状况下):
Code Listing 1: 选择最快的镜像站
# mirrorselect -a -s4 -o | grep -ve '^Netselect' >> /mnt/gentoo/etc/make.conf
如果因为某些理由 mirrorselect 失败了,不要慌张。这一步是自由选择的。这项步骤是非必要性的,您也可以使用预设的设定。
复制 DNS 设定
还有一件事在我们进入新的系统环境之前要记得做,就是复制 /etc/resolv.conf 中的 DNS 设定。您需要做这件是确保网络在进入新的环境后仍然可以工作。 /etc/resolv.conf 包含网络需要的名称服务器。
Code Listing 2: 复制 DNS 设定
(我们将需要使用到 "-L" 的参数来确保我们不会复制到连接类型的档案 )# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
进入新的系统环境
现在所有的分区都已经初步设定好了而且基本的系统也安装完毕,现在是用 变换根目录进入新的系统环境的时候了。这代表我们从目前的安装环境 (LiveCD 或是其它的安装媒体)进入您安装的系统(就是已经安装的分区)。
变换根目录动作在三步骤内完成。首先我们会用 chroot 让根目录从 / (目前安装的媒体)变换到 /mnt/gentoo (或您安装的分区)。然后用 env-update 建立新的环境,这将会建立基本的系统变量。最后,我们用 source 把这些变量加载到内存。
Code Listing 3: 进入新的环境
# chroot /mnt/gentoo /bin/bash# env-update * Caching service dependencies...# source /etc/profile
恭喜!您现在新的 Gentoo Linux 环境当中了。不过离安装完毕还有一段时间,这就是为什么安装指南还有下面这些部份 :-)
自由选择:更新 Portage tree
如果您没按照上一章所说的,将 Portage 快照安装,您一定要从网络上下载一分最新的 Portage tree。emerge sync 将会为您完成此项动作。其它的使用者应该跳过这个部份从 设定 USE 变量 继续。
Code Listing 4: 更新 Portage tree
# emerge sync
Portage 使用的是 RSYNC 协议来更新 Portage tree。如果以上的指令失败,请使用 emerge-webrsync 透过 HTTP 协议下载 Portage 快照。
Code Listing 5: 使用 emerge-webrsync 更新 Portage tree
# emerge-webrsync
如果您看到新的 Portage 已经可以下载而且您必须要更新的警告时,您应该要略过它, Portage 在之后安装时会被更新。
设定 USE 变量
USE 是 Gentoo 提供给使用者最有威力的变量之一。须多程序可以在编译时包含或不包含自由选择的支持。例如,一些程序可以在编译时包含 gtk 支持,或者是支持 qt。其它程序可以包含或不包含 SSL 支持,也有一些甚至可以使用 framebuffer (svgalib) 而不是 X11 (X-server)。
大部分的安装套件在编译时都敬可能的加入最多的支持,增加档案大小以及程序激活的时间,更别提复杂的相依性。在 Gentoo 下您可以定义哪些支持编译时要加入。这就是 USE 的作用。
在 USE 变量中,您可以加入要在编译时加入支持的关键词。例如,ssl 会在支持 ssl 的程序编译时加入 ssl 支持。-X 则会移除 X-server 支持(注意前面的减号)。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 找到。
Code Listing 6: 检视可用的 USE 参数
# less /usr/portage/profiles/use.desc
下面是一个 USE 的设定,在以 KDE 为基础的系统中支持 DVD, ALSA 以及刻录机。
Code Listing 7: 开启 /etc/make.conf
# nano -w /etc/make.conf
Code Listing 8: USE 设定
USE="-gtk -gnome qt kde dvd alsa cdr"
自由选择:在不同计算机编译
如果您对使用许多系统来协助您一起编译程序,您可能会想要看 DistCC 指南。您可以借着 distcc 来使用许多台计算机的处理能力来帮助您完成安装。
6.b. Stage1,Stage2 和 Stage3 的不同
现在先坐下来回想一下之前的步骤。我们要求您选择 stage1,stage2 或 stage3 并且提醒您您的选择对之后的安装步骤很重要。嗯,现在是您决定接下来的步骤的时候了。
?        如果您选择 stage1,接下来您要做这一节全部的步骤从 Stage1 到 Stage2 的过程 开始
?        如果您选择 stage2 您只要略过第一步骤,立即从第二部份 Stage2 到 Stage3 的过程 开始
?        如果您选择 stage3(不管使不使用 GRP)那您可以略过这两部份。 请继续下一节: 设定核心
6.c. Stage1 到 Stage2 的过程
介绍 Bootstrapping
所以您决定要从头编译所有东西?那开始吧 :-)
在这个步骤中,我们会 bootstrap 您的 Gentoo 系统。这会花很长一段时间,但是您会得到一个针对您的机器完全最佳化的系统。
Bootstrapping 代表编译 GNU C 函式库、GNU C 编译器以及其它重要的软件。
在开始之前,我们会列出两个您需要或是不需要的参数。如果您不想要阅读这些的话,从 Bootstrapping 您的系统 继续。      
Debian linux 4.0

TOP

自由选择:先下载原始码
如果您之前不曾复制全部的原始码,bootstrap script 会下载所有必要的档案。这当然在有连接到网络时才能正常工作 :-) 如果您想要先下载原始码然后再执行 bootstrap (例如您并不想在编译时让您的网络一直保持联机),使用bootstrap script 的 -f 选项,这将会下载(Fetch)所有的原始码。
Code Listing 9: 下载必须的原始码
# cd /usr/portage# scripts/bootstrap.sh -f
Bootstrapping 您的系统
好啦,在您的键盘敲下底下的指令来激活 bootstrap,然后给您自己找些娱乐吧 然后自己找点喜欢的事情做,因为这一步骤将会花费一些时间完成。
Code Listing 10: Bootstrapping 您的系统
# cd /usr/portage# scripts/bootstrap.sh
接下来继续下一步骤 Stage2 到 Stage3 的过程。
6.d. Stage2 到 Stage3 的过程
介绍
如果您正在阅读这一部份,那您已经有一个 bootstrap 好的系统(可能是您之前执行 bootstrap 或是您使用 stage2)。现在是编译所有系统套件的时候了。
所有系统套件?不,不完全是。在这一步骤中,您将会编译没有其它选择的系统套件。一些套件有多种选择 (例如 system loggers),因为 Gentoo 代表选择,我们不会强迫您一定要使用哪一种。
自由选择:看会做哪些事
如果您想要知道哪些套件会被安装,执行 emerge --pretend system。这将会列出所有要编译的程序。因为这相当的多,您应该使用 less 或 more 来上下浏览。
Code Listing 11: 看 'emerge system' 会做什么
# emerge --pretend system | less
自由选择:下载原始码
如果您想要 emerge 在开始之前先下载原始码(例如您并不想在编译时让您的网络一直保持联机),您可以使用 emerge 的 --fetchonly 参数来帮您下载所有的原始码。
Code Listing 12: 下载原始码
# emerge --fetchonly system
编译系统
执行 emerge system 来开始编译系统。然后让您自己忙于某些事情,因为这到完成会花很长一段时间。
Code Listing 13: 编译系统
# emerge system
您现在可以安全的略过任何警告来更新您的设定档(执行 etc-update)。当您的 Gentoo 系统已经完全安装完毕,重开机后,查看我们的 设定档案保护。
当编译过程完成后,请从 设定核心 继续。
7. 设定核心
7.a. 时区
为了让您的系统知道它的位置在那里,您将需要设定您的系统时区。到 /usr/share/zoneinfo 寻找您的时区,然后使用 ln 建立一个连接到 /etc/localtime。
Code Listing 1: 设定时区信息
# ls /usr/share/zoneinfo(假设您要使用 GMT)# ln -sf /usr/share/zoneinfo/GMT /etc/localtime
7.b. 安装核心原始码
选择一个核心
Linux 的核心是所有版本的最中心,也是最重要的。他位于使用者程序和系统硬件之间。 Gentoo 提供使用者很多可用的核心原始码。您可以到 Gentoo 核心 指南 查看我们所提供的核心。
使用 x86 系统的使用者,我们提供着 vanilla-sources(常常被其它 Linux 核心开发者用来开发成其它核心的基础版本),gentoo-sources(针对效能调整过的核心),gentoo-dev-sources(核心 2.6 针对效能所调整过的核心), gs-sources (针对服务器功能调整),development-sources(2.6 vanilla 核心原始码)╈
如果您正在使用无网络的安装,您只能选择 CD 上提供的核心,2004.2 中有:
?        gentoo-sources
?        vanilla-sources
?        gentoo-dev-sources
?        development-sources
选择适合您的核心原始档然后使用 emerge 安装。
在下个指令范例我们将教您如何安装 vanilla-sources-2.4.24(适合无网络的安装环境)和 gentoo-sources。当然依照您的喜好安装您想要的核心。这些都只是范例,但是您应该 只 安装一个核心原始码。
Code Listing 2: 安装核心原始码
# emerge gentoo-sources
当您查看 /usr/src 您将会看到一个 linux 的连接连到您所选的核心:
Code Listing 3: 观看核心原始码目录连接
# ls -l /usr/src/linuxlrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -> linux-2.4.26-gentoo-r6
如果您碰到的不是这样(例:连接连到其它的核心目录)您将需要在继续往下之前更改连接:
Code Listing 4: 更改核心连接目录
# rm /usr/src/linux# cd /usr/src# ln -s linux-2.4.26-gentoo-r6 linux
现在我们该设定以及编译您的核心了。您可以使用 genkernel 完成此项步骤,并且将会以和 LiveCD 一样的通用的方式进行编译。我们将先解释如何手动编译因为这是自订您的环境的最佳方法。
如果您想要手动编译您的核心,请从 预设:手动设定 继续。如果您想要使用 genkernel 请从 其它选择:使用 genkernel 继续。
7.c. 预设:手动设定
介绍
手动设定核心常常被 Linux 使用者认为最难完成的步骤。虽然不假 -- 但是当您手动编译几次核心后,您应该不会觉得它有多难 ;)
但是,唯一 的重点就是:您必须要了解您的系统才可以开始手动编译。系统上多数的资料可以从 /proc/pci (如果可以的话使用 lspci)查看。您也可以执行 lsmod 看看 LiveCD 使用那些核心模块(这是一个不错的暗示,教您该开启那个选项)。
现在到您的核心原始码目录然后执行 make menuconfig。这将会激活一个 ncurses 的设定选单。
Code Listing 5: 开始 menuconfig
# cd /usr/src/linux# make menuconfig
您将会看到一大串的设定部份。我们将列出一些您一定要启用的选项(不然 Gentoo 无法完善的工作)。
必须开启的选项
首先,开启 development and experimental code/drivers。您将需要这个,不然您将无法看见一些其它重要的程序代码或是驱动程序。
Code Listing 6: 选择 experimental code/drivers
Code maturity level options --->  
  • Prompt for development and/or incomplete code/drivers
    记得在编译核心时选择正确的处理器类别:
    Code Listing 7: 选择正确的处理器类别
    Processor type and features ---> (依照您的处理器所更换) (Athlon/Duron/K7) Processor family
    现在到 File Systems 然后选择要支持的档案系统。记得不要将它们编成模块。还有 Virtual memory,/proc file system,/dev file system + Automatically munt at boot:
    Code Listing 8: 选择相关档案系统
    (使用 2.4.x 核心)File systems --->  
  • Virtual memory file system support (former shm fs)  
  • /proc file system support  
  • /dev file system support (EXPERIMENTAL)  
  •    Automatically mount at boot  [ ] /dev/pts file system for Unix98 PTYs(使用 2.6.x 核心)File systems --->  Pseudo Filesystems --->   
  • /proc file system support   
  • /dev file system support (OBSOLETE)   
  •    Automatically mount at boot   
  • Virtual memory file system support (former shm fs)(按照您系统所需要的档案系统开启以下选项)  <*> Reiserfs support  <*> Ext3 journalling file system support  <*> JFS filesystem support  <*> Second extended fs support  <*> XFS filesystem support
    如果你的 BIOS 不能处理大容量的硬盘,而且你调整跳脚让硬盘回报受限制的容量,你需要开启底下设定让系统可以存取所有容量:
    Code Listing 9: 选择自动调整大小支持
    (只适用 2.4.x 核心) ATA/IDE/MFM/RLL support --->   IDE, ATA and ATAPI Block devices --->     <*>   Include IDE/ATA-2 DISK support     [ ]     Use multi-mode by default     
  •      Auto-Geometry Resizing support
    如果您需要透过 PPPoE 联机到网络或是调制解调器拨接,您将需要以下的核心选项:
    Code Listing 10: 选择 PPPoE 相关驱动程序
    (使用 2.4.x 核心)Network device support --->  <*> PPP (point-to-point protocol) support  <*>   PPP support for async serial ports  <*>   PPP support for sync tty ports(使用 2.6.x 核心)Device Drivers --->  Networking support --->    <*> PPP (point-to-point protocol) support    <*>   PPP support for async serial ports    <*>   PPP support for sync tty ports
    虽然 PPP over Ethernet 选项只是有在 rp-pppoe 设定为核心 PPPoE 时需要,但是这两个压缩的选项不会造成错误。
    如果您需要,不要忘了为您的网络卡加入核心的支持。
    如果您有一个支持 HyperThreading(tm) 的 Intel CPU,或是有多个 CPU,您应该启用 "Symmetric multi-processing support":
    Code Listing 11: 启用 SMP 支持
    Processor type and features  --->  
  • Symmetric multi-processing support
    当您完成核心设定时,请从 编译和安装 继续。      
  • Debian linux 4.0

    TOP

    编译和安装
    现在您的核心已经设定完成了,我们该来编译然后安装它。离开核心设定,然后执行 make dep && make bzImage modules modules_install:
    Code Listing 12: 编译核心
    (核心 2.4)# make dep && make bzImage modules modules_install(核心 2.6)# make && make modules_install
    当核心完成编译时,将核心映像档复制到 /boot:从这边我们将假设您安装的是 gentoo-sources 的 2.4.26。您可以随意更改容易记住的文件名称,方便稍后的开机程序设定。
    Code Listing 13: 安装核心
    # cp arch/i386/boot/bzImage /boot/kernel-2.4.26-gentoo-r6# cp System.map /boot/System.map-2.4.26-gentoo-r6
    您也可以将您的核心设定档备份到 /boot,以防万一
    Code Listing 14: 备份您的核心设定档
    # cp .config /boot/config-2.4.26-gentoo-r6
    现在请从 安装分开的核心模块。
    7.d. 其它选择:使用 genkernel
    如果您正在读这个部份,那您应该是选择使用我们的 genkernel 程序来为您设定核心。
    现在您的核心原始码已经安装了,我们该使用 genkernel 程序来自动帮您编译核心。genkernel 是利用类似 LiveCD 的核心设定来进行工作的。这代表着当您使用 genkernel 编译您的核心,您的系统大致上会在开机时侦测所有的硬件,就和我们的 LiveCD 一样。因为 genkernel 不需要手动核心设定,所以适合不会编译核心的使用者。
    现在让我们来看看如何使用 genkernel。首先,安装 genkernel:
    Code Listing 15: 安装 genkernel
    # emerge genkernel
    现在,编译您的核心原始码。如果您是透过 grp 安装 genkerenl,直接执行 genkernel all。请注意,当 genkernel 正在编译所有硬件支持时,等待的时间会有点久!
    如果您的开机分区没有使用 ext2 或是 ext3 为档案系统,您将需要使用 genkernel --menuconfig all 手动设定,然后在核心内加入您所使用的档案系统支持( 不能 编成模块)。
    Code Listing 16: 执行 genkernel
    # genkernel all
    当 genkernel 完成的时候,一个核心映像文件,一套模块和一个 initial root disk (initrd)将会被建立。我们将在稍后设定开机程序时使用核心映像档和 initrd。写下核心和 initrd 的档名方便您稍后设定开机程序。initrd 将会在开起到"真正的"系统之前马上侦测硬件支持(就和 LiveCD 一样)。
    Code Listing 17: 查看已建立的核心映像档名和 initrd
    # ls /boot/kernel* /boot/initrd*
    现在,为了要让我们的系统更像 LiveCD,我们需要安装 hotplug。当 initrd 自动侦测硬件时,hotplug将会自动侦测其它的硬件。要安装然后开启 hotplug ,请按照以下输入:
    Code Listing 18: 安装和开启 hotplug
    # emerge hotplug# rc-update add hotplug default
    7.e. 安装分开的核心映像文件和模块
    安装多个模块
    如果适当,您应该要安装系统上的硬件所需要的安装程序。以下为一些您有可能用到的核心相关的安装程序:
    安装程序(Ebuild)        用意        指令
    nvidia-kernel        针对 NVIDIA 加速 xorg-x11        emerge nvidia-kernel
    nforce-net        NVIDIA NForce(2) 主机板上的内建网络控制卡        emerge nforce-net
    nforce-audio        NVIDIA NForce(2) 主机板的内建声卡        emerge nforce-audio
    e100        Intel e100 Fast Ethernet 网络卡        emerge e100
    e1000        Intel e1000 Gigabit Ethernet 网络卡        emerge e1000
    emu10k1        Creative Sound Blaster Live!/Audigy 支持        emerge emu10k1
    ati-drivers        适用于 xorg-x11 的 加速Accelerated ATI Radeon 8500+/FireG        emerge ati-drivers
    ati-drivers-extra        Graphical ATI 工具        emerge ati-drivers-extra
    请注意,有些安装程序会碰到很多相依性的问题。要确定您会安装到那些套件,使用 emerge --pretend。举例来说,emu10k1 套件:
    Code Listing 19: 查看完整的安装套件列表
    # emerge --pretend emu10k1
    如果您不喜欢它要安装的套件,使用 emerge --pretend --verbose 查看各套件需要使用到什么 USE 参数:
    Code Listing 20: 查看使用的 USE 参数
    # emerge --pretend --verbose emu10k1...[ebuild  N    ] media-sound/aumix-2.8  +gpm +nls +gtk +gnome +alsa -gtk2
    以上的范例将可以看到 emu10k1 的相依性(aumix)必须依赖着 gtk 和 gnome 的 USE 参数,而 gtk (依赖着 xorg-x11)将会被一起编译。
    如果您不要编译全部,拿掉所有的 USE 参数,如:
    Code Listing 21: 关闭所有的 USE 参数安装 emu10k1
    # USE="-gpm -nls -gtk -gnome -alsa" emerge --pretend emu10k1
    当您满意时,移除掉 --pretend 开始安装 emu10k1。
    设定模块
    您将需要将想要开机时自动加载的模块放到 /etc/modules.autoload.d/kernel-2.4 (或是 kernel-2.6)。您也可以加上模块的选项。
    要查看所有可用的模块,执行 find 指令。不要忘了将 "<kernel version>"更改为您刚刚编译的版本:
    Code Listing 22: 查看所有可用的版本
    # find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
    举例来说,要自动加载 3c59x.o 模块,编辑 kernel-2.4 或是 kernel-2.6:
    Code Listing 23: 编辑 /etc/modules.autoload.d/kernel-2.4
    (2.4核心的范例)# nano -w /etc/modules.autoload.d/kernel-2.4
    Code Listing 24: /etc/modules.autoload.d/kernel-2.4 或是 kernel-2.6
    3c59x
    现在执行 modules-update 来套用您的变更到 /etc/modules.conf:
    Code Listing 25: 执行 modules-update
    # modules-update
    现在请从 设定您的系统 继续安装。      
    Debian linux 4.0

    TOP

    8. 设定您的系统
    8.a. 档案系统信息
    什么是 fstab?
    在 Linux 中,所有在系统中被使用的分区要被列在 /etc/fstab 之中。在这个档案之中包含了这些分区的挂载点(他们在档案系统中哪里被存取),他们如何挂载( 一些特别的参数),以及何时挂载(要不要自动挂载,一般使用者可不可以挂载等)。
    建立 /etc/fstab
    /etc/fstab 使用特别的语法。每一列包含六个字段,以空格(一个以上)、tab或两者同时用来分隔。每一个字段有他自己的定义:
    ?        第一个字段设定分区的位置(装置的路径)
    ?        第二个字段设定分区要在哪个挂载点被挂载
    ?        第三个字段设定分区的档案系统
    ?        第四个字段设定 mount 要挂载时所使用的挂载参数。 因为不同的档案系统有不同的参数,您要去查询 manpage (man mount) 来取得完 整的参数列表。这些参数之间以逗号分隔。
    ?        第五个字段被 dump 用来决定这个分区需不需要被倾印。一般而言您可以设成 0(零)
    ?        第六个字段让 fsck 决定当系统不正常的关机时,档案系统检查的顺序。 根目录要被设成 1 而其它则要设成 2,如果档案系统不需要被检查的 话,则设成 0。
    接下来激活 nano (或您惯用的编辑器)来建立/etc/fstab:
    Code Listing 1: 开启 /etc/fstab
    # nano -w /etc/fstab
    接着来看看我们如何设定 /boot 分区。这只是一个范例,所以如果您的系统不需要 /boot 分区(如:PPC),不要直接复制它。
    在我们的 x86 分割范例中 /boot 是位于 /dev/hda1 分区中,而且使用 ext2 档案系统。他不应该在开机时自动挂载 (noauto),但是需要被检查,所以我们应该记下来:
    Code Listing 2: /etc/fstab 中 /boot 设定范例
    /dev/hda1   /boot     ext2    defaults        1 2
    如果您不需要自动挂载 /boot 分区,来增加您的系统安全性,您将需要将 defaults 更换成 noauto。这代表着你将需要在使用时手动挂载。
    为了增进效能,大部分使用者都会在要挂载的分区挂载参数中设定 noatime,因为这会让系统不更新上次档案的存取时间(一般来说您并不需要这个功能),因此可以加快速度:
    Code Listing 3: etc/fstab 中改进过的 /boot 设定范例
    /dev/hda1   /boot     ext2    default,noatime    1 2
    接下来,我们继续完成下面这几行,包括 /boot,/ 还有置换区:
    Code Listing 4: /etc/fstab 中三行设定
    /dev/hda1   /boot     ext2    default,noatime    1 2/dev/hda2   none      swap    sw                0 0/dev/hda3   /         ext3    noatime           0 1
    最后,您要加入 /proc,tmpfs (必要),以及CD-ROM。如果您还有其它的装置,也加到档案中:
    Code Listing 5: 完整的 /etc/fstab
    /dev/hda1   /boot     ext2    noauto,noatime    1 2/dev/hda2   none      swap    sw                0 0/dev/hda3   /         ext3    noatime           0 1none        /proc     proc    defaults          0 0none        /dev/shm  tmpfs   defaults          0 0/dev/cdroms/cdrom0    /mnt/cdrom    auto      noauto,user    0 0
    档案系统设定 auto 让 mount 猜测使用哪个档案系统(建议在可卸除的装置使用,因为他们可能有多种档案系统),而 user 参数让一般使用者也能挂载 CD。
    如果您使用 SPARC 的话,您也要将下面这一行加入 /etc/fstab 中:
    Code Listing 6: 在 /etc/fstab 加入 openprom 档案系统
    none        /proc/openprom  openpromfs    defaults      0 0
    如果您要需要 usbfs,加入下面这一行:
    Code Listing 7: 在 /etc/fstab 加入 usbfs 档案系统
    none        /proc/bus/usb   usbfs         defaults      0 0
    重新检查一次 /etc/fstab,储存离开后进行下面的步骤。
    8.b. 网络信息
    主机名称,领域名称等
    接下来的步骤其中之一就是给您的计算机一个名称。这步骤相当简单,但是许多人很难找到一个合适的名称,记得您设定的名字在之后还是可以改变的,这可以让您快一点完成。一般而言,您可以设定计算机名称为 tux 而领域名称为 homenetwork。
    我们会使用这些设定来当做范例。首先设定主机名称:
    Code Listing 8: 设定主机名称
    # echo tux > /etc/hostname
    其次设定领域名称:
    Code Listing 9: 设定领域名称
    # echo homenetwork > /etc/dnsdomainname
    如果您有 NIS 领域名称的话(您不知道这是什么的话,那您就不用设定它),您也需要去设定它:
    Code Listing 10: 设定 NIS 领域名称
    # echo nis.homenetwork > /etc/nisdomainname
    现在加入 domainname script 到预设的 runlevel 中:
    Code Listing 11: 将 domainname 加到预设 runlevel
    # rc-update add domainname default
    设定网络
    在您觉得 "嗯,我现在已经弄好了" 之前,您要记得在您刚开始安装 Gentoo 时设定的网络只是在安装过程中使用。现在您要为您的 Gentoo 系统设定网络。
    所有的网络设定都集合在 /etc/conf.d/net。如果您不知道如何设定的话,您会觉得这些语法相当不熟悉或是不了解,但不用担心,我们会解释每件您该需要的讯息
    首先用您惯用的编辑器开启 /etc/conf.d/net (这个范例中使用 nano):
    Code Listing 12: 开启 /etc/conf.d/net 来编辑
    # nano -w /etc/conf.d/net
    您会看到的第一个变量是 iface_eth0。他的语法如下:
    Code Listing 13: iface_eth0 语法
    iface_eth0="<您的 IP> broadcast <您的广播地址> netmask <网络屏蔽>"
    如果您使用 DHCP (自动取得 IP),您只要设定 iface_eth0 为 dhcp。如果您使用 rp-pppoe (例如 ADSL),则设定为 up。如果您要手动设定但是对上面的一些专有名词不了解的话,请阅读 了解网络专有名词这一部分。
    接这我们给您三个例子;第一个使用 DHCP,第二个设定静态 IP (192.168.0.2) 以及网络屏蔽 255.255.255.0,广播地址 192.168.0.255 还有网关 192.168.1.1,第三个则是适合 rp-pppoe 的设定:
    Code Listing 14: Examples for /etc/conf.d/net
    (适用 DHCP)iface_eth0="dhcp"#一些网络管理员会要求你使用#DHCP 服务器指定的主机名称和领域名称。#在这种情况下,加入底下的东西让 dhcpcd 使用他们。#这会取代掉你远本设定的主机名称和领域名称。dhcpcd_eth0="-HD"#如果你使用 NTP 来同步你的计算机时间,使用#-N 参数避免 dhcpcd 覆盖你的 /etc/ntp.confdhcpcd_eth0="-N"(适用静态 IP)iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"gateway="eth0/192.168.0.1"(适用 rp-pppoe) iface_eth0="up"
    如果您有数个网络接口,新增额外的 iface_eth 变量,例如 iface_eth1, iface_eth2 等。而 gateway 变量在您只有一个网关时并不用增加。
    现在储存设定然后离开,继续下面的步骤。
    开机时自动激活网络
    让您的网络接口开机时自动激活,您要把底下这些加入预设的 runlevel 中。如果您使用 PCMCIA 接口则跳过这一步骤,PCMCIA 是由 PCMCIA 激活 script 来激活。
    Code Listing 15: 加入 net.eth0 到预设的 runlevel
    # rc-update add net.eth0 default
    如果您有数个网络接口,您要建立对应的 net.eth1,net.eth2 等。您可以使用 ln 来完成:
    Code Listing 16: 建立额外的 initscripts
    # cd /etc/init.d# ln -s net.eth0 net.eth1# rc-update add net.eth1 default      
    Debian linux 4.0

    TOP

    写入网络信息
    您需要告诉 Linux 关于您的网络的信息。这在 /etc/hosts 中定义帮助您将名称服务器上查不到的主机名称反解为 IP。例如您的网络中有三台计算机,分别叫做 jenny (192.168.0.5),benny (192.168.0.6) 和 tux (192.168.0.7 - 这台计算机),您要开启 /etc/hosts 然后填入这些设定:
    Code Listing 17: 开启 /etc/hosts
    # nano -w /etc/hosts
    Code Listing 18: 填入网络信息
    127.0.0.1     localhost192.168.0.5   jenny.homenetwork jenny192.168.0.6   benny.homenetwork benny192.168.0.7   tux.homenetwork tux
    如果您的计算机是唯一的一部,或是名称服务器有全部的反解,底下这一行已经足够了,例如说,你想要你的计算机叫做 tux.homenetwork:
    Code Listing 19: 适合单一计算机或是有完整反解的计算机的 /etc/hosts
    127.0.0.1     tux.homenetwork tux localhost
    储存设定然后离开,继续下面的步骤。
    如果您没有 PCMCIA,您可以继续进行 系统信息。 PCMCIA 使用者继续下面的主题。
    非必要:让 PCMCIA 工作
    Note: pcmcia-cs 只可以在 x86, amd64 和 ppc 平台上使用。
    PCMCIA 使用者首先要安装 pcmcia-cs 套件。然后使用 USE="-X" 来避免现阶段的 XFree86 安装:
    Code Listing 20: 安装 pcmcia-cs
    # USE="-X" emerge pcmcia-cs
    当 pcmcia-cs 安奘好以后,新增 pcmcia 到预设 runlevel:
    Code Listing 21: 新增 pcmcia 到预设 runlevel
    # rc-update add pcmcia default
    8.c. 系统信息
    Root密码
    我们藉由输入以下指令来更改Root密码
    Code Listing 22: 设定Root密码
    # passwd
    如果您希望让Root能够从文字接口登入,请增加tts/0到/etc/securetty:
    Code Listing 23: 增加 tts/0 to /etc/securetty
    # echo "tts/0" >> /etc/securetty
    系统信息
    Gentoo 使用 /etc/rc.conf 来设定整个系统的一般设定。开启 /etc/rc.conf 然后享受里面完善的注解
    Code Listing 24: 开启 /etc/rc.conf
    # nano -w /etc/rc.conf
    就如同您所看到的,这个档案有完善的注解让您设定必要的参数。特别要注意 KEYMAP 变量,如果您设定错误的 KEYMAP 当您再用键盘输入时会得到错误的结果。
    Note: 以 USB 为主的 SPARC 系统或兼容的系统可能要选择 i386 keymap (例如 "us") 而不是 "sunkeymap"。
    PPC 在大部份的系统上使用 x86 的 keymaps。想要使用 ADB keymaps 的使用者将需要在开机时启用核心内的 ADB keycode sendings 然后在 rc.conf 内设定一个 mac/ppc keymap。
    设定好 /etc/rc.conf 以后,存盘然后离开。接下来继续 安装必要的系统工具。
    9. 安装必要的系统工具
    9.a. 系统记录器
    在我们提到什么是 stage3 时,我们曾说它包含着所有我们不能提供给我们的使用者的系统工具。我们也曾提到过之后将会安装其它的工具。我们便从这里开始解说这些工具吧
    第一个您需要做决定的工具是用来提供给系统记录的功能。Unix 和 Linux 拥有一个很好的记录功能的历史 -- 若是您想要的话,您可以记录所有发生在您系统上的事情至 logfiles。这将会需要用到 系统记录器。
    Gentoo 提供许多个系统记录器的选择。分别为 sysklogd,它是一个传统的系统记录服务器,syslog-ng ,是一个进阶的系统记录器,而 metalog 则是一个高度配置的系统记录器。Portage 内或许有其它的记录器 -- 我们提供的套件每天都在增加当中。
    如果您无法决定要使用那一个系统记录器,您可以考虑使用 metalog,它除了非常强大外,它也内含了非常好的预设配置。
    请用 emerge 指令来安装您想使用的系统记录器,并使用 rc-update 将之加入至预设 runlevel。下面是一个安装 metalog 的例子。当然,它也适用于安装您要用的系统记录器:
    Warning: 2004.2 的 stage3 压缩文件错误的包含 sysklogd 纪录器。您需要再安装新的之前先移除他。
    Code Listing 1: 安装系统记录器
    (如果您使用 stage3 压缩档的话先移除 sysklogd 纪录器)# emerge unmerge sysklogd(现在安装您选择的系统记录器)# emerge metalog# rc-update add metalog default
    9.b. 非必要: Cron 服务器
    接下来的则是 cron 服务器。虽然您的系统并不一定需要安装这个服务器,但我们还是建议您安装一个。然而,什么是 cron 服务器呢?cron 服务器执行排定的指令。若您需要时常执行一些指令 (每天、每星期、或是每个月),则它将会是一个得力的助手。
    Gentoo 提供三种可能的 cron 服务器:dcron、fcron、以及 vixie-cron。安装它们的方式跟安装系统记录器的方式一样。但是, dcron 和 fcron 需要一个额外的设定指令,即 crontab /etc/crontab。如果您无法决定使用那个 cron 服务器,您可以考虑使用 vixie-cron。
    针对无网络的安装,我们只提供 vixie-cron。如果您想要安装其它 cron ,您将需要等到之后再自行安装。
    Code Listing 2: 安装 cron 服务器
    # emerge vixie-cron# rc-update add vixie-cron default(只有在安装 dcron 或 fcron) # crontab /etc/crontab
    9.c. 档案系统工具
    依照您使用的档案系统,您应该安装必要的档案系统工具 (用来检查档案系统的正确性、建立额外的档案系统等等)。
    下面的表格列出各档案系统所需要安装的工具:
    档案系统        工具        安装指令
    XFS        xfsprogs        emerge xfsprogs
    ReiserFS        reiserfsprogs        emerge reiserfsprogs
    JFS        jfsutils        emerge jfsutils
    如果您不需要使用 rp-pppoe 联机至网际网络,请阅读 最终化您的 Gentoo 安装。不然请继续阅读 非必要:网络工具.
    9.d. 非必要:网络工具
    如果您需要 rp-pppoe 来联机至网际网络,您需要安装它。
    Code Listing 3: 安装 rp-pppoe
    # USE="-X" emerge rp-pppoe
    USE="-X" 将会禁止 xorg-x11 因为依存性而被安装至系统 (rp-pppoe 有图型接口工具;如果您想要激活它们,您可以晚点再重新编译 rp-pppoe ,但您也可以现在就安装 xorg-x11 -- 这将会需要更长的编译时间)。
    现在请接着阅读 最终化您的 Gentoo 安装。
    10. 设定开机管理程序
    10.a. 决定您的选择
    介绍
    现在您的核心已经设定和已经编译好相关的系统设定文件了,是时候该安装一个程序来驱动开机时所需要的核心。这个程序叫做 开机程序。适用于 x86, Gentoo Linux 提供 GRUB 和 LILO。在我们继续安装其中一个开机程序之前,我们将会告诉您如何设定 framebuffer (如果您想要的话)。使用 framebuffer,您可以在文字接口下执行有限度的图标功能(如 Gentoo 提供的漂亮 bootsplash)。
    选择性: Framebuffer
    如果 您的核心有设定 framebuffer 的支持(或是您使用 genkernel 的预设核心设定),您可以在您的开机程序设定文件内加入 vga 相关的设定。以下的列表将会是一些可用的 vga 参数。范例的设定文件将使用 800x600 @ 16bpp ,所以是 768。
            640x480        800x600        1024x768        1280x1024
    8 bpp        769        771        773        775
    16 bpp        785        788        791        794
    32 bpp        786        789        792        795
    请记得(或是写下)您适用的数值;您稍后将需要到它。
    现在开始安装 GRUB 或是 LILO。
    10.b. 预设: 使用 GRUB
    了解 GRUB 的意义
    了解 GRUB 的关键就是必须了解 GRUB 如何看待相关的硬盘和分区。您的 Linux 分区 /dev/hda1 将会被 GRUB 解释为 (hd0,0)。请注意 hd0,0 外面的括号 - 它们是不可或缺的。
    硬盘的计算是从 0 而不是 "a" 开始。请特别注意硬盘,GRUB 将不会计算 atapi-ide 光驱和刻录机等装置。(在正常的情况来说,除非特别从 bios 设定 SCSI 磁盘开机,不然它们将取得比 ide 磁盘更高的号码。
    假如您有一个在 /dev/hda 的硬盘,在 /dev/hdb 的光驱,在 /dev/hdc 的刻录机,第二棵硬盘在 /dev/hdd 和没有任何 SCSI 装置。 /dev/hdd7 将会被翻译成 (hd1,6)。这或许听起来有点诡异,但是我们将可以利用 GRUB 提供的 tab 完成结构(tab complete mechanism)让您设定许多硬盘和分区时方便许多。
    差点忘记了,我们现在该安装 GRUB 了。
    安装 GRUB
    要安装 GRUB,我们先需要安装它:
    Code Listing 1: 安装 GRUB
    # emerge grub
    要开始设定 GRUB,您将要输入 grub。您将会被带领到 grub> 的文字接口。现在您需要输入正确的指令将 GRUB 的开机纪录安装到您的硬盘上。
    Code Listing 2: 开始 GRUB 接口
    # grub
    Note: 如果您的系统上没有任何软盘,将 --no-floppy 的选项加到以上指令的后面,如此一来 grub 就不会在开始时寻找软盘机了。
    在范例的设定文件内,我们要安装 GRUB,所以它才能从开机分区 /dev/hda1 内读 GRUB 的取相关资料,然后将 GRUB 开机纪律安装到硬盘的 MBR (master boot record),如此一来我们一开机就会碰到 GRUB 的画面。当然,如果您没有按照范例设定,请依照您的设定做更改。
    GRUB 的 tab 完成架构 (tab completion mecanism)适用于 GRUB内。举例来说,如果您输入 "root(" 然后按下 TAB 键,您将会看到 GRUB 显示出所有可用的装置(如 hd0)。如果您输入 "root (hd0," 然后按下 TAB 键,您将会看到 GRUB 显示出所有可选的分区清单(如 hd0,0)。
    GRUB 的 tab 键完成架构应该可以在 GRUB 的设定上简单一点。现在我们将要开始设定 GRUB。
    Code Listing 3: 将 GRUB 安装到 MBR
    grub> root (hd0,0)          (义您的开机分区所在的地方)grub> setup (hd0)           (将 GRUB 安装到 MBR)grub> quit                  (离开 GRUB)
    Note: 如果您不打算将 GRUB 安装到 MBR 而是其它分区上,您将要小心的将 setup 指令指向正确的分区。举例来说,如果您要把 GRUB 安装到 /dev/hda3 , 那么您将需要用的的指令就会试 setup (hd0,2)。只有少数的使用者会这么做。
    虽然 GRUB 已安装完成,我们还需要为它编写一个设定档,如此一来 GRUB 将自动的开启到您新建立的系统核心。使用 nano (或是其它的编辑器)建立一个 /boot/grub/grub.conf档案:
    Code Listing 4: 建立 /boot/grub/grub.conf
    # nano -w /boot/grub/grub.conf
    现在我们将要开始编写grub.conf。您将会在下面找到两个按照我们的范例所使用的 grub.conf 设定档,使用的是核心 kernel-2.4.26-gentoo-r6。我们只会在第一个 grub.conf 内进行批注。请确认您的核心映像文件名称,如果需要,也请确认您的 initrd 映像档。
    ?        第一个 grub.conf 适用于没有使用 genkernel 编译核心的使 用者
    ?        第二个 grub.conf 适用于使用 genkernel 的使用者
    Code Listing 5: 未使用 genkernel 的 grub.conf
    # 将为开机预设。0为第一,1为第二,以此类推。default 0# 使用预设前等待的开机秒数。timeout 30# 将漂亮又肥大的 splash-image 启用:)# 如果您没有安装显示卡,请批注这行splashimage=(hd0,0)/grub/splash.xpm.gztitle=Gentoo Linux 2.4.26-r6# 储存核心文件的分区(或是操作系统)root (hd0,0)kernel /kernel-2.4.26-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3# 以下三行为 Windows 系统适合的双重开机。# 在我们的例子,Windows是放在 /dev/hda6title=Windows XProotnoverify (hd0,5)makeactivechainloader +1
    Code Listing 6: genkernel 使用者适用的 grub.conf
    default 0timeout 30splashimage=(hd0,0)/grub/splash.xpm.gztitle=Gentoo Linux 2.4.26-r6root (hd0,0)kernel /kernel-2.4.26-gentoo-r6 root=/dev/ram0 init=/linuxrc real_root=/dev/hda3initrd /initrd-2.4.26-gentoo-r6# 如果您想要双重系统开机的话title=Windows XProot (hd0,5)makeactivechainloader +1
    Note: 如果您使用不同的分割设定或是核心档案,请依个人的设定更改。但是请确认所有 GRUB 相关的装置(如(hd0,0))和挂载点有相连的,而非 root。换句话说, (hd0,0)/grub/splash.xpm.gz 实际上是放在 /boot/grub/splash.xpm.gz 因为 (hd0,0) 是 /boot。
    如果您需要自行输入任何参数给核心,只要将他们放在 kernel 的指令后面。我们已经传送了一个(root=/dev/hda3 或是 real_root=/dev/hda3),但是您也可以传送其它的指令。举例来说,我们使用 vga 来设定之前提过的 framebuffer:
    Code Listing 7: 将 vga 加入为核心参数
    title=Gentoo Linux 2.4.26-r6  root (hd0,0)  kernel /kernel-2.4.26-gentoo-r6 root=/dev/hda3 vga=788
    如果你使用 2.6.7 或更新的核心,而且你因为 BIOS 不能处理大容量的硬盘而调整了跳脚,你需要加入 hdx=stroke.
    genkernel 使用者应该要知道他们的新使用的和 LiveCD 一样。举例来说,如果您有 SCSI 装置,您应该在核心选项后面加入 doscsi。
    现在储存 grub.conf 档案然后离开。目前为止, GURB 已经被完善的设定,您将可以继续到 安装系统所需工具。
    如果您有更多关于 GRUB 的问题,请参考 GRUB FAQ 或是 GRUB 说明。      
    Debian linux 4.0

    TOP

    10.c. 其它选择: 使用 LILO
    安装 LILO
    LILO,LInuxLOader 是 Linux 开机程序中最稳定的一个。但是,它缺少一些 GRUB 所有的功能(这就是为什么 GRUB 越来越受欢迎)。原因是 LILO 目前只用在 GRUB 无法使用的系统上,GRUB 不能但是 LILO 能。当然,也是有熟悉 LILO 的使用者继续爱用着。不论那个, Gentoo 都支持,看到这边有代表着您有兴趣要安装 LILO。
    安装 LILO 很简单;只需要使用 emerge。
    Code Listing 8: 安装 LILO
    # emerge --usepkg lilo
    设定 LILO
    要设定 LILO,您一定要建立 /etc/lilo.conf。开启您最喜欢的编辑器(在手册内我们使用 nano 确保所有文件的一惯性)然后建立此档。
    Code Listing 9: 建立 /etc/lilo.conf
    # nano -w /etc/lilo.conf
    不久之前,我们已经请您记住您所建立的核心文件名称。以下的 lilo.conf 范例,我们将假设核心名称为 kernel-2.4.26-gentoo-r6。我们也使用范例内的分割设定为范例。共有两个部份:
    ?        一个适用于没有使用 genkernel 编译核心的使用者
    ?        另一个则是适用于使用 genkernel 编译核心的使用者
    请确任您的核心映像文件名称,如果需要,也确认您的 initrd 文件名称。
    Code Listing 10: /etc/lilo.conf 范例
    boot=/dev/hda             # 将 LILO 安装到 MBRprompt                    # 给予使用者选择系统的画面timeout=50                # 开启预设选项前等待五秒default=gentoo            # 当 timeout 所设定的时间超过时,自行开启 "gentoo"如果您没有使用 framebuffer,请移除以下这行:vga=788                   # Framebuffer 设定。 请自行调整。# 非 genkernel 使用者image=/boot/kernel-2.4.26-gentoo-r6  label=gentoo            # 这个部份的名称  read-only               # 以只读的方式开启 root  root=/dev/hda3          # 根(?)系统的位置# 使用 genkernel 的使用者image=/boot/kernel-2.4.26-gentoo-r6  label=gentoo  read-only  root=/dev/ram0  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3"  initrd=/boot/initrd-2.4.26-gentoo-r6# 以下两行只使用于多重开机到 Windows 系统。# 在我们的例子里,Windows 是放在 /dev/hda6.other=/dev/hda6  label=windows
    Note: 如果您使用不同的分割方式或是核心档案,请自行更改。
    如果您需要重送其它参数给核心,请加入 append 的语句。举例来说,我们将加入 vga=788 开启 framebuffer:
    Code Listing 11: 使用 append 加入核心参数
    image=/boot/kernel-2.4.26-gentoo-r6  label=gentoo  read-only  root=/dev/hda3  append="vga=788"
    如果你使用 2.6.7 或更新的核心,而且你因为 BIOS 不能处理大容量的硬盘而调整了跳脚,你需要加入 hdx=stroke.
    genkernel 使用者应该要知道他们的新使用的和 LiveCD 一样。举例来说,如果您有 SCSI 装置,您应该在核心选项后面加入 doscsi。
    现在储存档案然后离开。要完成动作,您需要执行 /sbin/lilo 放 LILO 可以套用 /etc/lilo.conf 到系统上(安装到磁盘上)。请注意,每次您安装新的核心时,您将需要再次执行 /sbin/lilo!
    Code Listing 12: 完成 LILO 安装
    # /sbin/lilo
    接下来请到 安装系统所需工具。
    11. 最终化您的 Gentoo 安装
    11.a. 使用者管理
    加入一个每天使用的使用者
    在 Unix/Linux 系统下登入成 root 工作是危险的,并应该尽量的避免。所以我们 强烈的建议您新增另一个使用者来应付日常的使用。
    例如,建立一个叫做 john 的使用者,他是 wheel (可以用 su 指令登入成 root)、users (预设给所有的使用者)、以及 audio 群组 ( 可以使用音效装置) 的一员,请先用root登入(只有root可以新增使用者):
    Code Listing 1: 加入一个每天使用的使用者
    Login: rootPassword: (您的root密码)# useradd john -m -G users,wheel,audio,tty -s /bin/bash# passwd johnPassword: (输入 john 使用者的密码)Re-enter password: (再次输入密码确认)
    如果这个使用者需要在 root 下执行一些任务,他们可以使用 su - 暂时取得 root 的权限。另一个方法则是使用 sudo 套件,若是正确的设置该套件,它将是非常安全的。
    11.b. 非必要:安装 GRP 套件
    Important: 这个部分是给 GRP 使用者。其它的使用者应该略过这个部分并继续阅读 该何去何从?.
    现在您的系统已经开机,登入一个您建立的使用者 (例如:john) 并使用 su - 来取得 root 权限:
    Code Listing 2: 取得 root 权限
    $ su -Password: (输入您的 root 密码)
    现在我们需要将 Portage 的预编套件搜寻设定到第二片光盘(Gentoo 套件(Packages)光盘)。首先挂载这张光盘:
    Code Listing 3: 挂载 Packages 光盘
    (将 Gentoo Packages 光盘放到光驱托盘)# mount /mnt/cdrom
    现在设定 Portage 使用 /mnt/cdrom 来使用预编套件:
    Code Listing 4: 设定 Portage 使用 /mnt/cdrom
    # ls /mnt/cdrom(如果有 /mnt/cdrom/packages 目录:)# export PKGDIR="/mnt/cdrom/packages"(没有的话:)# export PKGDIR="/mnt/cdrom"
    接下来,安装您要的套件。Packages 光盘包含了许多预先编译好的档案,如 KDE:
    Code Listing 5: 安装 KDE
    # emerge --usepkg kde
    请务必现在安装编译好的档案。当您使用 emerge sync 来更新 Portage (晚点将会学到) 时,那些编译好的档案可能不会兼容于在您已更新过的 Portage ebuilds。您可以试着用 emerge --usepkgonly 代替 emerge --usepkg 来回避这个问题。
    恭喜,您的系统现在已经装备完成!请继续阅读 该何去何从? 一文学习更多关于 Gentoo 的东西。
    12. 然后呢?
    12.a. 文件
    恭喜!您现在有一个可以运行的 Gentoo 系统了。但接下来该何去何从呢?您接下来有什么选择?该先探索什么?Gentoo 提供它的使用者许多的方向,因此,它提供了许多的特点并编写成文件。
    您应该先看一看 Gentoo Handbook 的下一章节名为 使用 Gentoo,它将会告诉您如果让您的软件保持在最新的状态、如果安装更多的软件、什么是 USE 参数、Gentoo Init 系统的运作方式等等。
    如果您有兴趣将您的系统最佳化成桌面使用,或着您想要学习如果设定您的系统至一个完整的桌面系统,请阅读 桌面设定指南。
    请翻阅我们的 文件资源 一页取得我们提供的完整的文件列表。
    12.b. Gentoo 线上
    我们永远欢迎您加入 Gentoo 讨论区 或是我们众多的 Gentoo IRC 频道
    我们也有一些对所有使用者公开的 邮寄列表。这页将会介绍如何加入的信息。
    我们闭嘴的时间到了,并让您享受您的安装过程
    B. 使用 Gentoo
    1. USE 参数
    1.a. 什么是 USE 参数?
    USE 关键词的想法
    当您在安装 Gentoo (或是其它版本,或是操作系统)您将需要依照环境而决定一些选择。要设定一台服务器和要设定一台工作站是不一样的。一个游戏工作站和一个需要 3D 立体加速的工作站也不同。
    这不只是您要选择安装什么套件,但是您也需要某些功能支持于某些套件。如果您不需要 OpenGL,那您为什么要自找麻烦安装然后编译 OpenGL 到您大多数的套件呢呢?如果您不想要使用 KDE,那为什么要多浪费时间编译那些可以不用 KDE 也可以完整的执行的套件内的 KDE 支持呢?
    为了要帮助使用者决定要安装/启用,我们需要使用者简单的了解他所使用的环境。这将强迫使用者决定他真的要什么,和了解 Portage 套件管理系统的方便性。
    一个 USE 参数的解释
    USE 参数就好象一个包含着相依性支持的关键词。如果您定义一个 USE 关键词,Portage 将会知道您需要那方面的支持。当然,这也会启用相关依赖的套件。
    让我们使用一个范例来讲解:kde 的关键词。如果您的 Use 变量没有这个,那所有选择性 的 KDE 支持将 不会 把 KDE 的支持编进去。所有拥有 选择性的 KDE 相依性套件将不会编入。如果您有将 kde 定义,那么所有的这些套件将会以满足相依性安装。
    请正确的定义您所需要的关键词。
    有那些 USE 关键词?
    USE 参数总共有分两种:全区性(Global) 和 区域性(Local)。
    ?        一个 全区性 的 USE 参数将被许多套件系统共享。这是一个大家所看到的 USE 参数。
    ?        一个 区域性 的 USE 参数将被单一的套件用来选择某些套件决定。
    您可以到我们的 现在清单 查看完整的 USE 变量清单或是计算机上的 /usr/portage/profiles/use.desc。以下为一个简短的列表:
    Code Listing 1: 简短的可用 USE 参数
    gtk     - Adds support for x11-libs/gtk+ (The GIMP Toolkit)gtk2    - Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both.gtkhtml - Adds support for gnome-extra/gtkhtmlguile   - Adds support for dev-util/guile (interpreter for Scheme)icc     - Use the Intel C++ Compiler if the package supports iticc-pgo - Enable PGO data generation or use when use icc.imap    - Adds support for IMAP      
    Debian linux 4.0

    TOP

    1.b. 使用 USE 参数
    定义永久的 USE 参数
    在我们希望您了解 USE 参数的重要性后,您现在需要定义您自己的 USE 参数了。
    就如之前所提到的,所有的 USE 参数都是定义到 USE 的变量内。为了要方便使用者可以搜寻和选择 USE 参数,我们已经提供了 预设的 USE 设定。这个设定包含着我们认为适合 Gentoo 使用者常用的。预设的变量是定义在 /etc/make.profile/make.defaults 档案。让我们来看看它吧:
    Code Listing 2: 预设的 /etc/make.profile/make.defaults 变量
    USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm  gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses  nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl  slang spell ssl svga tcpd truetype X xml2 xmms xv zlib"
    就您所见,这个变量已经包含着许多关键词了。请 不要 更改 /etc/make.profile/make.defaults 的档案。所有的 USE 内的关键词将会在每次您更新 Portage 的时候自动被改回预设的方式!
    要更改这个预设的设定,您需要在 USE 变量内做更改。您需要更改的是 /etc/make.conf 内的 USE 变量。在这个档案的变量内,您可以增加您需要的关键词或是移除不需要的关键词。您可以使用在关键词前面加上减号 ("-")。
    举例来说,要移除掉 KDE 和 QT 但是要支持 ldap,您将需要在 /etc/make.conf 内定义类似以下的的变量:
    Code Listing 3: /etc/make.conf 的范例 USE 设定
    USE="-kde -qt ldap"
    有时候你想对一个(或一组)套件使用一个 USE 设定,但是不希望影响到整个系统。为了达成这个,需要先建立 /etc/portage 目录(如果还没建立的话),然后编辑 /etc/portage/package.use。
    例如说,你不想要整个系统都有 berkdb 支持,但是你想要 mysql 支持,你可以加入:
    Code Listing 4: /etc/portage/package.use 范例
    dev-db/mysql berkdb
    你当然可以明确关闭某个程序的 USE 设定。例如说,你不想要 PHP 支持 java:
    Code Listing 5: /etc/portage/package.use 第二个范例
    dev-php/php -java
    定义暂时性的变量
    有时候您会想要定义暂时性的变量。或许只使用那么一次。这样一来您就可以不用编辑 /etc/make.conf 两次(先设定,编译完再复原)您可以直接将 USE 定义成环境变量。记得,当你重新安装或升级这个程序(不管是只升级他或是升级全系统),你的改变会遗失!
    以下的范例,我们将暂时从 USE 设定移除 java 来安装 mozilla。
    Note: 我们将在稍后的 Portage 和 软件 讨论更多关于 emerge 的指令。
    Code Listing 6: 使用 USE 为环境变量
    # USE="-java" emerge mozilla
    承接 USE 参数
    有些套件不止听取 USE 参数,但是也提供 USE 参数。当您要安装这种套件时,他们提供的 USE 参数会被加到您的 USE 设定内。要查看完整的提供 USE 参数的清单,查看 /etc/make.profile/use.defaults:
    Code Listing 7: 简短版本的 /etc/make.profile/use.defaults
    gnome           gnome-base/gnomegtk             x11-libs/gtk+qt              x11-libs/qtkde             kde-base/kdebasemotif           x11-libs/openmotif
    优先度
    当然我们有着各个设定的优先度。您不会因为只想看看 java 是否被定义而输入 USE="-java"。USE 设定的优先度将按照以下的排列(从低到高):
    1.        放在 /etc/make.profile/make.defaults 预设的 USE 设定
    2.        /etc/make.profile/use.defaults 承接的 USE 设定
    3.        使用者在 /etc/make.conf 定义的 USE 设定
    4.        使用者在 /etc/portage/package.use 定义的 USE 设定
    5.        以环境变量的方式定义的 USE 设定变量
    要查看最后的 USE 设定,执行 emerge info。这将会看到所有相关的变量(包括 USE 变量)和 Portage 需要使用到的内容。
    Code Listing 8: 执行 emerge info
    # emerge info
    让您的系统适应新的 USE 旗标
    如果您有更改您的 USE 旗标,并且想将整个系统都套用新的设定,您将需要按照以下步骤完成此像动作。但是请注意,此项动作非常消耗时间。但是是全自动的由 Portage 处理。
    首先,重新编译您的系统:
    Code Listing 9: 重新编译您的系统
    # emerge --emptytree world
    接下来,执行 Portage 的 depclean 移除就系统上不需要的旧相依性套件。
    Warning: 执行 emerge depclean 是一件非常危险的动作,请小心执行。请仔细确认列出来的套件没有包含着您锁需要的套件。以下的范例我们将加入 -p 的参数来显示出将要被移除的列表清单。
    Code Listing 10: 移除不需要的套件
    # emerge -p depclean
    当 depclean 的动作完成后,您的系统就已经完好地套用新的 USE 旗标了。
    1.c. 套件相关 USE 设定
    查看可用的 USE 设定
    在下个部份,Portage 和 软件 内,我们将解释如何使用 emerge 管理已经安装过的软件但是,我们会以以下范例给您一个使用 emerge 查看那些套件需要用到的那些 USE 关键词。
    让我们使用 mozilla 的范例:它听取着什么 USE 关键词?要查看,我们将使用 emerge 加上 --pretend (只是假装,不会安装)和 --verbose(更仔细的列出)关键词:
    Code Listing 11: 查看 USE 关键词
    # emerge --pretend --verbose mozillaThese are the packages that I would merge, in order:Calculating dependencies ...done![ebuild  N    ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap +gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail-moznocompose -moznoxft
    除了emerge 以外还有别的软件可以完成类似查询的工作。事实上,我们有一个特别的套件叫做 etcat。这是包含在 gentoolkit 的套件内。首先,安装 gentoolkit:
    Code Listing 12: 安装 gentoolkit
    # emerge --usepkg gentoolkit
    现在执行 etcat 然后使用参数查看某个套件的 USE 关键词。举例来说 gnumeric 套件:
    Code Listing 13: Using etcat to view used USE-flags使用 etcat 查看使用的 USE 关键词
    # etcat uses gnumeric[ Colour Code : set unset ][ Legend      : (U) Col 1 - Current USE flags        ][             : (I) Col 2 - Installed With USE flags ] U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ] - - libgda  : Adds GNU Data Access (CORBA wrapper) support for gnumeric - - gnomedb : unknown + + python  : Adds support/bindings for the Python language + + bonobo  : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
    2. Portage 和软件
    2.a. 索取套件信息
    所有工具之王:emerge
    大多数的使用者将会用的最主要的 Portage 工具,也就是 emerge。我们在安装时已经使用过了,但是我们只是简单的介绍。这章将会更加详细的解释 emerge 然后教您使用 emerge 修理所有相关的软件需求。
    emerge 是一个用来安装,移除,查询,和维护软件套件的指令。他是一个 ebuild 的使用接口;有兴趣成为 Gentoo 高手的人将需要了解稍后介绍的 ebuild。现在,我们将专心的讨论 ebuild 没有的 emerge 功能(如解决相依性和搜寻 Portage Tree,等等。)。
    emerge 是一个对于 Gentoo 使用者来说最为重要的工具,您可以执行 man emerge 查看它包含的详细说明。您也可以在文字接口执行 emerge --help 查看。文件
    Code Listing 1: 索取 emerge 的说明
    # man emerge# emerge --help
    Portage Tree
    在我们继续介绍 emerge 之前,让我们先看看 Portage Tree。到 /usr/portage 的目录,您将会看到一清单的目录。我们将使用 ls -classify 来显示出目录的内容并且在目录后面会加上 "/"。
    Code Listing 2: 观看 Portage Tree
    # cd /usr/portage; ls --classifyapp-admin/       dev-ml/            gnome-libs/     net-print/app-arch/        dev-perl/          gnome-office/   net-wireless/app-benchmarks/  dev-php/           header.txt      net-www/app-cdr/         dev-python/        incoming/       net-zope/app-crypt/       dev-ruby/          jython/         packages/app-dicts/       dev-tcltk/         kde-apps/       profiles/app-doc/         dev-tex/           kde-base/       releases/app-editors/     dev-util/          kde-i18n/       scripts/app-emacs/       distfiles/         kde-libs/       sec-policy/app-emulation/   eclass/            licenses/       skel.ChangeLogapp-games/       experimental/      media-fonts/    skel.ebuildapp-gnustep/     files/             media-gfx/      skel.metadata.xmlapp-i18n/        fresco-base/       media-libs/     snapshots/app-misc/        games-action/      media-plugins/  sys-apps/app-office/      games-arcade/      media-radio/    sys-build/app-pda/         games-board/       media-sound/    sys-cluster/app-portage/     games-emulation/   media-tv/       sys-devel/app-sci/         games-engines/     media-video/    sys-fs/app-shells/      games-fps/         metadata/       sys-kernel/app-text/        games-kids/        net-analyzer/   sys-kmods/app-vim/         games-misc/        net-apache/     sys-libs/app-xemacs/      games-mud/         net-dialup/     unix2tcp/berlin-base/     games-puzzle/      net-dns/        x11-base/dev-ada/         games-roguelike/   net-firewall/   x11-libs/dev-cpp/         games-rpg/         net-fs/         x11-misc/dev-db/          games-server/      net-ftp/        x11-plugins/dev-dotnet/      games-simulation/  net-im/         x11-terms/dev-embedded/    games-sports/      net-irc/        x11-themes/dev-games/       games-strategy/    net-libs/       x11-wm/dev-haskell/     games-util/        net-mail/       xfce-base/dev-java/        glep/              net-misc/       xfce-extra/dev-lang/        gnome-apps/        net-nds/dev-libs/        gnome-base/        net-news/dev-lisp/        gnome-extra/       net-p2p/
    就如您所见,Portage tree 有多个子目录。大多数的目录都是 Gentoo 套件的 类别,放着叫做 ebuild 的档案。举例来说,看看 app-office:
    Code Listing 3: 查看一个类别
    # cd app-office; ls --classifyabiword/     gnotime/   kmymoney2/  ooodi/              plan/     timestamp.xdia/         gnucash/   koffice/    oooqs/              qhacc/dia2code/    gnumeric/  lxbank/     openoffice/         sc/facturalux/  ical/      lyx/        openoffice-bin/     scribus/gaby/        kbudget/   mdbtools/   openoffice-ximian/  siag/gnofin/      khacc/     mrproject/  phprojekt/          texmacs/
    在这个类别内,您将可以找到所有适合放在这个目录内的套件,其中各软件将以子目录的方式分开。让我们看看 openoffice 套件:
    Code Listing 4: 观看一个套件
    # cd openoffice; ls --classifyChangeLog  files/        openoffice-1.0.3-r1.ebuild  openoffice-1.1.0-r2.ebuildManifest   metadata.xml  openoffice-1.1.0-r1.ebuild  openoffice-1.1.0.ebuild
    还记得我们跟您说过一个 Gentoo 的套件是叫做 ebuild 吗?在我们的范例目录里将会看到四个 ebuild。他们的名字都是很明显:他们不同的只是版本。您将可以查看这些套件:它们只是程序。因为现在我们只讨论如何使用 Gentoo 所以我们不会讨论这些程序。
    其它的档案为 ChangeLog(一个包含某个套件的更新清单), Manifest (包含着 checksum 和目录里面所有档案的大小) 和 metadata.xml ( 包含着更多关于套件的信息,如相关开发的团队 -- 叫做 herd -- 其更多的介绍)。
    在 files 的目录,您将会找到其它档案,这些为 Portage 所需要的: digest(checksum 和个别套件的版本需要),补钉,和范例设定文件,等等。
    Code Listing 5: 观看其它档案
    # cd files; ls --classify1.0.3/  digest-openoffice-1.0.3-r1  digest-openoffice-1.1.0-r11.1.0/  digest-openoffice-1.1.0     digest-openoffice-1.1.0-r2# cd 1.1.0; ls --classifyfixed-gcc.patch      ooffice-wrapper-1.3newstlportfix.patch  openoffice-1.1.0-linux-2.6-fix.patchno-mozab.patch       openoffice-1.1.0-sparc64-fix.patchnptl.patch
    如果您回到 Portage tree 的主目录(/usr/portage)您将会发现还有其它非套件的目录。我们将在稍后解释这点。
    搜寻套件
    如果您刚接触到 Gentoo 或是 Linux,您或许不知道该用什么工具完成什么工作。要搜寻软件,emerge 可以透过 套件名称 或是 套件名称 加上 说明 来进行套件的搜寻。
    要以名称搜寻 Portage tree,使用 emerge searc。举例来说,要搜寻 mozilla:
    Code Listing 6: 显示关于 mozilla 的信息
    # emerge search mozillaSearching...   [ Results for search key : mozilla ][ Applications found : 5 ](为了方便阅读,移除了一些部份)*  net-www/mozilla      Latest version available: 1.5-r1      Latest version installed: 1.4-r3      Size of downloaded files: 29,153 kB      Homepage:    http://www.mozilla.org      Description: The Mozilla Web Browser*  net-www/mozilla-firebird      Latest version available: 0.7      Latest version installed: [ Not Installed ]      Size of downloaded files: 37,850 kB      Homepage:    http://www.mozilla.org/projects/firebird/      Description: The Mozilla Firebird Web Browser(╈)
    如果您要依照介绍搜寻使用 --searchdesc 参数:
    Code Listing 7: 搜寻介绍
    # emerge --searchdesc mozillaSearching...   [ Results for search key : mozilla ][ Applications found : 10 ](为了方便阅读,移除了一些部份)*  dev-libs/nss-3.8      Latest version available: 3.8      Latest version installed: 3.8      Size of downloaded files:  2,782 kB      Homepage:    http://www.mozilla.org/projects/security/pki/nss/      Description: Mozilla's Netscape Security Services Library that implements PKI support
    就如您所见,emerge 将会显示出该类别和套件的名称,可使用的版本,目前安装的版本,下载档案大小,网址和简介。
    发现新东西了吗?没错,下载档案。当您告诉 Portage 要安装一个套件,当然需要下载原始码(或是已编译套件)。他将会先检查 /usr/portage/distfiles (原始码)是否有已存在的档案 或是 /usr/portage/packages/All (已编译的套件)可用。如果没有,它将会下载所有的相关档案然后放入相关目录。      
    Debian linux 4.0

    TOP

    发新话题