1.
介绍
本指南包含了完成一次从stage3开始安装Gentoo要用到的所有命令。你需要连接到Internet以下载stage3包和Portage快照。
重要:
新手应当阅读,其中有关于安装过程更完整的描述。这篇快速安装指南是为那些只需要遵循一个核对清单的有经验用户设计的。
|
所有费时超过两秒的命令都会跟随着在屏幕上打印时间输出。这些命令的耗时是在一台AMD 2000 1.66Ghz的PC上测试的,拥有512MB内存和两个SATA硬盘。
代码 1.1: 测试机器的规格 |
# grep bogo /proc/cpuinfo bogomips : 3337.81
# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 1100 MB in 2.00 seconds = 549.97 MB/sec Timing buffered disk reads: 224 MB in 3.01 seconds = 74.36 MB/sec
# grep MemTotal /proc/meminfo MemTotal: 509248 kB
|
2.
快速安装指南
从我们的下载一张光盘。可以在releases/x86/current-iso/中找到最小光盘的ISO文件。最小安装光盘只适用于有网络环境的安装。本指南将使用最小光盘。
光盘,用它引导机器。
启动时按下F2查看有哪些引导选项。你可以启动gentoo或者gentoo-nofb,后者禁用帧缓冲。如果你用LiveCD引导,别忘了添上nox选项以防止启动X图形环境。有好几个选项可用于启用或禁用一些特性。正常情况下会检测出你的硬件并装载所有模块。如果内核无法正确引导或是在引导过程中挂机,你可能不得不尝试不同的配置。最安全的办法大概是使用nodetect选项,然后显式地载入需要的模块。
代码 2.1: 引导最小光盘 |
Gentoo Linux Installation LiveCD Enter to Boot; F1 for kernels F2 for options. boot: gentoo-nofb
boot: gentoo-nofb nodetect
|
如果使用了nodetect选项,就要在启动后载入必要的模块。你还要配置好网络并拥有访问磁盘的权限。lspci命令能帮助你确认硬件信息。
代码 2.2: 载入必要的模块 |
livecd root # lspci
livecd root # modprobe 3w-9xxx livecd root # modprobe r8169
|
如果还没开启网络,可以用net-setup来配置网络。配置之前可能要先用modprobe为网卡载入支持模块。如果你有ADSL,请使用pppoe-setup和pppoe-start。要支持PPTP,首先编辑/etc/ppp/chap-secrets和/etc/ppp/options.pptp,然后使用pptp 。
如果是无线连接,用iwconfig设置无线连接参数,然后再次执行net-setup或者手动运行ifconfig、dhcpcd和/或route。
如果你用代理,不要忘了使用export http_proxy、ftp_proxy和RSYNC_PROXY初始化系统环境。
代码 2.3: 通过向导配置网络 |
livecd root # net-setup eth0
|
或者,你也可以手动打开网络。下面的例子把你电脑的IP地址配置为192.168.1.10,并把网关和域名服务器设为192.168.1.1。
代码 2.4: 手动配置网络 |
livecd root # ifconfig eth0 192.168.1.10/24 livecd root # route add default gw 192.168.1.1 livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf
|
安装盘允许你启动一个sshd服务,添加用户,运行irssi(一个命令行的客户端聊天工具),还可以使用links进行网上冲浪。
最有趣的功能当然是sshd。启动这个服务,从另一台机器连过来,然后从本指南复制/粘贴命令。
代码 2.5: 启动sshd |
livecd root # time /etc/init.d/sshd start * Generating hostkey ...
* starting sshd ... [ok]
real 0m13.688s user 0m9.420s sys 0m0.090s
|
现在设置一下安装盘的root密码,使你能通过另一台电脑连接。请注意正常情况下不推荐你允许root通过ssh连接。如果你的本地网络不太可靠,请设一个又长又复杂的密码。它只能使用一次,因为机器重启后就没掉了。
代码 2.6: 设置root密码 |
livecd root # passwd New UNIX password: Retype new UNIX password: passwd: password updated successfully
|
现在就可以在另一台电脑上打开一个终端并连接到你的新机器,在新的窗口中继续本指南接下去的内容,复制/粘贴文中的命令。
代码 2.7: 从另一台电脑连到你的新机器 |
$ ssh root@192.168.1.10 The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts. Password:
|
使用fdisk或者cfdisk创建分区规划。至少需要一个交换分区(类别为82)和一个Linux分区(类别为83)。下面是我们的手册选用的方案,创建包括一个/boot分区,一个交换分区和一个主分区。将/dev/sda替换为你自己的磁盘。大多数系统忽略启动标志,但有的系统需要它。使用fdisk的a命令在启动分区上设置这个标志。
代码 2.8: 创建分区 |
livecd ~ # fdisk /dev/sda
livecd ~ # fdisk -l /dev/sda
Disk /dev/sda: 599.9 GB, 599978409984 bytes 255 heads, 63 sectors/track, 72943 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 12 96358+ 83 Linux /dev/sda2 13 110 787185 82 Linux swap / Solaris /dev/sda3 111 72943 585031072+ 83 Linux
|
使用mke2fs,mke2fs -j,mkreiserfs,mkfs.xfs和mkfs.jfs建立Linux分区的文件系统。使用mkswap和swapon初始化交换分区。
代码 2.9: 创建文件系统并激活交换分区 |
livecd ~ # mke2fs /dev/sda1
livecd ~ # mke2fs -j /dev/sda3
livecd ~ # mkswap /dev/sda2 && swapon /dev/sda2
|
把新建的文件系统挂载到/mnt/gentoo。如果需要其他挂载点(如/mnt/gentoo/boot),也要为它们创建目录并挂载好。
代码 2.10: 挂载文件系统 |
livecd ~ # mount /dev/sda3 /mnt/gentoo livecd ~ # mkdir /mnt/gentoo/boot livecd ~ # mount /dev/sda1 /mnt/gentoo/boot livecd ~ # cd /mnt/gentoo
|
首先确保正确设置了日期和时间。执行date MMDDhhmmYYYY,使用UTC时间。
代码 2.11: 设定日期和UTC时间 |
livecd gentoo # date Mon Mar 6 00:14:13 UTC 2006
livecd gentoo # date 030600162006 Mon Mar 6 00:16:00 UTC 2006
|
接下来,从我们的下载一份stage包:
代码 2.12: 下载一份stage3压缩包 |
livecd gentoo # links /main/en/mirrors.xml
livecd gentoo # wget ftp://distfiles.gentoo.org/pub/gentoo/releases/x86/current-stage3/stage3-i686-*.tar.bz2
|
进入/mnt/gentoo,执行tar xjpf 解压stage包。
代码 2.13: 解开stage3压缩包 |
livecd gentoo # time tar xjpf stage3*
real 1m14.157s user 1m2.920s sys 0m7.530s
|
安装最新的Portage快照。跟下载stage3压缩包一样:从我们的选择一个最近的镜像,下载最新的快照并解压。
代码 2.14: 下载最新的Portage快照 |
livecd gentoo # cd /mnt/gentoo/usr livecd usr # links /main/en/mirrors.xml
livecd gentoo # cd /mnt/gentoo/usr livecd usr # wget
|
代码 2.15: 解开Portage快照 |
livecd usr # time tar xjf portage-lat*
real 0m40.523s user 0m28.280s sys 0m8.240s
|
挂载/proc & /dev文件系统,拷贝/etc/resolv.conf文件,然后chroot到你的Gentoo环境。
代码 2.16: Chroot |
livecd usr # cd / livecd / # mount -t proc proc /mnt/gentoo/proc livecd / # mount -o bind /dev /mnt/gentoo/dev livecd / # cp -L /etc/resolv.conf /mnt/gentoo/etc/ livecd / # chroot /mnt/gentoo /bin/bash livecd / # env-update && source /etc/profile >>> Regenerating /etc/ld.so.cache...
|
设置你的时区信息:使用/usr/share/zoneinfo中的正确条目。
代码 2.17: 设置时区 |
livecd / # ls /usr/share/zoneinfo
livecd / # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime livecd / # date Thu Aug 30 11:03:16 CST 2007
|
在/etc/conf.d/hostname和/etc/hosts中设置主机名。以下例子中我们用mybox作为主机名,用at.myplace作为域名。可以用nano编辑这些配置文件,或者使用下面的命令:
代码 2.18: 设置主机名和域名 |
livecd / # cd /etc livecd etc # echo "127.0.0.1 mybox.at.myplace mybox localhost" > hosts livecd etc # sed -i -e 's/HOSTNAME.*/HOSTNAME="mybox"/' conf.d/hostname
livecd etc # hostname mybox livecd etc # hostname -f mybox.at.myplace
|
安装一个内核源码包(通常为gentoo-sources),配置、编译并拷贝arch/i386/boot/bzImage文件到/boot。
代码 2.19: 安装内核源码包,编译和安装内核 |
livecd etc # time emerge gentoo-sources
real 2m51.435s user 0m58.220s sys 0m29.890s livecd etc # cd /usr/src/linux livecd linux # make menuconfig
livecd linux # time make -j2
real 3m51.962s user 3m27.060s sys 0m24.310s
livecd linux # make modules_install livecd linux # cp arch/i386/boot/bzImage /boot/kernel
|
编辑/etc/fstab,用实际的分区名代替BOOT、ROOT和SWAP。记得确认一下文件系统是否与所安装的相匹配。
代码 2.20: fstab范例 |
livecd linux # cd /etc livecd etc # nano -w fstab /dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/sda3 / ext3 noatime 0 1 /dev/sda2 none swap sw 0 0
|
在/etc/conf.d/net中配置网络。把net.eth0启动脚本添加到默认运行级别。如果有多张网卡,分别为它们建立符号链接到net.eth0启动脚本,并一起添加到默认运行级别。用nano编辑/etc/conf.d/net,或者使用如下命令:
代码 2.21: 配置网络 |
livecd etc # cd conf.d livecd conf.d # echo 'config_eth0=( "192.168.1.10/24" )' >> net livecd conf.d # echo 'routes_eth0=( "default via 192.168.1.1" )' >> net livecd conf.d # rc-update add net.eth0 default
livecd conf.d # echo r8169 >> /etc/modules.autoload.d/kernel-2.6
livecd conf.d # rc-update add sshd default
|
注意:
如果需要支持PCMCIA卡,请emerge pcmciautils。
|
执行passwd设置root密码。
代码 2.22: 设置root密码 |
livecd conf.d # passwd New UNIX password: Retype new UNIX password: passwd: password updated successfully
|
编辑/etc/conf.d/clock以定义前面所使用的时区。
代码 2.23: 编辑/etc/conf.d/clock |
livecd conf.d # nano -w /etc/conf.d/clock TIMEZONE="Asia/Shanghai"
|
检查系统配置,查看并编辑这些配置文件:/etc/rc.conf, /etc/conf.d/rc,/etc/conf.d/keymaps。
代码 2.24: 可选:编辑一些配置文件 |
livecd conf.d # nano -w /etc/rc.conf livecd conf.d # nano -w /etc/conf.d/rc livecd conf.d # nano -w /etc/conf.d/keymaps
|
安装一个系统日志如syslog-ng和一个cron守护进程如vixie-cron,并把它们添加到默认运行级别。
注意:
Cron守护进程依赖于MTA。mail-mta/ssmtp会因依赖性而被一起安装。如果你想使用一种更高级的MTA,可以现在安装它。要是现在没空,暂时先安装ssmtp,以后再卸载并安装你要的MTA。
|
代码 2.25: 安装系统日志和cron守护进程 |
livecd conf.d # time emerge syslog-ng vixie-cron
real 1m54.099s user 1m2.630s sys 0m34.620s livecd conf.d # rc-update add syslog-ng default livecd conf.d # rc-update add vixie-cron default
|
安装必要的文件系统工具(xfsprogs,reiserfsprogs或jfsutils)和网络工具(dhcpcd或ppp)。
代码 2.26: 安装其它工具 |
livecd conf.d # emerge xfsprogs livecd conf.d # emerge jfsutils livecd conf.d # emerge reiserfsprogs livecd conf.d # emerge dhcpcd livecd conf.d # emerge ppp
|
安装并配置grub。
代码 2.27: Emerge grub并编辑它的配置文件 |
livecd conf.d # time emerge grub
real 1m4.634s user 0m39.460s sys 0m15.280s livecd conf.d # nano -w /boot/grub/grub.conf
|
代码 2.28: grub.conf范例 |
default 0 timeout 10
title Gentoo root (hd0,0) kernel /boot/kernel root=/dev/sda3
|
代码 2.29: 安装grub |
livecd conf.d # grub Probing devices to guess BIOS drives. This may take a long time.
grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/ grub/menu.lst"... succeeded Done.
grub> quit
|
退出chroot环境,卸载所有文件系统并重启:
代码 2.30: 重启 |
livecd conf.d # exit livecd / # umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo livecd / # reboot
|
注意:
在我们这台测试机器上,从minimal CD启动显示boot提示符开始,到重启后显示登录提示符, 总用时为00:42:31 。没错,不到一个小时!注意这个时间还包含了stage3包、Portage快照和一些软件包的下载时间,以及配置内核所花的时间。
|
以root身份登录,用useradd添加一个或多个用户,作为日常使用。
代码 2.31: 从另一台电脑连到你的新机器 |
$ nano -w ~/.ssh/known_hosts
$ ssh root@192.168.1.10 The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts. Password:
|
代码 2.32: 添加一个新用户 |
mybox ~ # adduser -g users -G lp,wheel,audio,cdrom,portage,cron -m john mybox ~ # passwd john New UNIX password: Retype new UNIX password: passwd: password updated successfully
|
开始选择最近的镜像,在/etc/make.conf中定义SYNC变量和GENTOO_MIRRORS变量,或者也可以使用mirrorselect。此时你还可以定义并行编译的进程数。
代码 2.33: 使用mirrorselect并设置MAKEOPTS |
mybox ~ # emerge mirrorselect mybox ~ # mirrorselect -i -o >> /etc/make.conf mybox ~ # mirrorselect -i -r -o >> /etc/make.conf
mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf
|
现在是启用或禁用一些USE标记的好时机。运行emerge -vpe world,列出所有当前已安装的软件包以及它们被启用和禁用的USE标记。编辑/etc/make.conf或使用下列命令定义USE变量:
代码 2.34: 查看当前使用的USE标记并启用或禁用一些 |
mybox ~ # emerge -vpe world
mybox ~ # echo 'USE="nptl nptlonly -ipv6 -fortran unicode"' >> /etc/make.conf
|
新版本的glibc使用/etc/locale.gen来定义语言环境。
代码 2.35: 定义语言环境 |
mybox ~ # cd /etc mybox etc # nano -w locale.gen mybox etc # locale-gen
|
最后但并非最轻松的,你可能想修改/etc/make.conf中的CFLAGS变量来优化编码,以满足你的特定需要。请注意极少需要一长串的标记列表,那样甚至可能导致系统崩溃。建议通过march选项指定处理器类型并赋上-O2 -pipe。
可能你还想转到 ~x86。只有当你能够对付那些脆弱不良的ebuild和软件包时才能这么做。如果你倾向于保持系统的稳定性,请不要添加ACCEPT_KEYWORDS变量。添加FEATURES="ccache"却是个好主意。
代码 2.36: 为make.conf作最后的修改 |
mybox etc # nano -w make.conf
CFLAGS="-O2 -march=athlon-xp -pipe"
FEATURES="ccache"
ACCEPT_KEYWORDS="~x86"
|
可能你会想重编译整个系统两次,以使你所作的最新配置完全生效。这要花很长的时间来完成,而只能得到微小的速度提升。你可以让系统自己随着以后新软件包的发布而逐步完成优化。不过,站在保持系统一致性的立场来看,重编译仍不失为一个好主意。请参考文档,其中讨论了如何搭建一个具有良好一致性的system和world,以及这样做的好处。
只重编译那些因你应用了新的USE标记或受此影响而需要升级的软件包,也要花费不少时间。可能还必须卸载会阻止你升级的软件包。在emerge -vpuD --newuse world的输出中寻找“[blocks B ]”,用emerge -C卸载它们。
代码 2.37: 升级软件包 |
mybox etc # emerge ccache
mybox etc # emerge -vpuD --newuse world
mybox etc # time emerge -vuD --newuse world
real 180m13.276s user 121m22.905s sys 36m31.472s
mybox etc # emerge --oneshot libtool
mybox etc # dispatch-conf
mybox etc # time perl-cleaner all real 1m6.495s user 0m42.699s sys 0m10.641s
mybox etc # python-updater
|
想安装服务器应用程序还是一个桌面系统,取决于你打算让你的新Gentoo做什么。以下仅作为一个例子,统计了emerge gnome和emerge kde在~x86系统(按之前的描述安装的)上所花费的时间。两者是在同一起点开始安装的。
去看看我们的,研究一下如何安装和配置你挑选的软件。
重要:
以下只是举个例子,并不意味着就作为推荐设置。
|
代码 2.38: Emerge GNOME |
mybox etc # emerge -vp gnome
mybox etc # nano -w /etc/make.conf
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \ -kde -qt4 -arts -eds -esd gnome gstreamer gtk firefox"
mybox etc # time emerge gnome
real 520m44.532s user 339m21.144s sys 146m22.337s
|
代码 2.39: Emerge KDE |
mybox etc # emerge -vp kde-meta
mybox etc # nano -w /etc/make.conf
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \ kde qt4 -arts -eds -esd -gnome -gstreamer -gtk -firefox"
mybox etc # time emerge kde-meta
real 1171m25.318s user 851m26.393s sys 281m45.629s
|
阅读(879) | 评论(0) | 转发(0) |