Linux家族神器——Gentoo安装部署教程安装笔记
的有关信息介绍如下:很多人估计都想体验一把Gentoo,但是这货可远观不可近玩,特别是Linux新手,想直接搞定她,还是有难度的。
下载ISO文件:地址这里不能贴,自己找吧,官网有。
下载stage3:地址这里不能贴,自己找吧,官网有。
将ISO文件写入U盘,试过深度(Deepin)的工具,无法正常引导,最后还是用软碟通写的,或者用powerISO。
将stage3放入另外一个U盘,备用,网络不好的同学请用这个办法。
用Gentoo的U盘引导系统,进入后,参考官方手册Gentoo handbook进行安装,我一般从磁盘分区开始做起。
命令:lsblk查看当前磁盘分区情况。新手安装推荐在别的系统下做好分区,安装Gentoo的时候,只用记住/dev/sdXx就好了。我此次安装的分区是sdc12。
看看网络是不是好的:ping 一个外网网址。
格式化分区:命令mkfs.ext3 /dev/sda12,此次安装我未将boot分区独立,Gentoo系统只有一个根分区。
挂载分区:mount /dev/sda12 /mnt/Gentoo
挂载SWAP,还是弄一个比较安全。很简单
格式化mkswap /dev/sdaX
挂载:swapon /dev/sdaX (X换为对应的分区号)
下载stage3:先跳到工作目录:cd /mnt/gentoo
此处分两种方法,网络好的用官方方法,在线安装stage3。
命令:links 阿里云Gentoo地址
依次进入releases→amd64→autobuilds→current-iso→移动到最新的stage3,比如我的是stage3-amd64-20140619.tar.bz2,回车开始下载。
网络不好的,请事先下载好stage3,存入U盘,插入存有stage3的U盘,执行命令:lsblk,看看U盘所在的分区,挂载到当前系统。比如我的U盘插入后,分区为sdd1。挂载方法:
mkdir /mnt/gentoo/usb
mount /dev/sdd1 /mnt/gentoo/usb
cd /mnt/gentoo/usb
mv stage3-amd64-20140619.tar.bz2 /mnt/gentoo
上面两种方法,无非就是让stage3进入工作目录,为安装做准备。
安装stage3:解压命令:tar xvjpf stage3-*.tar.bz2
*号替换为你自己下载的stage3里面的日期。
编辑make.conf文件,适应你自己的硬件,发挥最大效能。命令:nano -w /mnt/gentoo/etc/portage/make.conf
nano 编辑器,很方便,Ctrl+o保存,Ctrl+x退出,Ctrl+w查找,快捷键都在下方有显示哈。
以下是说明文件,红色为需加入make.conf的内容。
CFLAGS 定义了c语言程序的优化参数
CFLAGS="-march=k8 -O2 -pipe"
Intel CPU改为 -march=core2
CXXFLAGS="${CFLAGS}" 此行默认即可。
MAKEOPTS="-j8" 编译线程,根据CPU情况自行设定,一般为核心数+1。建议的设定是从 CPU+1 至 2*CPU+1。我的电脑是4核心,设置为8,编译的时候风扇很忙碌。
ACCEPT_KEYWORDS="~amd64"
可以获得amd64平台的最新软件,亦即官方所说的unstable的软件。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” 每次安装完后自动清理垃圾
以安装KDE桌面环境为例的USE。
其他暂且默认,不改动,进系统后再说。
设置更新源命令:
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
弹出对话框,让你选择更新源,找到China,里面有搜狐,网易,这个可以多选,按空格进行选定,回车确认。
设置同步源命令:
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
这个不能多选,找到china,选择厦门大学的镜像。
复制当前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环境,命令:注意空格。
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
同步Portage树,命令:emerge –sync 网络不好,此处会等待很长时间的。
设置系统环境
命令:eselect profile list
命令后,会出来各种环境,我的选择kde,是6,执行命令:eselect profile set 6 可以再用eselect profile list命令查看你选择的对不对。选中的有个*标记。
里面还有一项是kde+systemd,大家可以试试。
设置时区命令:
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
选择的时候注意,根据硬件情况,特别是网卡,显卡,在内核中进行适当的勾选。我的做法是先按手册要求的勾选一般,再参照金步国的内核详解作适当的裁切。
Intel显卡特别注意要勾选
Device Drivers --->Graphics support ---><*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
这个里面有一个intel 8xx/9xx之类的,一定要选中,一般选择 M。
小技巧:在内核参数选择的过程中,输入/可以进行搜索,空格进行选择和反选,按两下esc进行返回上一级目录,方向键左右可以切换到save和load,分别进行内核配置文件的保存和导入。默认保存为.config,保存的时候可以输入文件名,以备下次编译内核导入,省时省力。内核配置文件保存目录在/usr/src/linux下。
编译命令:make && make modules_install
安装命令:make install
我一般采用半自动编译模式,首先安装genkernel。
命令:emerge genkernel
编译内核命令:genkernel --menuconfig all
此时会跳出手动选择内核界面,做出必要修改后保存,退出后,genkernel会完成后面的工作,/boot目录会自动生成三个文件。
编辑fstab文件
nano -w /etc/fstab
内容:
/dev/sdb12 / ext3 noatime 0 1
/dev/sdb11 none swap sw 0 0
第一行是根分区,第二行是虚拟内存分区,据实填写。
编辑机器名称:nano -w /etc/conf.d/hostname
内容:hostname="lhw" 其中lhw为新的计算机名称。
配置网络:
准备工作:输入ifconfig,查看网络状态,一般有两个,其中一个是lo,不管他,另外一个一般是eth0,也可能是其他的名字,记住这个,这个是你网卡的别名,我的是enp0s25。
编辑nano -w /etc/conf.d/net填入:
手动模式:
config_enp0s25="192.168.0.200 netmask 255.255.255.0 brd 192.168.0.255"
routes_enp0s25="default via 192.168.0.1"
这上面两行的意思就是指定电脑ip为192.168.0.200,路由器地址为192.168.0.1,请据实修改,否则无法上网。
自动模式:输入:
config_enp0s25="dhcp"
使用dhcp方式获取ip,据说/etc/conf.d/net文件内容留空,就是自动获取ip,没试过哈。
让网卡默认启动
cd /etc/init.d
ln -s net.lo net. enp0s25
rc-update add net. enp0s25 default
修改密码,添加用户:
修改root密码命令:passwd
连续输入两次新密码即可。
新增一个用户lhw:
useradd -m -G users,wheel,audio,cdrom,portage,usb,video -s /bin/bash lhw
passwd lhw 修改密码
安装日志管理软件
emerge syslog-ng cronie
rc-update add syslog-ng default
rc-update add cronie default 添加到服务
远程访问服务:rc-update add sshd default
文件索引程序:emerge mlocate
安装DHCP程序:emerge dhcpcd
接下来就是引导程序,推荐使用grub2。
安装emerge sys-boot/grub
grub2-install /dev/sdb
grub2-mkconfig -o /boot/grub/grub.cfg
由于我的是多系统,原来的系统已安装了grub,所以我的Gentoo是不安装grub的,只要/boot目录里面有内核,在别的系统里面执行sudo update-grub即可更新Gentoo的引导项到grub菜单。偶尔出现grub.cfg里面关于Gentoo的启动项使用的是root=/dev/sdb12形式,只需改为root=UUID=sdb12的UUID,即可正常引导。
差不多了,可以退出去,进新系统安装剩下的内容了。
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -l /mnt/gentoo{/boot,/proc,}
reboot
不出意外,可以进入新的系统了,现在要安装x和桌面环境了。更新系统吧,很漫长的!首先切换到root权限,命令:su回车。以下的命令都是在root权限下进行的。
emerge –sync && emerge –uDN world
一般300+的更新包,编译时间5小时+。更新过程中遇到某个包更新不过去,可以用以下几个办法救命。
perl-cleaner all
python-updater
env-update 更新系统变量
etc-update 更新配置文件,-3表示接受所有修改。
偷偷说一句,安装软件,更新系统遇到问题,都可以试试上面的几个命令,包治百病!
上面两个命令是更新perl和python的配置的,如果还是无法跳过某个程序的安装,有可能是上游的原因,此时可以暂时告诉系统,这个程序你已安装,请编辑
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看看X是否正常,但是每次都是各种错误,后来清风老师告诉,startx是否正常不影响桌面环境的运行,所以我这次安装完X,就直接安装KDE了,一次性跑起来了!!!
为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设置为登录管理器。
不出意外将进入kde环境,再次更新系统:
emerge --sync && emerge --update --deep --with-bdeps=y --newuse --autounmask-write world (这是一整行)
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系统后的一些常用命令和小技巧。
从别的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!
Gentoo日常升级维护:
emerge --sync or eix-sync
emerge -auvDN world
revdep-rebuild
emerge –depclean
或emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild
编译到一半中断了,可以删除临时文件,方法为:rm –rf /var/tmp/portage/*
查看软件编译时间:
qlop –Hgvt xxx
比如:qlop –Hgvt gcc这里会得到历次编译gcc所用的时间。