Linux Gentoo 安装手册

Linux Gentoo 安装手册

Linux Gentoo 安装手册

 次点击
49 分钟阅读

一.前期准备工作

下载安装镜像 install-amd64-minimal download
刻录镜像到U盘(我用的是rufus):rufus download
注意选择GPT格式,然后刻录,ISO模式或者DD模式都可以,建议用ISO模式

ls /sys/firmware/efi/efivars	#测试是否是UEFI模式启动
net-setup #连接无线网络 有线网络忽略
ping -c 3 www.baidu.com			#测试网络

二.硬盘分区

bash fdsik /dev/sdb   #详请参考fdsik手册

使用lvm文件系统

     pvcreate /dev/sdb3
     vgcreate cwx /dev/sdb3
     lvcreate -L 113G -n root cwx

三.创建文件系统

mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
mkswap /dev/sdb4
swapon /dev/sdb4

四.挂载分区

mkdir /mnt/gentoo
mount /dev/sdb2 /mnt/gentoo
mkdir /mnt/gentoo/home
mount /dev/sdb3 /mnt/gentoo/home
mkdir /mnt/gentoo/boot
mount /dev/sdb1 /mnt/gentoo/boot
mkdir /mnt/gentoo/boot/efi
mount /dev/sda1 /mnt/gentoo/boot/efi

五.安装stage包

cd /mnt/gentoo	#进入root挂载点
links https://mirrors.163.com/gentoo/releases/amd64/autobuilds/current-stage3-amd64-systemd	#选择stage3-amd64-systemd-YYYYMMDD.tar.bz2 下载
ID: 1686760050091


tar xpvf stage3-amd64-YYYYMMDD.tar.bz2 --xattrs-include='*.*' --numeric-owner

六.配置编译选项(make.conf):

ID: 1686760050093

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
# date 20200716 
COMMON_FLAGS="-march=ivybridge -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

CHOST="x86_64-pc-linux-gnu"
ACCEPT_KEYWORDS="amd64"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
MICROCODE_SIGNATURES="-S"

MAKEOPTS="-j5"

ACCEPT_LICENSE="@FREE"
GRUB_PLATFORMS="efi-64"

USE="-gnome -gnome-keyring -kde -consolekit -cdr -dvdr -plasma"
USE="X acpi alsa dbus ffmpeg flac lzma lzma lz4 opengl policykit python udisks x264 xft xv zip"
USE="${USE} cjk ccache"
USE="${USE} opengl bluetooth samba networkmanager"
#systemd
#USE="${USE} acl amd64 berkdb bzip2 cli crypt cxx dri fortran gdbm iconv ipv6 libtirpc multilib ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl systemd tcpd udev unicode xattr zli"
USE="${USE} acl amd64 berkdb bzip2 cli crypt dri fortran gdbm iconv ipv6 libtirpc multilib ncurses nls nptl pcre readline seccomp split-usr ssl systemd tcpd udev unicode xattr zli"
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

L10N="en_US zh_CN en-US zh-CN en zh"
LINGUAS="${L10N}"

PORTAGE_ELOG_CLASSES="info warn error log qa"
PORTAGE_ELOG_SYSTEM="echo save"
FEATURES="split-elog buildpkg"
#ccache
FEATURES="${FEATURES} ccache"
CCACHE_DIR="/var/cache/ccache"

GENTOO_MIRRORS="https://mirrors.aliyun.com/gentoo/"
GENTOO_MIRRORS="${GENTOO_MIRRORS} https://mirrors.tuna.tsinghua.edu.cn/gentoo"

VIDEO_CARDS="intel i965 nvidia"
ALSA_CARDS="hda-intel"
INPUT_DEVICES="libinput synaptics"

#°²×°Íêaria2Ö®ºóÈ¥µô×¢ÊÍ,¾ßÌå²ÎÊý²Î¿¼aria2¹Ù·½Îĵµ
FETCHCOMMAND="/usr/bin/aria2c -d \${DISTDIR} -o \${FILE} --all-proxy=\"http://127.0.0.1:7890\" --allow-overwrite=true --max-tries=5 --max-file-not-found=3 --max-concurrent-downloads=5 --connect-timeout=5 --timeout=5 --split=1 --min-split-size=100M --lowest-speed-limit=200K --max-connection-per-server=5 --uri-selector=feedback \${URI}"
RESUMECOMMAND="${FETCHCOMMAND}"
#http_proxy="http://127.0.0.1:7890"
PORTDIR_OVERLAY="/var/db/repos/gentoo-overlay"

