本文主要是介绍gentoo安装笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近比较闲,所以挑战一下自己,在自己的台式电脑上安装gentoo
下面记录了我亲自安装的步骤,作为以后我再次安装时参考所用。
整体步骤
一般来将一个linux发行版的安装步骤其实大体上都差不多,基本分为一下几步:
1. 制作启动盘
2. 从启动盘启动进入安装流程
3. 硬盘分区
4. 复制文件到分区
5. 安装引导软件(现代linux基本上都是grub)
6. 进行一些初次启动的基础设置
7. 重启进入新系统
8. 对新系统进行个性化设置
每一步都有各自的难点。不过以我的经验来看,最劝退的在硬盘分区这一步,容易搞坏。
另外对新系统进行个性化设置的时候,可能会发现某些地方和用户预期的不太一样,也可能导致劝退。
制作启动盘
大多数发行版都是通过自己的启动盘启动后进入安装步骤。而gentoo可以用任意的linux启动,然后通过chroot切换到安装分区,再进行后续步骤。但是考虑到gentoo安装过程中可能会用到一些自己特定的工具,所以我考虑后还是决定使用gentoo官方的启动盘。
在
Downloads – Gentoo Linux
我下载了Live GUI USB Image
在
Rufus - 轻松创建 USB 启动盘
下载了rufus工具。
然后用rufus把刚才下载的gentoo镜像烧录到了u盘上。和其他的发行版不同,gentoo必须要选dd模式烧录出来的usb启动盘才好用。
把刚刚制作好的usb启动盘插入usb口,然后开机,狂按delete键进入bios设置,选择usb存储介质启动,就可以从刚刚制作好的usb启动盘启动。
连通网络
因为gentoo在安装过程中要下载很多文件,所以必须要连通网络。
因为我选的是Live GUI,所以开机启动以后,进入了KDE桌面,会自动识别计算机硬件以及网络。因为我的机器在路由器后面,而路由器开启了dhcp,所以网络变成了自动配置,直接就连接到了网络上。
没错,很多市面上的教程都是讲解的minimal installation CD字符界面的启动盘如何开始配置网络,因为我用的Live GUI,网络配置这步省掉了。
在左下角的开始菜单可以启动浏览器,通过浏览器浏览网页,可以在线阅读安装教程,比纯字符界面的启动盘操作方便多了。
同样通过左下角的开始菜单,启动一个命令行窗口。因为是KDE桌面,所以konsole还可以开启多标签页,可以在一个标签里进行安装,在另一个标签里输入其他命令。这样方便多了。
也许有人认为在纯命令行的minimal installation CD系统下调试网络是一件水平更高的事情,但是我还没到那种水平,先从GUI开始。
在
Gentoo Linux安装教程20220218(长期更新维护)_gentoo安装-CSDN博客
的作者选择从minimal installation CD启动,通过命令行完成网络配置,然后启动ssh, 通过ssh远程操作来完成所有的后续步骤,这个方法适用于服务器的管理。
我这边是桌面系统,而且既然已经可以通过minimal installation CD启动,也就是说可以物理接触到这台电脑了。那也没有必要非得把安装系统的工作也通过远程来处理,完全可以直接操作电脑完成系统安装,然后在安装好的系统里开启ssh,再通过ssh远程操作完成个性化配置的步骤。
硬盘分区
我的电脑上有多块硬盘,专门拿出一块来做linux系统用,所以我选择全盘安装,为此,我拆开机箱,把其他几块硬盘的sata线拔了,以免误操作把其他几块硬盘上的数据破坏了。
接下来进入实质的硬盘分区步骤。硬盘分区是十分危险的操作,必须要root权限,在gentoo Live GUI环境里,通过sudo来提权执行是不需要输入密码的,但是如果想通过su命令直接切换为root却不行。
我参考了几个文章
How to install Gentoo with UEFI LUKS LVM and systemd | amedeos home
Installing Gentoo – Alice's Digital Notebook
How To Install Gentoo With LVM and Disk Encryption | NKLY
关于硬盘分区,我采用的方案是GPT方式。搭配lvm和btrfs,lvm和btrfs的优势这里就不介绍了,读者可以去自行查阅相关资料。
konsole中输入命令
lsblk
输出结果大概如下
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 953.9G 0 disk
├─sda1 8:1 0 100M 0 part
├─sda2 8:2 0 16M 0 part
├─sda3 8:3 0 292.2G 0 part
├─sda4 8:4 0 680M 0 part
└─sda5 8:5 0 660.9G 0 part
sdb 8:16 0 238.5G 0 disk
├─sdb1 8:17 0 512M 0 part /boot
└─sdb2 8:18 0 238G 0 part
├─system-swap 254:0 0 2G 0 lvm
└─system-root 254:1 0 236G 0 lvm /
sdc 8:32 0 3.6T 0 disk
├─sdc1 8:33 0 16M 0 part
└─sdc2 8:34 0 3.6T 0 part
nvme0n1 259:0 0 465.8G 0 disk
├─nvme0n1p1 259:1 0 16M 0 part
└─nvme0n1p2 259:2 0 465.7G 0 part
可以看到有sda,sdb,sdc共3个sata硬盘,另外还有一个nvme0n1的nvme 硬盘,从容量和分区上上可以判断到底哪块硬盘是要用的。
当然,也可以使用
fdisk -l
列出的信息会更多。
初步分区
我选择了/dev/sdb作为安装硬盘,那么使用命令
fdisk /dev/sdb
进入分区模式
按m可以弹出提示
按l可以列出已有的分区
按d可以删除分区
按p可以打印出分区表,也就是可以列出各个分区的信息
因为我要使用全盘安装,所以先用d删除所有分区,删除所有分区后按l查看分区情况,然后按n增加新分区。我创建了以下几个分区:
bios启动分区2M,fat格式
boot分区512M,fat32格式
其他硬盘空间划分为一个lvm卷
在这个lvm卷中创建一个swap分区作为系统的swap
把这个lvm卷剩余的空间创建一个btrfs分区作为/分区,在这步其实也可以创建多个分区分别给/,/usr,/home等,但是这不是十分重要的,所以我没有费心处理。
fdisk有点古老,可以设置的内容也比较少,比如卷标之类的不能设置,也可以使用parted命令
parted -a optimal /dev/sdb
进入分区模式后,可以按照以下命令创建分区。
如果是UEFI模式启动
# Make new GPT partition table
mklabel gpt# Create an UEFI ESP
mkpart primary 1MiB 257MiB
name 1 efi
set 1 esp on# Create a boot partition
mkpart primary 257MiB 513MiB
name 2 boot
set 2 boot on# Create a LVM partition
mkpart primary 513MiB 100%
name 3 data-encrypted
set 3 lvm on# Check that everything is correct and quit
print
quit
如果是BIOS模式启动
# Make new GPT partition table
mklabel gpt# Create a BIOS Boot partition
mkpart primary 1MiB 3MiB
name 1 biosboot
set 1 bios_grub on# Create a boot partition
mkpart primary 3MiB 259MiB
name 2 boot
set 2 boot on# Create a LVM partition
mkpart primary 259MiB 100%
name 3 data-encrypted
set 3 lvm on# Check that everything is correct and quit
print
quit
BIOS模式MBR分区不支持2T以上的硬盘,所以现在即使是创建分区也都是用UEFI模式GPT分区。这里之所以有区别,仅仅是考虑到将来启动的时候主板采用的启动模式。说到底还是建议使用UEFI模式。
创建加密的lvm卷组
剩下的第3个分区我打算创建lvm,所以操作有所不同。
如果你希望在lvm上开启加密,那么
cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/sdb3
会提示你是否创建加密分区,输入yes确认,然后按照提示输入加密的密码,这个分区就被加密了。然后使用命令
cryptsetup luksOpen /dev/sdb3 lvm
在这个加密分区上创建lvm卷,这里会提示你输入加密的密码,把刚才的密码输入进去。注意这个命令最后的参数“lvm”这个成为了设备名,所以下一步使用命令
pvcreate /dev/mapper/lvm # /dev/mapper是系统指定的,lvm就是刚刚创建的加密分区名
创建lvm的物理卷
输入命令
vgcreate system /dev/mapper/lvm # 在/dev/mapper/lvm物理卷上创建卷组system
创建卷组
创建非加密的lvm卷组
我个人使用的电脑没必要加密,所以我跳过加密这一步,直接创建lvm物理卷。
pvcreate /dev/sdb3
输入命令
vgcreate system /dev/sdb3 # 在/dev/sdb3物理卷上创建卷组system
创建逻辑卷组
创建lvm分区
不论是加密还是不加密,我创建的卷组名都叫system。卷组创建好以后就可以创建分区,输入命令
lvcreate -L 8G -n system-swap system # 在system卷组内创建system-swap分区
lvcreate -l 100%VG -n system-root system # 在system卷组内创建system-root分区,使用剩余的全部空间
格式化分区
创建分区的时候是不能指定文件系统的,所以创建分区完成后,使用以下命令格式化对应分区创建文件系统
mkfs.vfat /dev/sdb1 # 创建fat文件系统用于bios启动
mkfs.vfat -F32 /dev/sdb2 # 创建fat32文件系统作为/boot分区
这里我采用了fat32格式的boot分区,也可以用ext4的。无论如何boot分区都必须是一个单独的primary分区,否则启动容易失败。
处理swap分区
mkswap /dev/mapper/system-swap # /dev/mapper是lvm的固定路径,system-swap是刚才创建的lvm逻辑卷
swapon /dev/mapper/system-swap # 启用swap分区
处理根分区
mkfs.btrfs -L root /dev/mapper/system-root # /dev/mapper是lvm固定路径,system-root是刚刚创建的逻辑卷
mount /dev/mapper/system-root /mnt/gentoo # 把格式化后的分区挂在到一个目录上备用,通常是/mnt/gentoo
如果说这块硬盘之前安装过其他的linux系统,并且已经分好区了,那么前面的分区操作都不需要,直接执行这里的格式化就可以,只要用lsblk和blkid命令查看一下分区情况,确保mkfs时选择正确的分区即可。
安装stage3
很多安装教程都是建议用户使用curl和wget来下载stage3的压缩包。因为我用的是Live GUI,所以我用浏览器到镜像站点下载的stage3的压缩包。我下载的是desktop profile openrc。这是因为我考虑到将来可能会用到FreeBSD,而systemd和FreeBSD不兼容,迁移的时候会麻烦。
stage3的压缩包下载以后,放到/mnt/gentoo目录,然后解压缩
tar xpvf stage3*.tar.xz
因为用的是Live GUI,所以也可以用图形界面的工具解压缩到/mnt/gentoo目录
这样stage3的文件内容就都解压缩到/mnt/gentoo目录下了,而/mnt/gentoo其实是mount的/dev/sdb3这个lvm中的/分区。所以理论上讲,只要把grub安装到/dev/sdb上,再设定好fstab,其实可以重启到这个stage3的系统中了。
但是这样的话后续的操作就要全部在stage3中进行,这样就失去了图形界面,无法一边安装一边上网查资料。而且因为还有一些其他参数没有设定好,比如时区、语言等等,会导致更多的不便。所以我还是坚持在Live GUI中完成后续的操作。
校对时间
因为gentoo安装过程中会下载很多文件,而且会对比文件的新旧,如果计算机本身的时间有问题,那就可能会在对比文件新旧的过程中产生一些不必要的麻烦,这里可以用命令行对一下时间
#自动或者手动设置时间
ntpd -q -g #自动
date 021822162021 #手动设置,我这时间2021年11月27日19点16分
如果计算机的时间没问题,不进行这步操作也没事
设置镜像站点
为了改善下载的速度,我们把镜像站点选为离我们较近的站点
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
虽然是字符界面,但是会弹出老式的那种字符界面的图形菜单供选择,根据自己的网络状态选取就好,比如说我选的是南京大学的镜像。
nano /mnt/gentoo/etc/portage/make.conf
也可以直接编辑/mnt/gentoo/etc/portage/make.conf这个文件,里面增加内容
GENTOO_MIRRORS="http://mirrors.nju.edu.cn/gentoo/"
配置编译选项
调整编译选项的方法是:编辑配置文件
nano /mnt/gentoo/etc/portage/make.conf
里面的内容
编译优化选项
Linux Manpages Online - man.cx manual pages
COMMON_FLAGS = "-march=native -mtune=native -O2 -pipe"
# -march=native -mtune=native 针对当前cpu优化
# -O2 中等优化,比较稳妥,如果要激进的优化可以使用-O3,但是会有一些危险的汇编代码可能会导致计算出错
# -
pipe 在编译期使用管线IO而不是临时文件,通过增加内存占用的代价加快编译速度
MAKEOPTS = "-j17" # 采用多线程编译,加快编译速度。根据CPU线程数和内存填写,数字可以是CPU核心数+1,但是数字不能超过内存G数的一半(建议用CPU核心数+1和内存G数两者小的那个数字)
CFLAGS="${COMMON_FLAGS}" # C编译器的优化选项
CXXFLAGS="${COMMON_FLAGS}" # C++编译器的优化选项
FCFLAGS="${COMMON_FLAGS}" # Fortran 9x编译器的优化选项,其实和FFLAGS没啥差别
FFLAGS="${COMMON_FLAGS}" # Fortran编译器的优化选项
还可以通过命令
cpuid2cpuflags
检测当前cpu支持的指令集,并通过在/mnt/gentoo/etc/portage/make.conf中增加对应内容
CPU_FLAGS_X86=“aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 vpclmulqdq”
开启对该cpu所拥有指令集的支持
本地化选项
Localization/Guide - Gentoo wiki
L10N="en en-US zh zh-CN" # 增加额外的语言支持
LINGUAS="en en_US" # 对于这里的语言不提供额外支持
USE选项
gentoo通过USE选项来调整软件在编译和配置时的参数,在这个配置文件中可以增加一些全局参数。而如果想在各个软件包中单独设置参数,则可以在/etc/portage/package.use/目录下的软件包名的文件来调整。
对于全局而言,一般都要用的选项
USE="networkmanager pulseaudio alsa spice usbredir udisks offensive bash-completion opengl opencl vulkan v41 x264 x265 theora policykit vaapi vdpau lto cec wayland X libressl xattr dbus xft"
# bash-completion
添加bash提示
# -jit
t禁用JIT,因为JIT可能和hardened冲突
# libressl 替代openssl,因为openssl冒出来了心脏流血漏洞,确实有替代的需要
# vim-syntax 安装配套的vim语法高亮文件
# xattr
针对额外的文件系统特性提供支持
# alsa 增加对alsa声音系统的支持
# dbus
启用dbus对系统的支持
# -gnome -gnome-keyring
去掉对GNOME的支持
# -kde
去掉对KDE的支持
# -pulseaudio
去掉对Pulseaudio的支持
# xft
启用X FreeType支持
# X
启用X11支持 ,虽然新一代的图形系统大家都在逐步切换到wayland,但是有时对X11的支持是必不可少的,而且如果文件中有VIDEO_CARDS和
INPUT_DEVICES这两个选项,启用对X11的支持也是有好处的
在USE选项中,还可以增加hardened参数来提高安全性,不过这额外的安全性可能会在未来带来使用上的不便,比如SELinux
加固的Gentoo (Hardened Gentoo) - Gentoo wiki
其他选项
其实还可以添加VIDEO_CARDS和
INPUT_DEVICES这两个选项,有助于X系统的安装。不过因为本来我就是用的Live GUI,都已经识别好了,而且我用的是台式机,不需要针对触摸板或者指点杆做特殊处理。
ACCEPT_LICENSE=“*”
# 对任何软件的许可协议都接受,这样在emerge的时候不会需要你时不时的去接受一些奇奇怪怪的许可协议
复制DNS
因为当前的Live GUI已经识别了网卡,网络都已经配置好了,所以直接把当前系统的DNS设置复制到新的stage3里
cp -L /etc/resolv.conf /mnt/gentoo/etc/
挂载文件系统
mkdir /mnt/gentoo/boot
mount /dev/sdb2 /mnt/gentoo/boot
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sdb1 /mnt/gentoo/boot/efi
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
#mount --make-rslave /mnt/gentoo/sys #安装systemd需要
mount --rbind /dev /mnt/gentoo/dev
#mount --make-rslave /mnt/gentoo/dev #安装systemd需要
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
除了刚刚创建的boot分区以外,还要把bios启动的EFI分区也要挂载上去。另外proc、sys、dev也挂载上去。
我选择的是openrc,所以对于sys和dev不需要太多处理,如果选择systemd,还要额外处理一下。
对于shm这个共享内存,一般来讲不需要处理,但是保险起见,我处理了一下。
切换到stage3
到这里就可以切换到刚刚解压缩出来的stage3了
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
通过chroot命令,当前命令行——也就是konsole里的标签页——也就切换到了新解压缩出来的stage3系统中。接下来的所有操作其实都是在stage3新系统里的操作
设置时区
通过以下命令可以查看可用的时区
ls /usr/share/zoneinfo
如果有子目录的话,意味着里面还有更多的时区选项,比如
ls /usr/share/zoneinfo/Asia
就可以看到Shanghai
根据可选的时区设置时区,比如说我国使用的是
echo "Asia/Shanghai" > /etc/timezone
emerge --config sys-libs/timezone-data
源同步
设置源
编辑配置文件
nano /etc/portage/repos.conf/gentoo.conf
将
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
修改为
sync-uri = rsync://mirrors.nju.edu.cn/gentoo-portage
这样就把官方的gpg-key源切换为南京大学的镜像。
执行源同步
emerge-webrsync # 下载Gentoo ebuild数据库快照,稍陈旧
emerge --sync # 更新Gentoo ebuild存储库,最新的。这步网络比较慢,具体要多久视你的网络情况而定,也是切换本地源的原因
设定系统方案
eselect profile list # 列出备选的系统方案
eselect profile set <prof-num>
首先是列出备选的系统方案,然后根据清单选择
更新系统
emerge --ask --verbose --update --deep --newuse @world #更新@world集(系统升级、profile构建stage3、use标记变化时需要)
emerge -avuDN @world # 也可以用缩写
系统更新以后,你的stage3系统就相当于全部重新编译了一遍,编译优化参数就是之前设置的COMMON_FLAGS。现在这个stage3系统的速度应该是有一定的提升的,不能说很大,因为目前这个系统里面对cpu占用比较多的程序暂时还没有。
安装cpuid2cpuflags
在Live GUI中,cpuid2cpuflags这个工具是有的,但是到了stage3里面,这个工具默认是没有自带的,为了后续可能用到,这里要安装一下
emerge --ask app-portage/cpuid2cpuflags
设置locale
nano /etc/locale.gen
里面的内容
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN.GB2312 GB2312
然后运行命令
locale-gen # 生成本地化文件
eselect locale list # 列出本地化选项
eselect locale set <locale-num> # 根据清单选择本地化方案
env-update # 更新系统环境
source /etc/profile # 更新当前bash
export PS1="(chroot) $PS1" # 当前bash提示符被重置后,再改为合适的提示符
更新gcc
gcc-config --list-profiles # 查看备选的gcc
gcc-config 2 <gcc-num> # 选取合适的gcc版本
在2024年2月,候选的gcc只有1个版本,所以也无所谓优化了。
更新过gcc后,有必要更新一下系统,新版的gcc一般来说生成的二进制文件要快一些。
emerge -avuDN @world
定制内核
更新固件
emerge --ask sys-kernel/linux-firmware # 更新固件
更新intel cpu的微代码
echo "sys-firmware/intel-microcode initramfs" > /etc/portage/package.use/intel-microcode
emerge --ask sys-firmware/intel-microcode
安装内核源代码,注意不是内核
emerge --ask sys-kernel/gentoo-sources
安装好内核源代码以后到/usr/src目录下看看找到源代码的目录,后面要用到
安装内核编译工具
emerge --ask sys-kernel/genkernel
调整内核参数
cd /etc
cp -p genkernel.conf genkernel.conf.ORIG # 备份旧的配置文件
nano genkernel.conf
/etc/genkernel.conf的内容中
MAKEOPTS="$(portageq envvar MAKEOPTS)"
LVM="yes"BTRFS="yes"
LUKS="yes" # 如果之前选择了加密的lvm就是比需的,否则不必DEFAULT_KERNEL_SOURCE="/usr/src/linux-6.6.13-gentoo" # 就是之前安装的源代码的目录
其他的选项看情况
安装硬件探测工具
emerge --ask sys-apps/pciutils # 安装包含lspci命令的sys-apps/pciutils包
配置并编译内核
genkernel --menuconfig all
安装额外的文件系统支持
emerge --ask sys-fs/btrfs-progs # btrfs支持
echo "sys-fs/lvm2 lvm" > /etc/portage/package.use/lvm2 # 对lvm的支持调整一下参数
emerge --ask sys-fs/lvm2 # 对lvm的支持
emerge --ask sys-fs/ntfs3g # 对ntfs的支持
每次添加文件系统支持后会有提示,要求用rc-update添加到系统服务中,按照提示操作
如果需要对其他文件系统的支持,也可以添加
安装grub
在/etc/portage/make.conf中增加grub的配置内容
GRUB_PLATFORMS="efi-64" # x86_64 UEFI支持,目前最流行的
# GRUB_PLATFORMS="efi-32" # x86 i386 UEFI支持,因为32位cpu时代基本没有UEFI启动的设备,所以该选项其实没什么用武之地
# GRUB_PLATFORMS="pc" # x86 i386 BIOS MBR支持,古老
# GRUB_PLATFORMS="pc efi-64" # x86 i386 BIOS MBR支持,同时支持x86_64 UEFI,也就是同时支持老旧的和新的
# GRUB_PLATFORMS="pc efi-64 efi-32" # 同时支持:x86 i386 BIOS MBR,x86_64 UEFI ,x86 i386 UEFI
增加grub对lvm的支持
echo "sys-boot/grub device-mapper" > /etc/portage/package.use/grub
编译grub
emerge --ask sys-boot/grub
把grub安装到引导存储器上
grub-install --target=x86_64-efi --efi-directory=/boot /dev/sdb
我是在一整个硬盘上安装,不用grub做多操作系统启动,所以没有让grub探测其他操作系统。当我使用多系统时,我会在开机时按delete进入bios选择启动的硬盘,以此来启动不同的操作系统
找到加密lvm的UUID
blkid
该命令会列出各个存储设备的信息,其中最重要的是UUID
配置grub
/etc/default/grub
里面的内容
GRUB_CMDLINE_LINUX_DEFAULT="dolvm crypt_root=UUID=<crypt-partition-uuid>
crypt_swap=UUID=<crypt-swap-uuid>
root=/dev/mapper/system-root"
其中dolvm支持lvm文件系统格式,crypt_root和crypt_swap支持加密卷,root支持根目录
生成grub配置文件
grub-mkconfig -o /boot/grub/grub.cfg
生成fstab
linux系统启动的时候会读取/etc/fstab文件并按照其内容挂载文件系统。内容如下
/dev/system/root / btrfs defaults 0 0
/dev/system/swap swap swap defaults 0 0
UUID=A84A-FDFE /boot vfat utf8,codepage=936 0 2
UUID=BA13-AD23 /boot/efi vfat utf8,codepage=936 0 2
也就是之前对硬盘的分区所对应的几个分区。其他硬盘上的分布如果需要挂载,可以在系统启动后通过其他方法挂载,而不建议在fstab中增加内容,因为那些设备一旦变动可能会导致系统不能启动。另外由于多个硬盘的存在,如果增减硬盘,那么/dev/sdx中的x可能会变,所以fstab里也要避免使用这种可能会变的设备名。
其中/boot的UUID就是之前命令blkid输出的挂载到/boot的/dev/sda2的UUID,每次格式化mkfs之后都会生成一个新的。UUID是不变的。
到这里stage3就已经安装到硬盘上,而且启动器grub也安装好了,接下来要进行一些配置
初次启动前配置
配置网络
使用networkmanager管理网络
NetworkManager - Gentoo wiki
emerge --ask net-misc/networkmanager # NetworkManager支持,网络连接管理服务,自动识别网卡,自动dhcp
rc-update add NetworkManager default # NetworkManager随系统启动
rc-update add sshd default #启用开机ssh
我是很反对使用netifrc和dhcpcd的,因为networkmanager更适合桌面电脑
有了networkmanager开机启动以后,每次开机网络都会自动配置,自动联网
设置主机名
echo "your_host_name" > /etc/hostname
有一些文章建议编辑/etc/conf.d/hostname,我不建议
另外还要设定一些特定的主机名对应的ip,可以编辑/etc/hosts,一般来讲都是用来指定内网地址或者绕开DNS污染的
配置系统
计划任务
emerge -av sys-process/cronie # 计划任务
rc-update add cronie default # 计划任务随系统启动
一些管理工具
emerge -av app-portage/gentoolkit # gentoo的一些工具
emerge -av app-admin/sudo # sudo支持
设置root密码
第一次开机登录的时候使用该密码登录
passwd root
退出以后就可以重启了
初次启动的配置
初次启动的时候,直接从grub菜单选择启动内核即可。
启动后以root登录,密码刚才设置过了
然后创建一个新的普通用户
useradd -m -G users,wheel,audio,video,portage -s /bin/bash your_user_name
日常情况下可以以这个普通用户登录来使用
安装KDE
此时仍然是root在字符界面登录的状态。
KDE - Gentoo wiki
SDDM - Gentoo wiki
emerge --ask kde-plasma/plasma-meta
emerge --ask kde-plasma/kdeplasma-addons
emerge --ask kde-apps/kwalletmanager
emerge --ask kde-plasma/kwallet-pam
emerge -1 kde-cli-tools
emerge --ask kde-apps/kde-apps-meta
usermod -a -G video sddm
emerge --ask gui-libs/display-manager-init
rc-update add display-manager default # SDDM 开机启动
如果哪个包在安装后提示要进行相应的操作,记得完成操作。
这个过程中,ffmpeg会自动安装,另外KDE自带的媒体播放器也会安装,多媒体也就解决了。
另外,KDE桌面环境自带了一个Falkon的浏览器,其实就是以前的qupzilla。
到了这个时候,英文的显示和使用是没有问题的,但是中文显示是小方块,而且没法输入中文。
完整中文化
安装字体
emerge --ask media-fonts/noto-cjk
安装以后,KDE的应用程序就能正确显示中文了。
安装fcitx输入法
emerge --ask app-i18n/fcitx app-i18n/kcm-fcitx app-i18n/fcitx-configtool
打开系统设置文件
nano /etc/profile
在里面追加
fcitx &
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
然后在KDE控制面板中设置为中文,从KDE桌面注销后,再次登录KDE后就全都是中文了,而且可以正常输入中文。
但此时SDDM登陆界面还是英文
修改系统locale设定
找到/etc/env.d/02locale文件,将LANG变量的值由en_US.utf8更改为zh_CN.utf8。这样即使用户没有登录,SDDM显示的也是中文了。
这篇关于gentoo安装笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!