原文出自 http://www.bitunion.org/viewthread.php?tid=410106

作者: 小J

更多请参阅:

Gentoo: http://www.gentoo.org/

Gentoo Handbook: http://www.gentoo.org/doc/en/handbook/index.xml


Gentoo Install Guide

因为忍受不了 xUbuntu 的速度和在公司同事的怂恿下, 花了两天配了个 Gentoo. 确实是快如刀锋, 而且包管理也更加强大, 不得不说: 嗯, 这就是我想要的 Linux 以下为我的整个安装过程的一个记录, 希望能给想尝试 Gentoo 的同学提供多一份参考资料, 呵呵.

1. 使用 minimal CD 启动您的系统

2. 磁盘分区

(Tip 1: 之前可以在 windows 下使用磁盘管理先分好区, 我个人对 fdisk 的分区安全性没有信心... )

2.1. 分区

命令:

        # fdisk -l
        # fdisk /dev/hda   (这里 SATA 硬盘是 /dev/sda 之类的)

如果之前在 windows 下分好区的话, 我们这里主要做的就是更改分区的格式.
使用 p 列出分区状况, t 来更改 (83 linux, 82 swap), 最后 w 写入并退出
对于分区的个数和大小依据自己的状况而定吧. 我的是:
/boot 32M (hda5)
swap 1G (hda6)
/ 10G (hda7)
/home 15G (hda8)

2.2. 格式化

命令:

        # mke2fs /dev/hda5 (boot 只需格成 ext2)
        # mke2fs -j /dev/hda7
        # mke2fs -j /dev/hda8
        # mkswap /dev/hda6 && swapon /dev/hda6

2.3. 挂载

命令:

        # mount /dev/hda7 /mnt/gentoo
        # mkdir /mnt/gentoo/boot
        # mount /dev/hda5 /mnt/gentoo/boot
        # mkdir /mnt/gentoo/home
        # mount /dev/hda8 /mnt/gentoo/home

3. 设置 stage

命令:

        # net-setup

命令:

        # date 052621592007 (格式是 MMDDhhmmYYYY, 俺们是东8, 记得减去 8 小时)

3.1. 下载 stage3 归档

命令:

        # cd /mnt/gentoo
        # wget ftp://10.1.10.8/incoming/software/gentoo/stage3-i686-2007.0.tar.bz2
        # tar xjpf stage3-i686-2007.0.tar.bz2

3.2. 下载 portage 快照

命令:

        # cd /mnt/gentoo/usr
        # wget http://mirror.bitunion.org/gentoo/snapshots/portage-latest.tar.bz2
        # tar xjf portage-latest.tar.bz2

4. Chrooting

4.1. Chroot

命令:

        # cd /
        # mount -t proc proc /mnt/gentoo/proc
        # cp -L /etc/resolv.conf /mnt/gentoo/etc
        # chroot /mnt/gentoo /bin/bash
        # env-update && source /etc/profile

4.2. 设置时区

命令:

        # ls /usr/share/zoneinfo (这里可以看到所有的时区的信息)
        # cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

4.3. 配置 /etc/make.conf 和 /etc/portage/package.use

(这里我是从 eric 给我的配置文件定制的)

文件:

#### /etc/make.conf ####

USE="-* a52 aac acpi alsa bash-completion berkdb branding cairo cdr chardet cjk crypt cups dbus dlloader dmi dri dts dvd dvdr dvdread exif flac firefox gdbm glitz gnome hal jpeg libnotify mmx ncurses network nptl nptlonly pcmcia png python readline samba sse sse2 ssl startup-notification tcpd truetype udev unicode xorg xv xvid zlib X"

# CHOST, CFLAGS, ACCEPT_KEYWORDS 请根据您的 CPU 来修改

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=pentium4 -fomit-frame-pointer -Os -pipe"

CXXFLAGS="${CFLAGS}"

ACCEPT_KEYWORDS="~x86"

PORTDIR_OVERLAY="/usr/portage/local"

GENTOO_MIRRORS="http://mirror.bitunion.org/gentoo/"
#GENTOO_MIRRORS="ftp://ftp3.tsinghua.edu.cn/mirror/gentoo"

#SYNC="rsync://mirror.bitunion.org/gentoo-portage"
SYNC="rsync://ftp3.tsinghua.edu.cn/gentoo/gentoo-portage"

