曾经体验过Arch Linux的安装。从零开始,用几十个包就构建了基本系统,十分明了。
现在换上Gentoo Linux,怎么就冒出了个stage3?官网上说可以stage1开始,但是现在已经不提供stage1包了。何不自己构建stage包,感受下从头编译一个完整的Linux的历程。
构建Stage1 按照官网文档,Gentoo的构建工具由Project:Catalyst提供。
https://wiki.gentoo.org/wiki/Catalyst
按照文档,在准备好Seed tarball和portage树后只需要按顺序构建stage1.spec, stage2.spec, stage3.spec就可以自动完成。
Gentoo的自动化构建做的确实不错。
但是我并不像构建stage3发布出去,所以打算在构建stage1后直接装进系统分区。
于是,在修改好spec文件后,我提供了seed开始编译。得到stage1root文件夹。
我翻看了catalyst的stage1构建脚本,其利用emerge的环境变量ROOT引导安装了最初的Portage,BaseLayout和GNU GCC工具链。
下次大概可以直接手动用pkg装了;)
于是copy stage1root到root分区,现在有了原始工具。
构建Stage2 由于我不想打包,干脆直接放弃了catalyst工具,直接执行porgate/scripts/bootstrap.sh
从stage2开始,编译使用了新系统自己的工具链,stage2的作用也就是构建完整的编译环境
构建Stage3 直接执行emerge -av -e @system。这次编译加载了真正的profile,将按照profile里的packages和use构建完整系统。
执行完成后,得到和官方stage3包基本一致的系统,但是这个系统还不能启动。
启动系统 配置locate为en_US,timezone为UTC
接着安装内核,由于hardened的内核被闭源了,只能用上普通gentoo-sources内核。
内核config直接用了上次配好的。initramfs使用genkernel编译,/etc/genkernel/genkernel.conf开启lvm和crypt。
接着安装grub,/etc/default/grub启动参数里加上crypt和dolvm。
配置fstab,为root设置密码,就可以重启进入系统了。
构建桌面 由于上次的失败,还是放弃了wayland这个玩具,用回了X。
这次打算建立自己profile,并且之前的编译都开启了buildpkg FEATURE,以后就可以一劳永逸啦。
USE的配置参考了官方profile的desktop target。
其他包放进了packages中,再也不用翻world了。
X实现用了xorg-x11包,自带了大量X桌面工具。
Window Manage用了awesome,平铺管理很简洁。
其它还有xterm, firefox, vim, tmux等工具。