gentoo 攻略
收藏到手机 转发
评论
2008-05-31 22:11
用fdisk /dev/sda分区,如果是IDE就用fdisk /dev/hda,下面是我的分区信息:
/dev/sda1 boot分区 32M ext2
/dev/sda2 Swap 分区 384M swap
(当您完成的时候,按下 t 来选择分区类别。接着输入 82 将分区类别选为 "Linux Swap")
/dev/sda3 主分区(Root) 其余的 ext3
===============
2、建立文件系统
mke2fs /dev/sda1
mke2fs -j /dev/sda3
mkswap /dev/sda2
启用swap
swapon /dev/sda2
档案系统 建立指令
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs
=================
3、挂载分区
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot
================
4、安装stage及portage
sudo tar -xjpvf stage3-i686-2007.0.tar.bz2 -C /mnt/gentoo
sudo tar -xjvf portage-latest.tar.bz2 -C /mnt/gentoo/usr
===============
5、在进入gentoo的安装环境之前还需将DNS信息文件复制过去
代码:
sudo cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
nameserver 220.120.190.208
nameserver 202.96.209.5
sudo mount -t proc none /mnt/gentoo/proc
sudo mount -o bind /dev /mnt/gentoo/dev
=================
6、进入gentoo安装环境
sudo chroot /mnt/gentoo/ /bin/bash
passwd root
# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john
首先上ccache以提高编译速度:
# emerge ccache然后编辑 /etc/make.conf 加上:
FEATURES="ccache parallel-fetch"
CCACHE_SIZE="2G"
===============
7、设置编译参数
Nano -w /etc/make.conf
CPU类型及编译优化参数设置,请按实际情况设置.
http://gentoo-wiki.com/Safe_Cflags
CFLAGS="-O3 -march=pentium-m -pipe -fomit-frame-pointer "
#设置CPU类别,按-fomit-frame-pointer这一参数可以去掉源码中的调试部份,使最后编译出来的程序更加精练.我不懂编程,自然也不会去调试哪个程序,
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
LDFLAGS="-Wl,-O1"
ACCEPT_KEYWORDS="~x86" #也可以用x86,前者表示使用最新的软件,后者使用稳定版
USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr hal"
MAKEOPTS="-j2"
#设置编译并发线程数,-jX中X取值通常做法是你的CPU数量+1,如你是双核则-j3
网络源的设置
代码:
GENTOO_MIRRORS="ftp://ftp3.tsinghua.edu.cn/mirror/gentoo ftp://ftp.sjtu.edu.cn/gentoo ftp://ftp3.tsinghua.edu.cn/mirror/gentoo http://61.135.158.199 ftp://mirror.mcs.anl.gov/pub/gentoo/ http://mirror.gentoo.gr.jp"
#SYNC="rsync://ftp3.tsinghua.edu.cn/gentoo/gentoo-portage"
SYNC="rsync://61.135.158.199/gentoo-portage"
#SYNC="rsync://mirror.mcs.anl.gov/pub/gentoo/"
#SYNC="rsync://mirror.averse.net/gentoo-portage"
#SYNC="rsync://linux.ntcu.net/gentoo-portage"
#SYNC="rsync://acm.cs.rpi.edu/gentoo-portage"
#SYNC="rsync://ftp.ncnu.edu.tw/gentoo"
#SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
#SYNC="rsync://see.tongji.edu.cn/"
#这个自然就是和/etc/apt/sources.list一样的东西了
声显卡及输入输出设备指定
INPUT_DEVICES="keyboard mouse synaptics" #本本上比一般台机多了一个触摸板
VIDEO_CARDS="i810" #我的855GM集成显卡,也许下面的列表可以找到你喜欢的显卡.
#VIDEO_CARDS="apm ark chips cirrus cyrix dummy fbdev glint i128 i740 i810 imstt \
mach64 mga neomagic nsc nv r128 radeon rendition s3 s3virge savage \
siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware \
voodoo"
ALSA_CARDS="intel8x0" #我的破声卡
#ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 \
emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m \
maestro3 trident usb-audio via82xx via82xx-modem ymfpci"
设置你的语言
LINGUAS="en_US" #指定系统及所安装程序的语言支持,这里只用了美式英语
#LINGUAS="en_US zh_CN zh" #这个就加入了简体中文了,记得kubuntu中的kde-i18n-zhcn吧
第一轮对make.conf的制定就先做上面这几个部份吧,保存退出编辑器
==============
8、更新portage
emerge --sync
可以使用emerge-webrsync下载和安装一个最新的portage快照
============
9、选择系统
你的系统主要是什么用途,服务器,家庭桌面? 那就选择适合你的profile
# eselect profile list #该命令可以列出你当前可选的几个profile
Available profile symlink targets:
[1] default-linux/x86/2006.1
[2] default-linux/x86/no-nptl
[3] default-linux/x86/no-nptl/2.4
[4] default-linux/x86/2006.1/desktop
[5] default-linux/x86/2007.0
[6] default-linux/x86/2007.0/desktop *
[7] hardened/x86/2.6
[8] selinux/x86/2006.1
其实上面这些选项都位于/usr/portage/profiles/default-linux/x86/目录下面,
需要注意的是,gentoo 2007默认使用的是第5项,但我的系统主要是办公/娱乐用,自然更喜欢用desktop的profile.
选择很简单,将/etc/make.profile这个链接指向上面某个你选定的目录就可以了
代码:
ln -snf /usr/portage/profiles/default-linux/x86/2007.0/desktop/ /etc/make.profile
如果你偏向服务器应用则
代码:
ln -snf /usr/portage/profiles/default-linux/x86/2007.0/server/ /etc/make.profile
完成以上操作后执行以下命令使其生效
env-update && source /etc/profile #在每次更改过/etc/make.conf后都需要执行这一步
================
10、设置locale、时区、hostname
#cat /etc/locale.gen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB18030
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
#locale-gen
# ls /usr/share/zoneinfo
(Suppose you want to use GMT)
# cp /usr/share/zoneinfo/GMT /etc/localtime
(#ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime)
# date 032916212005
设置时间为2005年3月29日16时21分
#cat /etc/conf.d/clock
CLOCK="local"
TIMEZONE="Asia/Shanghai"
执行/etc/init.d/clock restart可立即生效
# nano -w /etc/conf.d/hostname
(将HOSTNAME的变量值设定为主机名)
HOSTNAME="tux"
#cat /etc/hosts
127.0.0.1 localhost zerone
::1 localhost
==================
11、裝常用工具
安装日志程序
emerge syslog-ng
rc-update add syslog-ng default #加入到runlevels中,以使该程序随系统自启动.类似在kubuntu下可以通过sysv-rc-conf来定制启动项,gentoo中通过rc-update来控制
安装硬件信息查看工具
emerge pciutils #记得kubuntu的lspci命令吗?就在这个包里了
emerge usbutils #这个自然就是查看USB设备信息了lsusb
emerge gentoolkit #gentoo的特色工具包,有很多实用工具
emerge ufed #选择和配置USE的图形工具,装完后通过命令 ufed 来启动它
emerge eix#查找包
emerge genloop#查看时间
emerge eselect#参看模块
更改下载工具
gentoo在安装过程中默认的下载工具是wget,你可以使用axel来替代它以获得更高的下载速度
emerge axel
安装完成之后,在/etc/make.conf里加上下面的内容
代码:
FETCHCOMMAND="/usr/bin/axel -a -n2 \${URI} -o \${DISTDIR}" #
RESUMECOMMAND="/usr/bin/axel -a -n2 \${URI} -o \${DISTDIR}"
FEATURES="ccache parallel-fetch"
-n2指定了下载时的线程数,为不给服务器带来过大负担,尽量不要超过2个线程.
最后一句的功能是让系统下载完一个包就开始编译,并且在译的过程中在后台继续下载下一个将要编译的软件包.这一点与kubuntu不同,系统会自动检测包编译的先后,不需要等到所有相关的包下载完后才开始安装.
==========================
12、编译内核
# emerge gentoo-sources
# ls -l /usr/src/linux
# cd /usr/src/linux
# make menuconfig
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
(Change according to your system)
(Athlon/Duron/K7) Processor family
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
DOS/FAT/NT Filesystems -->
[*] VFAT (Windows-95) fs support
(936) Default codepage for FAT
(utf8) Default iocharset for FAT
[*] NTFS file system support
Native Language Support -->
[*] Simplified Chinese Charset (CP936, GB2312)
#-#-#-#-# choice #-#-#-#-#
(依照你系统的需要启用下面所列出的一个或是多个选项)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
[*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
Device Drivers --->
USB Support --->
<*> USB Human Interface Device (full HID) support
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
(如果您需要使用老式的PCMCIA卡,选择16位。大多数人需要。)
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
(选择相关的bridges)
--- PC-card bridges
<*> CardBus yenta-compatible bridge support (NEW)
<*> Cirrus PD6729 compatible bridge support (NEW)
<*> i82092 compatible bridge support (NEW)
<*> i82365 compatible bridge support (NEW)
<*> Databook TCIC host bridge support (NEW)
Kernel Options for ALSA
Device Drivers --->
Sound --->
(This needs to be enabled)
<M> Sound card support
(Make sure OSS is disabled)
Open Sound System --->
< > Open Sound System (DEPRECATED)
(Move one step back and enter ALSA)
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture
(Select this if you want MIDI sequencing and routing)
<M> Sequencer support
(Old style /dev/mixer* and /dev/dsp* support. Recommended.)
<M> OSS Mixer API
<M> OSS PCM (digital audio) API
(You now have a choice of devices to enable support for. Generally,
you will have one type of device and not more. If you have more than one
sound card, please enable them all here.)
(Mostly for testing and development purposes, not needed for normal
users unless you know what you are doing.)
Generic devices --->
(For ISA Sound cards)
ISA devices --->
(IF you had the Gravis, you would select this option)
<M> Gravis UltraSound Extreme
(Move one level back and into PCI devices. Most sound cards today are
PCI devices)
PCI devices --->
(We now select the emu10k1 driver for our card)
<M> Emu10k1 (SB Live!, Audigy, E-mu APS)
(Or an Intel card would be)
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
(Or if you have a VIA Card)
<M> VIA 82C686A/B, 8233/8235 AC97 Controller
(Move one level back and select in case you have an USB sound card)
USB Devices --->
================
# make && make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-2.6.19-gentoo-r5
# cp System.map /boot/System.map-2.6.19
# cp .config /boot/config-2.6.19
如果网卡驱动编译成模块,那么修改/etc/modules.autoload,参照里面的形式修改吧
然后在第一次重新启动后
# nano -w /etc/conf.d/net
# rc-update add net.eth0 default
=========================
13、设定系统
/etc/fstab:
/dev/hda1 /boot ext2 defaults,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
proc /proc proc nodev,nosuid,noexec 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
# useradd -m -G users,audio,wheel username
# gpasswd -a username wheel
# emerge dhcpcd
# cd /etc/init.d
# ln -s net.lo net.eth0
/etc/conf.d/net文件
# DHCP
config_eth0=( "dhcp" )
# 使用CIDR形式表示的静态IP
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )
# 使用netmask形式表示的静态IP
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default via 192.168.0.1" )
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
# rc-update add net.eth0 default
# rc
最后那个“rc”命令通知Gentoo启动当前runlevel中还没有被启动的脚本
emerge -v alsa-driver
emerge -v alsa-oss
emerge -v alsa-utils
#rc-update add alsasound boot
# emerge grub
# nano -w /boot/grub/grub.conf
# 默认选择哪个列表来引导。0表示第一个, 1表示第二个,以此类推。
default 0
# 引导默认列表前等待多少秒
timeout 30
# 使用漂亮、“臃肿”的spalsh图像来增加一点趣味:)
# 如果您没有安装显卡,请将这行注释掉
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.19-r5
# 内核镜像(或者操作系统)所在分区
root (hd0,0)
kernel /boot/kernel-2.6.19-gentoo-r5 root=/dev/hda3
title=Gentoo Linux 2.6.19-r5 (rescue)
# 内核镜像(或者操作系统)所在分区
root (hd0,0)
kernel /boot/kernel-2.6.19-gentoo-r5 root=/dev/hda3 init=/bin/bb
# 接下来的四行只有在您与Windows系统进行双启动的情况下才需要。
# 本例中,windows系统位于/dev/hda6。
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
将grub安装到mbR
# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install --no-floppy /dev/hda
===========
14、安装桌面
# emerge xorg-x11 (Install it)
# env-update (Update the system variables)
# source /etc/profile
# Xorg -configure (Configure it)
# nano -w /root/xorg.conf.new (Edit the configuration file)
# X -config /root/xorg.conf.new (Test it)
# mv /root/xorg.conf.new /etc/X11/xorg.conf (Move it to the standard location)
# startx (Test it)
# emerge kdebase-startkde (Install the base KDE components)
# emerge kmenuedit kate knetattach konsole kpdf (Install additional)
# env-update; source /etc/profile (Update the system variables)
# su <user> (Test it as non-root user)
$ echo "exec startkde" > ~/.xinitrc (Configure X startup)
$ source /etc/profile (Update the system variables)
$ startx (Start KDE)
$ exit (Back to root)
# ls /etc/X11/Sessions (Look for KDE version)
# emerge kdm
# nano -w /etc/conf.d/xdm (Modify XSESSION and DISPLAYMANAGER)
(在这个地方进行修改)
DISPLAYMANAGER="kdm"
# rc-update add xdm default (Set graphical session at boot)
# reboot (Reboot and login as root)
With Control Center modules > System Administration > Login Manager, set the login background picture and the users shown at login.
With Control Center modules > Peripherals > Mouse, select double-click to open files and folders.
在KDE下,你可以在图形界面中通过简单的鼠标点击来实现加载光驱,USB设备等。要实现这一功能,你必须在KDE的编译选项中加入hal这一USE标记,还需要安装dbus和hald并将这两项加入到你的default runlevel中.同时,你必须将自己的帐户添加到plugdev组中。
# emerge --ask dbus hal
# rc-update add dbus default
# rc-update add hald default
将 <用户>加入到plugdev组中
# gpasswd -a <user> plugdev
==================
15、中文
#cat /etc/locale.gen
zh_CN.UTF-8 UTF-8
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030
en_US.UTF-8 UTF-8
#cat /etc/env.d/100.locale
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
#USE="truetype" emerge -av fcitx
$cat ~/.xprofile
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
exec fcitx &
一、 emerge
1. 安装软件:
# emerge package_name
2. 更新软件并更新它直接依赖的其它软件包:
# emerge -u package_name
3. 更新一个软件并更新它依赖的软件包以及它们依赖的所有软件包, 这里大写的D相当于--deep。
# emerge -uD package_name
4. 软件包卸载:
# emerge -C package_name
5. 软件包搜索(只搜索名字):
# emerge -s key_word
6. 软件包查找(搜索内容):
# emerge -S key_word
7. 将本地软件列表与最新的portage树同步:
# emerge --sync && emerge portage
8. 只下载源码:
# emerge -f package_name
9. 更新系统中的所有软件:
# emerge -uD world
10. 查看一个预装包欲装的包:
# emerge -p package_name
11. 查看预装包总共有哪些 USE :
# emerge -pv package_name
二、eix
安装eix: emerge eix
1. 软件包搜索:
# eix key_word
2. 将本地软件列表与最新的portage树同步:
# eix-sync
三、equery
equery可查看已安装包的信息,安装此工具: emerge gentoolkit
1. 列出所有已安装包:
# equery list 或简写:
# equery l
2. 查看已安装包装了哪些内容:
# equery files package_name 或简写:
# equery f package_name
3. 查看一个程序foo隶属于哪个包:
# equery belongs foo 或简写:
# equery b foo
4. 查看哪些包依赖于package_name:
# equery depends package_name 或简写:
# equery d package_name
5. 查看已安装包abc用了哪些USE:
# equery uses package_name 或简写:
# equery u package_name