# MAKEOPTS 为 CPU 数加一, 双核就是 -j3
MAKEOPTS="-j2"

FEATURES="ccache sandbox distlocks fixpackages parallel-fetch userfetch"

CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="1024M"

PORTAGE_ELOG_CLASSES="warn error log"

#VIDEO_CARDS="radeon"
INPUT_DEVICES="evdev keyboard mouse synaptics"

文件:

#### /etc/portage/package.use ####

sys-fs/lvm2 nolvm1
app-editors/vim-core nls
app-editors/vim nls python vim-with-x vim-pager
x11-libs/cairo png svg
sys-apps/module-init-tools no-old-linux
media-gfx/splashutils png
x11-libs/cairo pdf
x11-libs/libX11 -xcb
x11-wm/beryl emerald
net-proxy/tsocks tordns
app-editors/gvim gtk
net-im/gaim nls gstreamer gtk msn qq startup-notification
net-im/pidgin nls gstreamer gtk msn qq spell startup-notification
gnome-base/gnome-applets gstreamer
media-sound/quodlibet aac flac mad trayicon vorbis dbus
media-sound/bmpx ffmpeg mad ogg
app-text/acroread nls nsplugin
media-gfx/gthumb gphoto2
media-libs/libgphoto2 nls usb tiff
sys-apps/groff -X
sys-apps/shadow cracklib
sys-process/psmisc -X
sys-libs/glibc glibc-compat20 glibc-omitfp
www-client/links -X -jpeg -png -unicode
media-video/mplayer cdda cddb cdparanoia dvdnav encode gtk iconv mad mmx mmxext mp2 mp3 rar real rtc srt w32codecs
net-www/mplayerplug-in divx gmedia gtk quicktime realmedia wmp
net-p2p/amule gtk nls
app-cdr/gnomebaker dvdr mp3 nls
app-cdr/cdrdao -gnome
media-libs/gd fontconfig xpm
sys-apps/lshw gtk
sys-apps/suspend2-userui fbsplash
dev-db/mysql -berkdb -ssl
media-sound/audacious nls
media-plugins/audacious-plugins mad nls vorbis
x11-libs/qt qt3support
media-video/vlc cdda mp3 mpeg ogg v4l vcd vorbis wxwindows
www-client/mozilla-firefox mozbranding mozdevelop
net-irc/xchat nls -python
app-text/poppler-bindings gtk
gnome-extra/gnome-media mad
dev-lang/php -* apache2 cgi cli ctype curl gd mysql mysqli pcre session truetype xml xmlrpc zlib json
www-servers/lighttpd php -gdbm
net-www/apache apache2 mpm-prefork
app-emulation/qemu-softmmu sdl
app-emulation/wine opengl
media-libs/libsdl opengl
dev-libs/boost threads

# xfce4
xfce-base/xfwm4 xcomposite
xfce-base/xfce4 -cups
xfce-extra/exo -python
xfce-base/thunar plugins -gnome
xfce-base/xfce4-session -gnome

# hal: You MUST build pciutils without the zlib USE flag
sys-apps/pciutils -zlib

games-fps/enemy-territory opengl
games-fps/quake3 opengl
games-fps/quake4-demo opengl
net-fs/samba -cups -python async
media-gfx/gimp -alsa -python smp tiff
app-editors/gedit -python spell
gnome-extra/kiba-dock svg
gnome-extra/kiba-plugins svg
media-gfx/imagemagick -truetype
x11-wm/fluxbox nls

# tapioca
media-plugins/gst-plugins-farsight jingle msn
media-libs/farsight jingle

gnome-base/gnome-menus -python
x11-libs/vte -python
gnome-base/nautilus tracker
gnome-base/control-center gstreamer

app-misc/tracker gstreamer pdf
app-office/abiword spell
app-office/gnumeric -python
net-dialup/rp-pppoe -X
media-video/ffmpeg -X

4.4. 更新 portage 树

命令:

        # emerge --sync 

4.5. 配置 locales

命令:

        # nano -w /etc/locale.gen

文件:

en_US.UTF-8 UTF-8
en_US.ISO-8859-1
zh_CN.UTF-8 UTF-8
zh_CN.GB2312 GB2312
zh_CN.GBK GBK
zh_CN.GB18030

命令:

        # locale-gen

5. 编译内核