七.选择镜像站点

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

八.Gentoo ebuild 软件仓库

mkdir -p -v /mnt/gentoo/etc/portage/repos.conf
cp -v /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

cp -v -L /etc/resolv.conf /mnt/gentoo/etc/		#复制DNS

九.挂载必要的文件系统并chroot

mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/dev

#chroot gentoo
chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile
export PS1="(chroot) $PS1"

十.安装ebuild 数据库快照并更新

emerge-webrsync
emerge --sync
#如果无法更新,将/etc/portage/repos.conf/gentoo.conf里的
#sync-rsync-verify-metamanifest = yes 改为
#sync-rsync-verify-metamanifest = no

十一.选择正确的配置文件

eselect profile list #systemd

十二.修改make.conf(cpu_flags_x86 ccache axel aria2)

emerge --ask vim cpuid2cpuflags ccache aria2

mkdir -p /var/cache/ccache
chown root:portage /var/cache/ccache
chmod 2775 /var/cache/ccache
vi /etc/portage/make.conf
		CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul sse sse2 sse3 sse4_1 sse4_2 ssse3"
		FEATURES="ccache"
		CCACHE_DIR="/var/cache/ccache"

十三.更新@world集合

emerge --ask --verbose --update --deep --newuse @world

十四.配置时区,地区

echo 'Asia/Shanghai' > /etc/timezone
emerge --config sys-libs/timezone-data

echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
eselect locale set x		#不要设置为zh,终端会有乱码

十五.配置fstab

wget https://raw.githubusercontent.com/YangMame/Gentoo-Installer/master/genfstab
chmod +x genfstab
./genfstab -U / >> /etc/fstab

十六.安装一些必要工具并配置

echo 'sys-apps/kmod lzma zlib' > /etc/portage/package.use/kmod	//启用内核模块压缩需要用到
emerge --ask --verbose  eix sudo grub:2 dosfstools pciutils usbutils hwinfo gentoolkit
#如果提示需要更新
etc-update	//输入 -3 回车 yes回车

#解决eix命令的背景颜色问题
echo "SOLARIZED=true" > /etc/eixrc/99-colour

# dhcp
emerge --ask dhcpcd
systemctl enable dhcpcd	

visudo
	%wheel ALL=(ALL) ALL
ln -sf /proc/self/mounts /etc/mtab
systemd-machine-id-setup
#                              lvm   xfs     network 支持
emerge --ask --verbose sys-fs/lvmx2 xfsprogs networkmanager
systemctl enable lvm2-monitor NetworkManager
#cron 守护进程
emerge ask systemd-cron
systemctl enable cron.target

十七.安装内核

