这期笔记继续安装Gentoo,上期咱们已经到了能够进入新环境了,这意味着就是将原来的安装CD或其它介质改成硬盘上安装系统了,话很少说,立刻开始!html
因为我已经中断了安装,对于已经能够进入新环境的用户来讲,这个能够经过恢复安装来继续安装Gentoo。linux
首先先挂载根分区:web
而后复制DNS信息:数据库
若是以前已经复制了,它会提示你是否覆盖文件,回车肯定便可。框架
挂载必要的文件系统:工具
进入新环境:优化
之后的安装过程当中被中断了,都要经过以上的这些命令来恢复安装。网站
接下来,是安装主 ebuild 版本库 (repository) 快照.这个快照包含一组文件,包括通知Portage中有关可用软件的标题(用于安装),系统管理员能够选择哪些配置文件,软件包或 profile 特定新闻 (news) 项目等。ui
这将从Gentoo的一个镜像中获取最新的快照(天天发布)并将其安装到系统上:spa
稍等一下子就行了。
若是须要最新更新的包(1小时之内),可使用emerge --sync,这个命令将使用rsync协议来更新 Gentoo ebuild 数据库(以前经过emerge-webrsync得到的)到最新状态。
emerge --sync
在慢速的终端上,好比一些framebuffer或者串口控制台,建议使用--quiet
选项来加速这个进程:
emerge --sync --quiet
当同步Portage ebuild 数据库到系统时,Portage 可能警告用户相似于下面的信息:
新闻条目的建立是为了提供一个通讯媒介,经过rsycn树来推送重要的消息给用户。要管理它们,使用eselect news。eselect应用程序是一个Gentoo应用程序,它容许一个通用的管理界面完成对系统的变动和操做。在这里,要用到eselect的news
模块。
而后阅读新闻条目:
带着purge
新闻能够删除,一旦他们已经被阅读,并将再也不重读。
有关新闻阅读器的更多信息可经过其手册页面得到:
man news.eselect
配置文件是任何一个Gentoo系统的积木。它不只指定USE、CFLAGS和其它重要变量的默认值,还会锁定系统的包版本范围。这些设定全是由Gentoo的Portage开发者们来维护。
使用eselect,你能看到当前系统正在使用什么配置文件,如今来使用profile
模块:
注:命令的输出只是一个例子,并随着时间的推移而发展。
注:配置文件升级不能掉以轻心。在选择初始配置文件时,请确保使用对应于同一版本做为第3阶段最初使用的(例如13.0)。每一个新的配置文件版本都是经过一个包含迁移说明的新闻项目来宣布的。在切换到新的配置文件以前,必定要阅读并遵循它们。
能够从刚才的新闻条目第9条看出初始配置文件版本已经更新到17.1了,而且推荐选有desktop那项,可是我选择第16项,由于从上图能够看到17.0版本的被“*”(星号)所引用,说明目前文件版本为17.0。
在这一点上,若是选择了新的系统profile,则更新系统的 @world set 是明智的,以即可觉得新profile构建系统。
提示:若是选择了桌面环境配置文件,则此过程可能大大增长安装过程所需的时间量。 时间紧迫的人能够经过这个“经验法则”工做: 配置文件名称越短,系统的特定属性越少@world set; @world设置的特定性越低,系统将须要的软件包越少。 换一种说法:
选择default/linux/amd64/13.0
须要更新的软件包很是少,而选择default/linux/amd64/13.0/desktop/gnome/systemd
因为init系统正在从OpenRC转换为Systemd,而且GNOME桌面环境框架将被安装,所以须要安装许多包。
一共编译175个软件,这个须要的时间很长,这将花费你时间至关于差很少一个下午了(这个时间可能随着之后新版本而变长),耐心等待吧!!!
终于编译完了,我昨晚不当心在因为电脑卡死缘由致使从新以前的步骤,搞的我到如今才编译完,这已是次日的早上了。
早上好,如今继续安装Gentoo。
USE是Gentoo为用户提供的最具威力的变量之一,不少程序经过它能够选择编译或者不编译某些可选的支持。
大多数的发行版会使用尽量多的支持特性编译它们的软件包,这既增长了软件的大小也减慢了启动时间,而这些尚未算上可能会涉及到的大量依赖性问题。Gentoo可让你本身定义软件编译的选项,而这正是USE要作的事。
如今先检查下当前活动的USE标记:(“|”是Shift+“\”键敲击出的符号)
能够在系统的/usr/portage/profiles/use.desc中找到可用的USE标记的完整描述:
使用↑和↓键来滚动,而且能够按q退出。
咱们能够设置一个支持DVD、ALSA,以及CD录制的基于KDE系统的USE设置:
把上图的红框部分添加进去,而后Ctrl+X,按Y而且回车便可完成保存并退出。
为系统选择时区:
假设要选择的时区是Asia/Shanghai:
echo "Asia/Shanghai" > /etc/timezone
上面我选的时区是guangdong,这个能够随便设置,尽可能向“北上广深”设置。
接下来,从新配置sys-libs/timezone-data包,将会为咱们基于/etc/timezone条目更新/etc/localtime文件。/etc/localtime文件用于让系统的C类库知道系统在什么时区:
系统应该支持的地区应该在/etc/locale.gen中提到:
按照上面的红框部分添加进去,而后Ctrl+X,按Y而后回车便可完成保存并退出。
注:咱们强烈建议使用至少一个UTF-8格式的地区设置,由于有些应用程序可能须要它。
下一步是运行locale-gen。它将生成/etc/locale.gen文件中指定的全部地区:
要验证所选择的地区当前可用,运行locale -a:
等完成后,咱们就来设定系统级别的区域设置:
额,我如今才发现zh-CN.UTF-8不见了,按道理是应该出现了,可是却检测不到没法进行应用,因此我就不在这里纠结了,咱们依然选择第5项,若是真的选择了zh-CN.utf8,可能后面的步骤会出现乱码,为了避免让乱码,因此咱们选择第5项。
若是上面没法应用zh-CN.utf8,这个还能够经过人工编辑/etc/env.d/02locale文件来完成:
LANG="zh_CN.UTF-8"
确保设定了一个地区,否则系统会在后面安装中的内核编译和部署其余软件时显示警告和错误。
如今从新加载环境:
Linux内核是全部发行版的核心,它位于用户程序和系统硬件之间,Gentoo提供给用户一些可选的内核源码。
针对基于amd64-系统的Gentoo,建议使用包 sys-kernel/gentoo-sources。
选择一个合适的内核并使用emerge来安装它:
下载速度真快,很快就行了,下载完毕后将会自动安装。
这将在/usr/src/中安装Linux内核源码,并有一个符号链接叫做linux将指向安装的内核源码:
如今是时候来配置和编译内核源代码了。有两种方法:
1.手动配置并生成内核。
2.一个叫做genkernel的工具用来自动化生成并安装Linux内核。
咱们在这里解释作为默认选择的手动配置,它是优化环境的最好方式。
手动配置内核常常被Linux用户认为是最困难的步骤。事实并不是如此——可是当您手动配置几回内核以后,你就不会再以为它有多么难了。
不管如何,有一件事是真实的:当手动配置内核时,了解(硬件)系统是相当重要的。
但对于新手来讲,建议先选用genkernel来自动配置内核,慢慢熟练后再尝试手动配置内核,不得不说的是手动配置内核具备定制性。
不得不说做者我也曾经倒在配置内核这一块,有时候连自动配置内核也没法配置,经缘由查明是我以前的步骤有些出入,但最终解决了,如今是没有什么问题的。
因此本做者也是想避免工做量太多,因此使用genkernel,由于有时候手动配置内核可能少配置一些关键的东西。
若是手动配置看起来太恐怖,建议使用genkernel。它将自动配置并编译内核。
介绍:genkernel配置内核的工做原理几乎和安装CD配置的内核彻底一致。也就是说当使用genkernel创建内核,系统一般将在引导时检测所有硬件,就像安装CD所作的。由于genkernel不须要任何手动内核配置,它对于那些不能轻松的编译他们自动内核的用户来讲是一个理想的解决方案。
首先emerge sys-kernel/genkernel这个ebuild:
接下来,编辑/etc/fstab文件来使包含有第二个值为/boot/的那条的第一个值指向到正确的设备:
根据红框添加上去,配置/boot挂载点,而后Ctrl+X,按Y再按回车便可完成保存并退出。
注:若是引导分区不是使用ext2或ext3做为文件系统,它可能须要使用genkernel --menuconfig all来手动配置内核,并在内核中添加对这个具体文件系统的支持(好比:不是做为一个模块)。LVM2用户可能要做为参数来添加--lvm
。
如今,运行genkernel all来编译内核源码。值得注意的是,使用genkernel编译一个内核将支持几乎所有的硬件,这将使编译过程须要一阵子来完成!
若是出现如下状况,请看下面的解决方案(我不保证是否是终极解决方案):(若是genkernel命令可用,没有任何问题的话,请愉快地跳过此过程。)
上面说genkernel进入子程序没法找到该命令,这说明应该是genkernel启动失败,咱们从新启动genkernel看看。
上图说明两个红框内的问题是须要解决的,不然genkernel将没法使用相关命令。
一样再次从新输入命令将会出现如下:
如下是我在wiki中找到的解决方案,先尝试下:
添加上面的红框里的内容后请按Ctrl+X,而后按Y再回车键便可完成保存并退出。
而后etc-update:
而后按-3,再按回车键覆盖:
结果仍是行不通啊!!!有一个论坛这样说:使用自动配置内核有可能自动配置到不想要的东西,这也可能会产生相关的影响!
还有一种命令能够尝试下(我目前认为的最终解决方案):
输入u接受,再次emerge这个genkernel:
等待安装完成,这须要一下子时间。
终于下载完毕了,纠结了我比较久的时间,终于成功下载并安装了genkernel,这个关于genkernel的相关问题的解决过程到此能够结束了!
Tips:若是你的genkernel也是上面的问题的,应该是genkernel没法正常下载,因此命令没法使用,不妨尝试下我上面的方法吧!
我就是倒在了这个genkernel没法编译的问题上,还好已经解决而且从新下载安装了,不然只能手动编译了,可是手动编译的话若是没有后面的initramfs文件,这可能也会致使系统没法正常启动,这个文件一样须要genkernel来下载的。
因为我不采用手动编译,因此能够参考下:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel,这里详细介绍手动编译内核的步骤。
(注:在内核参数选择的过程当中,输入/能够进行搜索,空格进行选择和反选,按两下esc进行返回上一级目录,方向键左右能够切换到save和load,分别进行内核配置文件的保存和导入。默认保存为.config(我建议使用默认文件名,),保存的时候能够输入文件名,以备下次编译内核导入,省时省力。内核配置文件保存目录在/usr/src/linux下。)
困扰了我许久的genkernel问题终于解决了,固然是到了激动人心的时候了,如今开始正式编译内核了。
(注:若是引导分区不是使用ext2或ext3做为文件系统,它可能须要使用genkernel --menuconfig all来手动配置内核,并在内核中添加对这个具体文件系统的支持(好比:不是做为一个模块)。LVM2用户可能要做为参数来添加--lvm
。)
从新输入很是熟悉的genkernel all:
编译过程十分漫长,请耐心等待,先去睡一晚觉正,明天再来查看编译结果。(其实我也不知道究竟须要多少时间,仍是那句话,耐心等待吧!)
(用时只是一个小时多点)
我看到了内核已经编译完成,但也出现了相关的警告,通常状况下出现警告请选择无视,虽有风险但通常是没有什么问题,只有出现ERROR才要必须处理的问题。
Tips:内核能够重复编译,不会影响安装过程的。(你也能够经过genkernel --menuconfig all来手动配置,一样具备定制性,不过这是半自动编译方法。)
一旦genkernel完成,将建立一个内核、所有的模块和初始化内存文件(initramfs)。咱们将在文档后面配置引导器的时候使用这个内核和initrd。记下内核和initrd名字做为编辑引导器配置文件的信息。initrd将在后执行硬件检测以后、“真实”系统启动以前当即启动。
到了这里配置内核环节就已经结束,剩下的安装步骤请见下一期的笔记!
本文将会同步到公众号qq596044192中,有兴趣的能够关注一下:
2018-09-03