命令:

    # emerge gentoo-sources genkernel
    # zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
    # genkernel --menuconfig all

6. 配置系统

6.1. 配置 /etc/fstab

命令:

        # cd /etc
        # nano -w fstab

# <fs>                        <mountpoint>        <type>                <opts>                <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda5                /boot                    ext2                noauto,noatime                1 2
/dev/hda6                none                    swap                sw                                0 0
/dev/hda7                /                        ext3                noatime                            0 1
/dev/hda8                /home                    ext3                noatime                            0 2

/dev/hda1       /media/win_c    ntfs        defaults,nls=utf8,umask=007,gid=443      0 1
/dev/hda2       /media/win_d    ntfs        defaults,nls=utf8,umask=007,gid=443      0 1

/dev/cdrom                /mnt/cdrom        udf,iso9660                noauto,ro,user                0 0
#/dev/fd0                /mnt/floppy        auto                noauto                        0 0

# NOTE: The next line is critical for boot!
proc                        /proc                proc                defaults                0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
#  use almost no memory if not populated with files)
shm                        /dev/shm        tmpfs                nodev,nosuid,noexec        0 0

6.2. 配置网络

命令:

        # nano -w /etc/conf.d/net

文件:

config_eth0=( "10.2.xx.xx netmask 255.255.254.0" )
routes_eth0=( "default via 10.2.54.1" )

6.3. 设置管理员密码

命令:

        # passwd

6.4. 设置时钟

命令:

        # nano -w /etc/conf.d/clock 

6.5. 设置 hosts

命令:

        # nano -w /etc/hosts

7. 安装系统工具

命令:

    # emerge syslog-ng vixie-cron dhcpcd
    # rc-update add syslog-ng default
    # rc-update add vixie-cron default

8. GRUB

命令:

    # emerge grub
    # nano -w /boot/grub/grub.conf

文件:

default 0
timeout 10
splashimage=(hd0,4)/boot/grub/splash.xpm.gz

title=Gentoo 2.6.21
root (hd0,4)
kernel /boot/kernel-genkernel-x86-2.6.21-gentoo-r1 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda7 vga=791 splash=silent,theme:livecd-2007.0 CONSOLE=/dev/tty1 quiet combined_mode=libata resume2=swap:/dev/hda6
initrd /boot/initramfs-genkernel-x86-2.6.21-gentoo-r1

title=Other operating systems:
root

title=Windows XP Professional Edition
rootnoverify (hd0,0)
makeactive
chainloader +1

命令:

    # grub
        grub> root (hd0,4)
        grub> setup (hd0)

9. 重启计算机

命令:

    # exit
    # reboot

如果能正常引导, 那么恭喜恭喜, 整个 Gentoo 的安装过程已经完成大半了~

以 root 身份登入系统

10. 添加新用户

命令:

    # adduser -g users -G lp,wheel,audio,cdrom,portage -m duo
    # passwd duo

11. 优化工具链

命令:

    # emerge -a1v gcc-config glibc binutils libstdc++-v3 gcc
    # gcc-config -l
    # gcc-config 1 (设置默认的编译器)
    # env-update && source /etc/profile
    # emerge -a1v glibc binutils libstdc++-v3 gcc portage

12. 更新系统

命令:

    # emerge system

至此, 一个可用的 Gentoo 就算安装完成了. 剩下的就是看个人喜好装各种软件了.

13. 05.30.2007 追加内容:

13.1. Tip1: 查看每个包安装完后的提示信息

命令

# emerge elogviewer

然后按照它的提示操作, 包括修改 /etc/make.conf 文件,建立 /var/log/portage/elog 目录被分配 portage 权限.

13.2. Tip2: 解决库依赖问题

命令:

# emerge gentoolkit

当有时候执行某些命令的时候提示类似 libexpat.so.0: cannot open shared object file: No such file or directory 信息时, 可以使用 # revdep-rebuild --library libexpat.so.0 来解决这类库依赖问题. # revdep-rebuild 则是检索所有的库依赖并自动重新 emerge 包. 同时 gentoolkit 还提供了 equery 命令, 可以用于检索某个文件属于哪个包.

# equery b lspci
[ Searching for file(s) lspci in *... ]
sys-apps/pciutils-2.2.4-r3 (/usr/sbin/lspci)

所属分类:基础知识

GentooInstallGuide (last edited 2008-08-02 16:34:24 by localhost)