Gentoo参考手册

修订 1.2

2006年08月24日

修订历史
修订 1.2 2007年11月15日 廖佳亮
基于Gentoo 2007.0版本,删除了安装步骤的内容;
修订 1.1 2007年04月04日 廖佳亮
基于Gentoo 2006.1版本,修改了安装步骤;
修订 1.0 2006年08月24日 廖佳亮
初稿,基于Gentoo 2005.1编写,图形支持主要以KDE为主;

1. 系统安装
1.1. 启动光盘
1.2. 安装过程
1.2.1. 网络配置
1.2.2. 磁盘分区
1.2.3. 系统基本配置
1.3. 编译参数
1.4. 提高编译性能
1.4.1. distcc
1.5. 编译内核
1.6. LVM
2. 系统配置
2.1. 系统配置
2.1.1. 命令别名
2.2. 网络设置
2.2.1. 网卡配置
2.2.2. 主机名称
2.3. 系统信息
2.4. 时间日期
2.4.1. 设置系统时间
2.4.2. 网络时间
2.5. Portage
2.5.1. 更新
2.5.2. 安装
2.5.3. 搜索
2.5.4. 配置文件
3. KDE
3.1. 安装 KDE 基本组件
3.2. 显卡
4. 中文字体
4.1. 安装字体文件
4.2. 配置文件
5. 系统服务
5.1. 运行级别
5.2. 管理系统服务
5.3. 环境变量

1. 系统安装

1.1. 启动光盘

与其它Linux发行版相比,Gentoo的安装方式比较特别,安装前要有一个可以启动的基本操作系统。Gentoo提供三种不同类型的光盘:

  1. Gentoo Minimal CD/InstallCD

  2. Gentoo Universal install CD

  3. Gentoo LiveCD

Gentoo Live CD可以直接启动使用的系统,也可以用于安装。不过为了获得最新升级,建议用Minimal CD安装。

1.2. 安装过程

完全安装Gentoo分为三个步骤,一般从第三步(Stage3)开始安装,详细安装过程可以参考:Gentoo Linux x86 Quick Install Guide

1.2.1. 网络配置

如果网卡并没有自动设置(DHCP),可以通过向导来配置网卡。

net-setup eth0

也手工来配置网卡,包括地址、网关和域名服务器。

ifconfig eth0 192.168.1.10/24
route add default gw 192.168.1.1
echo nameserver 192.168.1.1 > /etc/resolv.conf

通过代理方式上网时,通过指定两个环境变量来配置代理服务器地址。

export http_proxy="http://192.168.1.1:3128"
export ftp_proxy="http://192.168.1.1:3128"

1.2.2. 磁盘分区

通过 fdisk 工具来划分磁盘空间,为了方便管理,建议除了/boot, swap 和 / 分区外,其它分区通过LVM管理。

1.2.3. 系统基本配置

并没有安装VI,默认编辑工具为nano,编辑文件方法如下:

nano -w /etc/make.conf

编辑好文件后,按Ctrl+X提示保存文件,按Y保存文件,然后按回车退出编辑器。

1.3. 编译参数

系统默认编译参数配置文件为/etc/make.conf,建议添加一下参数:

# Host Setting.
CHOST="i686-pc-linux-gnu"

# Host and optimization settings.
CFLAGS=" -O2 -march=pentium4 -pipe"
CXXFLAGS="${CFLAGS}"

# The suggested number for parallel makes is CPUs+1.
MAKEOPTS="-j3"

# The USE variable is used to enable optional build-time functionality.
USE="nptl nptlonly -ipv6 -fortran unicode"

# Gentoo mirrors.
GENTOO_MIRRORS="http://gentoo.abc.com/gentoo/"

为了提高gcc的编译速度,建议安装ccache来缓存提高性能。

  1. Emerge ccache:emerge -av dev-util/ccache

  2. 执行 emerge --info | grep CHOST 查看当前CHOST值;

  3. 配置ccache:ccache-config --install-links YOUR-CHOST-HERE

为了编译时默认启用ccache功能,在make.conf文件中添加:

FEATURES="parallel-fetch ccache"

