安装前准备:
下载install-amd-minimal-xxxxxx
portage-latest.tar
stage3-amd64-xxxxxx.tar
(xxxxxx 为日期)
安装:
准备好虚拟机,加载install-amd-minimal-xxxxxx.iso启动
F1 加载启动liveCD,选择gentoo ,(第二个为gentoo-nofb,无帧缓冲)
编辑/etc/ssh/sshd_config 开启密码认证,及空密码登录,删除密码,通过xterm登录
vi /etc/ssh/sshd_config
PasswordAuthentication yes
PermitEmptyPasswords yes
passwd -d root
确认硬盘设备lsblk (一般为sda)
分区规划 boot -->200M ; swap --> 1024M ; / --> 剩余
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2 && swapon /dev/sda2
挂载
mount /dev/sda3 /mnt/gentoo/
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
上传并解压stage3和portage
cd /mnt/gentoo
tar xvjpf stage3* --xattrs
tar xvjpf portage* -C usr/ --xattrs
编辑make.conf文件
nano -w /mnt/gentoo/etc/portage/make.conf (Ctrl+o保存,Ctrl+x退出,Ctrl+w查找)
CFLAGS定义了C语言程序的优化参数
CFLAGS="-march=native -O2 -pipe"
或="-march=K8 -O2 -pipe" 等其他
Intel CPU 改成 -march=core2
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j4" 定义编译线程,根据CPU情况设定,一般为核心数+1,建议在CPU+1至2*CPU+1之间
ACCEPT_KEYWORDS="~amd64" 可以获得amd64平台的最新软件,即官方所说的不稳定软件,32位更换为"~x86",不想更新到最新的系统的去掉"~"标记
CHOST="x86_64-pc-linux-gnu" 此行默认
VIDEO_CARDS="intel " 指定显卡类型,英特尔集显用这个标签。ATI显卡闭源驱动用fglrx,开源驱动用radeon。Nvidia显卡使用nvidia标签。
LINGUAS=”zh zh-CN zh_CN.UTF-8” 设定语言
INPUT_DEVICES="keyborad mouse evdev" 输入输出设备,有触摸板的可以根据实际情况设定synaptics标签。
USE="mmx apng boost aqua a52 aac acpi cairo canna cvs dbus dri gd glut lame mad mng mp4 mplayer multilib smp svg theora usb wifi x264 xvid alsa sasl ssl sse sse2 X -gnome qt4 dvd alsa cdr kde bash-completion bzip2 cjk curl cvs cxx iconv jpeg jpek2k openmp opengl openal png therads lzma lzo"
AUTOCLEAN=”yes” 每次安装完后自动清理垃圾
设置更新源 (选择China下的)多个
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
设置同步源 (选择China下的)只能一个
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
复制当前DNS信息
cp -L /etc/resolv.conf /mnt/gentoo/etc/
安装必要的文件,挂载必要分区到新系统
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
切换环境
chroot /mnt/gentoo /bin/bash
source /etc/profile
同步Portage tree
emerge –sync (网络不好可暂时跳过)
设置系统环境
eselect profile list
eselect profile set 6
设置时区命令:
echo "Asia/Shanghai" > /etc/timezone
配置本地环境:
nano -w /etc/locale.gen
输入以下内容:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8
更新locale:locale-gen
重新加载环境
env-update && source /etc/profile
下载编译源码(重要,需特别注意)
emerge gentoo-sources
cd /usr/src/linux
make menuconfig
make && make modules_install && make install
安装genkernel
emerge genkernel
制作initramfs
genkernel --install initramfs
编写fstab,
nano -w /etc/fstab
/dev/sda1 /boot ext4 noauto,noatime 1 2
/dev/sda3 / ext4 noatime 0 1
/dev/sda2 none swap sw 0 0
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
配置主机名
nano -w /etc/conf.d/hostname
hostname="xxx"
配置网络
nano -w /etc/conf.d/net
config_xxx="x.x.x.x netmask x.x.x.x brd x.x.x.x"
routes_xxx="default via x.x.x.x"
或者 config_xxx="dhcp" 或者留空默认为dhcp
设置网卡自动启动
cd /etc/init.d
ln -s net.lo net.xxx
rc-update add net.xxx default
修改root密码
passwd
新增用户gandefeng
useradd -m -G users,wheel,audio,cdrom,portage,usb,video -s /bin/bash gandefeng
passwd
安装日志管理软件
emerge syslog-ng cronie
rc-update add syslog-ng default
rc-update add cronie default
rc-update add sshd default (注意配置文件)
安装文件索引和dhcp
emerge mlocate
emerge dhcpcd
安装bootloader
emerge sys-boot/grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/gruc.cfg
(如果是多系统,已经有grub的,在别的系统执行update-grub可更新Gentoo的引导项目、到grub菜单,有可能需要更改grub.cfg里关于Gentoo的启动项root=/dev/sdxx为root=UUID=sdxx的UUID)
退出环境,umount
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts}
umount -l /mnt/gentoo{/boot,/proc}
reboot
重启后更新系统,安装软件和桌面
emerge -e system 重新编译系统软件
emerge -e world 重新编译全部软件
emerge -uDN world 升级系统包括use的变化引起的
emerge --sync 更新Portage树
注意: 更新中遇到某个包更新过不去,使用一下命令
per-cleaner all
phyton-updater
env-update 更新系统变量
etc-update 更新配置文件 -3 表示接受所有修改
仍然过不去,可能是上游的原因,可以编辑配置文件暂时告诉系统,这个程序已经安装
nano -w /etc/portage/profile/package.provided
比如输入我编译不过去的这个软件:
dev-perl/Try-Ting-0.110.0
此时,再执行更新系统命令,会跳过这个包的编译更新,如果还有别的包编译不过去,以此类推。待系统正常后,可以注释掉package.provided里面的软件,尝试再次更新系统。
有些包,系统必备的,不安装会有很多包编译不过去,但是这个包专机却又安装不上去,这时候可以尝试将make.conf中的MAKEOPTS参数改为”-j1“,使用单线程编译。比如有次遇到dev-libs/boost编译不过去,只能改为-j1才能过。
安装X
emerge -av xorg-server xorg-x11 xorg-drivers
(startx是否正常不影响桌面环境的运行)
为Gentoo安装桌面环境,以KDE为例。一般100+的包,三五个小时才能编译完
emerge kde-meta 这将安装KDE的全部组件完整安装
emerge kdebase-meta 基础KDE环境+少许必备软件
emerge kdebase-startkde 基础KDE环境
设置显示管理器
rc-update add xdm default 将xdm加入自启动服务
rc-update add dbus default 将dbus加入自启动服务
nano –w /etc/conf.d/xdm
将文件里面的xdm修改为kdm,然kdm设置为登录管理器。
Gentoo使用Overlay
安装emerge layman
添加gentoo-zh到layman:
layman –L && layman –a gentoo-zh
-
在/etc/portage/make.conf最后加入以下两行:
source /var/lib/layman/make.conf
PORTDIR_OVERLAY="${PORTDIR} ${PORTDIR_OVERLAY}"
如此一来就可以安装第三方的软件了,比如
emerge wps-office
emerge fcitx-sogoupinyin
-
emerge gentoolkit
安装gentoolkit后,可以执行
emerge --depclean && revdep-rebuild进行系统垃圾清理。
-
安装Chrome浏览器
emerge -av google-chrome
强烈建议安装google-chrome而不是chromium,后者编译太耗时了,怕了,服了!
-
Gentoo安装网络管理器(安装kde-meta的略过此步骤)
取消/etc/conf.d/net中定义的ip获取方式
emerge -av networkmanager networkmanagement
rc-update add NetworkManager default
-
为Gentoo安装中文包
emerge kde-l10n
-
系统设置,local,设置中国,语言设置为中文,应用,重启后生效。
-
安装中文字体,复制Windows字体到
/usr/share/fonts中,刷新系统:fc-cache –fv
-
系统基本上可用了,有了桌面环境,有了网络,剩下的还有什么搞不定的呢??
Gentoo常用命令和小技巧
-
下面是一些进入Gentoo系统后的一些常用命令和小技巧。
从别的Linux系统去更新Gentoo。比如说我在Ubuntu下工作,想更新一下Gentoo,此时不用重启系统,只用切换到Chroot环境,进行更新就好了。
sudo -i
mount /dev/sdb12 /mnt/gentoo/
mount -t proc proc /mnt/gentoo/proc
#mount --rbind /sys /mnt/gentoo/sys
#mount --rbind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
此时已进入,可以执行更新命令:
emerge --sync && emerge --update --deep --newuse --with-bdeps=y @world && emerge --depclean && revdep-rebuild
或者简单点的:emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild
效果是一样的哈。
退出Chroot环境
# exit
# cd
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount -l /mnt/gentoo{/boot,/proc,}
-
Gentoo更新内核:
emerge -u gentoo-sources
eselect kernel list
eselect kernel set 数字
更新/usr/src/linux符号链接:
cd /usr/src
ln -sfn linux-3.11.4-gentoo linux
genkernel --menuconfig all (此时可以load之前保存的config文件。注意:默认保存在/usr/src/linux但是刚才的步骤更新了/usr/src/linux指向,所以原来保存的配置文件在上一个版本的内核源码包里面,比如/usr/src/linux-3.15.5-gentoo文件夹里面,需先把此文件夹下的配置文件复制到新内核的目录中,比如:/usr/src/linux-3.15.6-gentoo才能正确导入。
如果新内核编译后,无法进入图形界面,那么就要从正常的内核中提取配置文件,用以编译新内核。步骤如下:
用能正常进入图形界面的内核引导系统,提取内核配置文件:cat /proc/config.gz | gzip –d > /usr/src/linux/config-ok
此时会将配置文件提取到/usr/src/linux目录下,配置文件名称为config-ok,导入的时候导入这个,就可以执行编译了。
也有更简单的办法,指定特定配置文件进行内核编译:
genkernel --kernel-config=/usr/src/linux/config-ok --install --symlink all
半自动配置方法是:genkernel --menuconfig --install --symlink all 此时会出现内核编译选项对话框,可以导入配置文件,也可以手动选择。
-
gcc-config: Active gcc profile is invalid! 解决办法
gcc-config –c首先得到当前gcc版本号
执行gcc-config+得到的版本
比如:gcc-config x86_64-pc-linux-gnu-4.7.3
ok!
-
4
Gentoo日常升级维护:
emerge --sync or eix-sync
emerge -auvDN world
revdep-rebuild
emerge –depclean
或emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild
-
5
编译到一半中断了,可以删除临时文件,方法为:rm –rf /var/tmp/portage/*
-
6
查看软件编译时间:
qlop –Hgvt xxx
比如:qlop –Hgvt gcc这里会得到历次编译gcc所用的时间。