emerge --ask --verbose sys-kernel/gentoo-sources sys-kernel/linux-firmware
emerge --ask --verbose sys-kernel/genkernel-next # Genkernel(可以先用genkernel编译一个内核,完成安装后再仔细调整内核 ):
#编译内核
genkernel --makeopts=-j8 --menuconfig --lvm --install all
# lvm
kernel cmdline: 
``` bash
    dolvm

十八.安装GRUB

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Gentoo
#efi fat32
grub-mkconfig -o /boot/grub/grub.cfg

十九.其它设置

emerge --ask sys-power/acpid
systemctl enable acpid.service

二十.重启进入新系统

passwd	#先设置一下root密码
exit
cd
umount -lR /mnt/gentoo
reboot
#建立新用户
useradd -m -G users,wheel,audio,video,portage,usb -s /bin/bash 用户名
passwd 用户名
hostnamectl set-hostname XXXXX
eselect locale list
eselect locale set X
localectl set-locale LANG="${LANG}" LC_COLLATE="C"
env-update && source /etc/profile
timedatectl set-time "YYYY-MM-DD hh:mm:ss"
timedatectl set-timezone "Asia/Shanghai"
timedatectl set-local-rtc 0

vim /etc/issue
删除.\O


vim/etc/hosts
	127.0.0.1       主机名 localhost
	::1             主机名 localhost
#启用必要的服务
#systemd-resolved.conf默认不会自动更新,要systemd管理DNS设置,替换resolv.conf为一个符号连接并启动systemd-resolved
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service

emerge --ask --verbose sys-process/cronie
systemctl enable cronie
systemctl start cronie

emerge --ask --verbose sys-apps/mlocate

#tty
systemctl enable getty@tty{2,3,4,5,6}.service

#首次安装systemd时,将禁用大多数服务。提供了一个“预设”文件,该文件可用于启用合理的默认服务集。
systemctl preset-all

系统环境工具安装

ID: 1686760050096

#options : window x
emerge --ask --verbose  xorg-server xinit xf86-video-intel x11-apps/xbacklight
#                           i3wm         图片 启动器    终端            DM             状态栏  通知栏
emerge --ask --verbose  i3-gaps i3lock feh  rofi   rxvt-unicode lightdm-gtk-greeter polybar dunst dmenu bluez bluez-firmware
emerge --ask --verbose x11-apps/xmessage

#wayland
emerge --ask sway/hyprland
emerge --ask zsh zsh-completions
#switch zsh
chsh -s /bin/zsh
#oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
#fonts
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

#zinit
sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"
#zinit oh-my-zsh support
zinit snippet 'https://github.com/robbyrussell/oh-my-zsh/raw/master/plugins/git/git.plugin.zsh'

常用工具安装

​ 1.字体
ID: 1686760050099

emerge ask source-pro source-han-sans

​ 2.输入法

#inputmethod
#ibus
#emerge ask compton | picom ibus-rime ibus-table-chinese
#fcitx
emerge --ask --verbose fcitx fcitx-configtool fcitx-rime fcitx-table-extra fcitx-qt5
#rime-wubi
https://github.com/rime/rime-wubi
vim /etc/environment 
	export XMODIFIERS="@im=fcitx"
	export GTK_IM_MODULE=fcitx
	export QT_IM_MODULE=fcitx
vim .xprofile
	export LC_ALL=zh_CN.utf8
	export XMODIFIERS=@im=fcitx
	export QT_IM_MODULE=fcitx
	export GTK_IM_MODULE=fcitx

​ 3.浏览器

#browser
emerge ask dev-vcs/git dev-vcs/git-lfs firefox-bin google-chrome

​ 4.开发工具

#layman
emerge --ask --verbose layman
echo "app-portage/layman sync-plugin-portage git" >> /etc/portage/package.use/app-portage
layman -L
layman -a gentoo-zh
#语言
emerge --ask openjdk-bin pyqt5
#编辑器
emerge --ask --verbose vim sublime-text visual-studio-code
#IDE
emerge --ask --verbose qt-creator  dev-util/codeblocks
#其他
emerge --ask --verbose postman dev-db/mariadb
#gentoo config
emerge --config dev-db/mariadb
# other config
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

​ 5.影音类

emerge --ask vlc netease-cloud-music  media-gfx/gimp  media-gfx/blender5
emerge --ask  media-sound/mpd media-sound/ncmpcpp
vim ~/.config/mpd/mpd.conf
	# Required files
	db_file            "~/.config/mpd/database"
	log_file           "~/.config/mpd/log"

	# Optional
	music_directory    "~/Music"
	playlist_directory "~/.config/mpd/playlists"
	pid_file           "~/.config/mpd/pid"
	state_file         "~/.config/mpd/state"
	sticker_file       "~/.config/mpd/sticker.sql"
	
$ mkdir ~/.config/mpd/playlists
$ touch ~/.config/mpd/{database,log,pid,state,sticker.sql}
#utils

#rom 

#soft
nvidia
kernel #CONFIG_DEBUG_MUTEXES no set

​ 6.办公类

#office
emerge --ask wps-office ttf-wps-fonts

​ 7.工具类

temerge --ask --verbose ranger filezilla pavucontrol-qt lxappearance ncurses-compat repo zip numlockx  p7zip android-tools unrar scrot unar
layman -a guru
sudo emerge --ask --verbose x11-misc/i3lock-fancy-rapid x11-misc/xautolock
x11-misc/albert
#                            预览图像和字体
emerge --ask --verbose thunar tumbler xfce-extra/xfce4-power-manager(+ upower)  emerge --ask xfce4-battery-plugin  conky

​ 8.主题类

numix-icon-theme
layman --list
layman --add  beatussum-overlay
layman --sync beatussum-overlay
x11-themes/tela-icon-theme package
media-libs/giblib-1.2.4-r1 
[ebuild  N     ] media-gfx/scrot-0.8_p13-r1 
[ebuild  N     ] x11-apps/xdpyinfo-1.3.2  USE="-dga -dmx -xinerama" 
[ebuild  N     ] app-misc/screenfetch

qt、eclipse、codeblock、vscode等等。arduino主要是给arduino开发板使用的ide。

© 本文著作权归作者所有,未经许可不得转载使用。