系统默认缓存目录在/var/tmp/ccache,编译时也将缓存文件放在该目录。而用户的缓存目录在/root/.ccache,虽然root用户从来不会使用这个目录,这会导致混乱。查看缓存命中率等统计信息时,必须加上CCACHE_DIR参数。

CCACHE_DIR="/var/tmp/ccache" ccache -s

为了避免混乱,最好

echo "CCACHE_DIR=\"/var/tmp/ccache\"" >> /etc/env.d/99local 
env-update && source /etc/profile

1.4. 提高编译性能

1.4.1. distcc

通过distcc工具,可以让网络中的多台机器一起编译,这样可以大大提高编译速度。

  • 在安装distcc之前,添加distcc系统用户:

    echo "distcc:x:240:2:distccd:/dev/null:/bin/false" >> /etc/passwd
  • 安装软件包,如下所示:

    USE='-*' emerge --nodeps sys-devel/distcc
  • 修改编译参数,加入distcc支持,同时也支持ccache和confcache,编辑/etc/make.conf:

    FEATURES="distcc ccache confcache"
  • 将distcc路径加到gcc之前,ccache之后。可以修改用户的~/.bashrc或者/etc/bash/bashrc来添加路径,如下:

    export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"
  • 编辑/etc/conf.d/distccd文件,允许局域网内计算机连接,如下:

    DISTCCD_OPTS="${DISTCCD_OPTS} --allow 10.62.0.0/16"
  • 启动服务端:

    /etc/init.d/distccd start
  • 设置本机编译时,连接那些主机一起编译,如下:

    distcc-config --set-hosts "localhost u01 10.62.0.200"

每次执行emerge system更新整个系统后,一定要重新执行emerge distcc

1.5. 编译内核

内核源代码安装在/usr/src目录下,为了方便建立一个符号链接到 linux。编译内核时需要加载分区的文件系统、硬件设备驱动、网络支持等直接编译进内核。如果对某个模块不是很熟悉,按 ? 键查看帮助信息。

光盘自带的的 Kerenl 版本会比较旧一点,因此编译内核前需要升级内核版本。先升级到最新的portage,然后安装最新的内核源代码。

  • 未成熟代码支持

    通常不需要支持未成熟的代码:

    Code maturity level options  --->
    [ ] Prompt for development and/or incomplete code/drivers
  • 通用设置

    启用 .config 文件支持:

    General setup  --->
    [*] Kernel .config support

    如果不需要启用 SELinux:

    [] Auditing support
  • CPU 配置

    如果需要超线程或多 CPU 支持:

    Processor type and features  --->
    [*] Symmetric multi-processing support
    (8)   Maximum number of CPUs (2-255)
  • 电源管理

  • 总线支持

    Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
    [*] PCI support
    [*]   Legacy /proc/pci interface
    [*]   PCI device name database
    [*] ISA support
  • 文件系统

    File systems  --->
    <*> Second extended fs support
    <*> Ext3 journalling file system support
    [*]   Ext3 extended attributes
    [*] Inotify file change notification support
    <*> Kernel automounter version 4 support (also supports v3)
  • 显卡支持

    Graphics support  ---> 
    <*>   VESA VGA graphics support
              VESA driver type (vesafb-tng)  --->
    (1024x768@75) VESA default mode
  • USB 输入设备,例如 USB 鼠标或者键盘:

    Device Drivers --->
    USB Support --->
    <*>   USB Human Interface Device (full HID) support
    [*]   HID input layer support 

Gentoo 中加载模块的方式有点特别,模块名称写在 /etc/modules.autoload.d/kernel-2.6 文件中。

1.6. LVM

在编译内核时,添加LVM支持或者以模块方式加载dm-mod模块。通过fdisk分一个Linux LVM类型的分区,例如/dev/sda4。然后,安装lvm2和ext2resize两个软件包。

通过修改/etc/lvm/lvm.conf,定义过滤条件,避免LVM启动时扫描所有设备。如下:

filter = [ "a|/dev/sda|", "r/.*/" ]

激活LVM,如下:

vgscan && vgchange -a y

接下来就可以用lvm命令创建PV->VG->LV,如下:

pvcreate /dev/sda4
vgcreate vg /dev/sda4
lvcreate -L10G -nhome  vg

2. 系统配置

2.1. 系统配置

2.1.1. 命令别名

