曾经体验过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等工具。