|
1.
Chroot
拷贝DNS信息
在我们进入新环境之前,还有一件事需要完成,那就是从/etc/resolv.conf拷贝DNS信息。这一步可以保证你在进入新的系统环境后还可以继续使用网络。/etc/resolv.conf包含了你网络里的域名服务器。
代码 1.1: 拷贝DNS信息 |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
|
挂载/proc和/dev文件系统
将/proc文件系统挂载到/mnt/gentoo/proc,这样chroot后的环境里安装时也可以获取内核提供的相关信息,然后以bind方式挂载/dev文件系统。
代码 1.1: 挂载/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.1: chroot到新环境里 |
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"
|
祝贺你!你现在已经在你自己的Gentoo Linux环境里了。当然这离安装完成还有段时间,因为我们可以看到安装指南还剩下很多章节呢 :-)
1.
配置Portage
更新Portage树
你现在应该更新你的Portage树到最新版本。执行emerge --sync。
代码 1.1: 更新Portage树 |
# emerge --sync
# emerge --sync --quiet
|
如果你网络前面的防火墙的配置使得rsync请求被阻挡的话,你可以使用emerge-webrsync下载和安装一个最新的portage快照。
如果系统警告你有一个新版本的Portage可用,你可以使用emerge --oneshot portage来更新它。
选择正确的Profile
首先,我们看一下一些小的定义。
profile是每个Gentoo系统的构造块。它不仅指定了CHOST、CFLAGS以及其他重要变量的默认值,它还把系统可用的软件版本锁定在某个范围。而这些都是由Gentoo的开发者来维护的。
以前,这个profile很少会有用户接触到。然而,有些情况下你可以决定需不需要修改profile。
从2006.0开始,MIPS系统的profile经历了一次重新洗牌。这些profile设定了很多不同的选项包括USE标记,它能影响到很多不同的系统中的关键包(特别是,gcc和mips-sources)会启用哪些补丁集。
所以,必须要很小心的确保为你的系统类型选择了正确的profile。Gentoo/MIPS 2007.0包含的profile有:
| 系统 |
Profile |
Userland |
状态/备注 |
| Cobalt Qube/RaQ |
default-linux/mips/2007.0/cobalt/o32 |
32位Linuxthreads |
推荐 |
| " |
default-linux/mips/2007.0/cobalt/o32/nptl |
32位NPTL |
正在测试 (1) |
| |
|
|
|
一般的big endian
包括SGI Indy, Indigo2 (R4x00), Challenge S and O2
|
default-linux/mips/2007.0/generic-be/o32 |
32位Linuxthreads |
推荐 |
| " |
default-linux/mips/2007.0/generic-be/o32/nptl |
32位NPTL |
正在测试 (1) |
| " |
default-linux/mips/2007.0/generic-be/n32 |
N32 Linuxthreads |
高度实验性质 (2) |
| " |
default-linux/mips/2007.0/generic-be/n32/nptl |
N32 NPTL |
高度实验性质 (1) (2) |
| " |
default-linux/mips/2007.0/generic-be/n64 |
N64 Linuxthreads |
不支持 (3) |
| " |
default-linux/mips/2007.0/generic-be/n64/nptl |
N64 NPTL |
不支持 (1) (3) |
| |
|
|
|
| SGI Origin 200/2000 |
default-linux/mips/2007.0/ip27/o32 |
32位Linuxthreads |
推荐 |
| " |
default-linux/mips/2007.0/ip27/o32/nptl |
32位NPTL |
正在测试 (1) |
| " |
default-linux/mips/2007.0/ip27/n32 |
N32 Linuxthreads |
高度实验性质 (2) |
| " |
default-linux/mips/2007.0/ip27/n32/nptl |
N32 NPTL |
高度实验性质 (1) (2) |
| |
|
|
|
| SGI Indigo2 Impact R10000 |
default-linux/mips/2007.0/ip28/o32 |
32位Linuxthreads |
推荐 |
| " |
default-linux/mips/2007.0/ip28/o32/nptl |
32位NPTL |
正在测试 (1) |
| " |
default-linux/mips/2007.0/ip28/n32 |
N32 Linuxthreads |
高度实验性质 (2) |
| " |
default-linux/mips/2007.0/ip28/n32/nptl |
N32 NPTL |
高度实验性质 (1) (2) |
| |
|
|
|
| SGI Octane/Octane2 |
default-linux/mips/2007.0/ip30/o32 |
32位Linuxthreads |
推荐 |
| " |
default-linux/mips/2007.0/ip30/o32/nptl |
32位NPTL |
正在测试 (1) |
| " |
default-linux/mips/2007.0/ip30/n32 |
N32 Linuxthreads |
高度实验性质 (2) |
| " |
default-linux/mips/2007.0/ip30/n32/nptl |
N32 NPTL |
高度实验性质 (1) (2) |
重要:
(1) MIPS里的NPTL目前正在测试中,需要gcc-4.1和glibc-2.4。一般认为NPTL已经足够安全可供人们使用了,以后的版本中它将成为默认设定。欢迎勇敢的用户测试这些profile,并报告使用结果。
|
警告:
(2) n32 Userland是高度实验性的,很多软件使用这个ABI都有问题,所以目前可以保证你会遇到稳定性问题。目前有人正致力于改进目前的状况,如果你使用这个profile将不会获得任何支持,除非你愿意提交补丁来帮助解决存在的问题。
|
警告:
(3) n64 Userland目前在所有的系统上都不获支持。现在没有stage支持n64,不远的将来这种情况也不会改变。
|
你可以用下面的命令来查看当前使用的profile:
代码 1.1: 验证系统profile |
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/${profile}
|
看完了上面的profile,决定了哪个最合适,你需要调整你的make.profile符号链接。默认的,profile在/usr/portage/profiles里,所以如果你把portage树移到了别处(不推荐这样做),就要适当的调整下面的命令。
代码 1.1: 设定系统profile |
# rm -f /etc/make.profile
# ln -s /usr/portage/profiles/default-linux/mips/2007.0/generic-be/o32
|
注意:
对不熟悉Bash的人的一个小提示……如果你打了一个文件名或者命令的一部分,然后按TAB键,bash会自动填充命令/文件名直到最后一个相同的字符。比如,键入/usr/portage/profiles/def<TAB>,bash会自动输入default-。再按TAB几次,将会显示几种可能的填充,default-linux、default-darwin和default-bsd。试一试,你会发现这个功能在命令行浏览时很有用。
|
配置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。
代码 1.1: 查看可用的USE标记 |
# less /usr/portage/profiles/use.desc
|
作为一个例子,我们展示一个基于KDE的系统并带有DVD、ALSA以及光盘刻录支持 的USE设置:
代码 1.1: 打开/etc/make.conf |
# nano -w /etc/make.conf
|
代码 1.1: USE设置 |
USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"
|
可选:glibc Locales
在你的系统里可能只会用到一个或两个locale。你可用/etc/locale.gen来指定locale。
代码 1.1: 打开/etc/locale.gen |
# nano -w /etc/locale.gen
|
下面这个例子中的locale同时支持英语(美国)和德语(德国)并带有字符集格式(比如UTF-8)的支持。
代码 1.1: 指定你的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。
现在我们继续(配置内核)。
|