根据用户习惯,在/etc/bash/bashrc文件中添加一下设置:

alias ls='ls --color'
alias ll='ls -l'

alias mv='mv -i'
alias rm='rm -i'
alias cp='cp -i'

2.2. 网络设置

2.2.1. 网卡配置

编辑/etc/conf.d/net,配置网络接口信息,如下:

  • 静态地址:

    config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
    routes_eth0=( "default gw 192.168.0.1" )
  • DHCP方式:

    config_eth0=( "dhcp" )
    dhcp_eth0="nodns nontp nonis"

执行/etc/init.d/net.eth0 restart重启网卡。

2.2.2. 主机名称

完整的主机名称包括主机名和域名,通过一下配置系统主机名:

  • 设置主机名,编辑/etc/conf.d/hostname:

    HOSTNAME="tux"
  • 设置域名,编辑/etc/conf.d/domainname:

    DNSDOMAIN="homenetwork"

执行hostname命令可以查看和修改当前系统主机名。

2.3. 系统信息

  • 设置安全终端

    # echo "tts/0" >> /etc/securetty
  • 配置键盘

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

2.4. 时间日期

2.4.1. 设置系统时间

使用命令 date 可以设置系统时间日期:

date -s 12/20/2003
date -s 12:30:00

系统重新启动后,将会读取硬件时间为系统时间。因此,通常你还需要使用命令 hwclock --systohc 将系统时间写到硬件时间。

2.4.2. 网络时间

使用命令 ntpdate ntp.server.name 从时间服务器读取时间。设置每天中午同步一次系统系统:

# vi /etc/crontab
50 11 * * * root /usr/sbin/ntpdate ntp.abc.com  > /dev/null 2>&1
00 12 * * * root /sbin/hwclock --systohc

2.5. Portage

2.5.1. 更新

Portage树通常通过rsync方式更新,如下:

emerge --sync

当防火墙或则公司策略不允许时,也可以通过web方式同步更新,如下:

emerge-webrsync

2.5.2. 安装

安装软件包前,最好先用参数-pv查看会更新那些包。结果中第二列比较重要, N表示新安装,R表示替换当前系统已经安装的包。

emerge mysql -pv

然后,开始编译安装软件包和依赖的包,如下:

emerge mysql

只下载源代码包,但是不安装。

emerge openoffice -f

2.5.3. 搜索

emerge --search openoffice

搜索结果后面如果有 [mask] 标记,表示这个包当前是不能安装的。

参数emerge --info可以查看当前的配置信息。

2.5.4. 配置文件

更新软件包时,新的配置文件以._cfg0000X_前缀安装到系统,并不会覆盖原来的配置文件。通过工具etc-update可以查看和管理系统中存在更新的配置文件。

3. KDE

3.1. 安装 KDE 基本组件

emerge kdebase kdenetwork kdeadmin

3.2. 显卡

nvidia for Nvidia cards or fglrx for ATI Radeon cards.vga

VIDEO_CARDS="vga"
INPUT_DEVICES="keyboard mouse"
ALSA_TOOLS="intel8x0"

4. 中文字体

4.1. 安装字体文件

下载以下字体文件,并复制到 /usr/local/share/fonts 目录。

mingliu.ttc  simsun.ttc  tahomabd.ttf  timesbd.ttf  timesi.ttf   verdanab.ttf
simhei.ttf   tahoma.ttf  times.ttf     timesbi.ttf  verdana.ttf

4.2. 配置文件

中文字体的配置文件为 /etc/fonts/fonts.conf,但是建议只修改用户自己的配置文件。

例 1. ~/.fonts.conf


5. 系统服务

5.1. 运行级别

Gentoo 下的运行级别不在用数字来表示,通常的运行级别包括:

  • boot

  • default

  • nonetwork

5.2. 管理系统服务

  • 查看当前系统运行服务设置;

    # rc-update show
  • 添加系统启动服务;

    # rc-update -a vixie-cron default
  • 删除系统启动服务;

    # rc-update -d vixie-cron default

5.3. 环境变量

可以将以上环境变量添加到/etc/env.d/99local文件中,系统启动时读取该环境变量。如果希望这些环境变量立即生效,执行env-update命令将环境变量写入/etc/profile.env,下次用户登录时环境变量生效。