活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

深入Gentoo系统技术交流探讨Linux高度定制化与性能优化之道从基础安装到高级配置的全方位指南助你精通

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-22 19:30:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Gentoo Linux是Linux世界中最为独特和灵活的发行版之一,它以其高度可定制性和卓越的性能优化能力而闻名。与其他Linux发行版不同,Gentoo允许用户从源代码编译软件,这意味着系统可以根据特定硬件和需求进行精确优化。本指南将带您深入了解Gentoo系统,从基础安装到高级配置,探索Linux高度定制化与性能优化的奥秘。

引言:Gentoo Linux的独特魅力

Gentoo Linux诞生于2000年,由Daniel Robbins创建,其核心理念是”选择”。与提供预编译二进制包的发行版不同,Gentoo通过Portage包管理系统让用户从源代码编译软件,实现了无与伦比的系统定制能力。这种设计哲学使Gentoo成为高级用户、开发人员和系统管理员的首选,他们追求完全控制其系统环境并最大化性能。

Gentoo的主要特点包括:

• 源代码分发:所有软件都从源代码编译,允许针对特定硬件优化
• USE标志系统:灵活控制软件包功能和依赖关系
• 滚动更新模型:系统始终保持最新,无需周期性升级
• 最小化设计:初始安装只包含基本组件,其余根据需要添加
• 文档完善:拥有Linux发行版中最详尽的文档之一

Gentoo Linux基础安装

安装准备工作

在开始Gentoo安装之前,需要做好充分的准备工作:

1. 系统要求检查:至少5GB的可用磁盘空间(推荐20GB以上)至少512MB RAM(推荐2GB以上)可用的互联网连接(用于下载源代码和包)
2. 至少5GB的可用磁盘空间(推荐20GB以上)
3. 至少512MB RAM(推荐2GB以上)
4. 可用的互联网连接(用于下载源代码和包)
5. 下载安装介质:
从Gentoo官方网站获取最新的安装镜像。Gentoo提供多种选择,包括带GUI的安装介质和纯命令行版本。
6. 备份重要数据:
如果是在现有系统上安装,确保备份所有重要数据,以防安装过程中发生意外。

系统要求检查:

• 至少5GB的可用磁盘空间(推荐20GB以上)
• 至少512MB RAM(推荐2GB以上)
• 可用的互联网连接(用于下载源代码和包)

下载安装介质:
从Gentoo官方网站获取最新的安装镜像。Gentoo提供多种选择,包括带GUI的安装介质和纯命令行版本。

备份重要数据:
如果是在现有系统上安装,确保备份所有重要数据,以防安装过程中发生意外。

详细安装步骤

Gentoo的安装过程相对复杂,但这也提供了对系统的完全控制。以下是详细的安装步骤:
  1. # 从安装介质启动后,首先配置网络
  2. # 对于有线连接,通常使用DHCP自动获取IP
  3. dhcpcd eth0
  4. # 对于无线连接,使用net-setup工具
  5. net-setup wlan0
  6. # 测试网络连接
  7. ping -c 3 www.gentoo.org
复制代码

Gentoo需要手动分区,这提供了对磁盘布局的完全控制:
  1. # 启动fdisk进行分区
  2. fdisk /dev/sda
  3. # 创建分区(示例布局)
  4. # /dev/sda1 - 引导分区 (512MB)
  5. # /dev/sda2 - 交换分区 (2倍RAM大小)
  6. # /dev/sda3 - 根分区 (剩余空间)
  7. # 格式化分区
  8. mkfs.ext4 /dev/sda1
  9. mkswap /dev/sda2
  10. mkfs.ext4 /dev/sda3
  11. # 激活交换分区
  12. swapon /dev/sda2
  13. # 挂载分区
  14. mount /dev/sda3 /mnt/gentoo
  15. mkdir /mnt/gentoo/boot
  16. mount /dev/sda1 /mnt/gentoo/boot
复制代码
  1. # 确保系统时间准确
  2. ntpd -qg
  3. # 下载stage3 tarball(基础系统)
  4. cd /mnt/gentoo
  5. links https://www.gentoo.org/downloads/mirrors/
  6. # 解压stage3 tarball
  7. tar xvjpf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner
  8. # 配置编译选项
  9. nano -w /mnt/gentoo/etc/portage/make.conf
  10. # 在make.conf中添加以下内容(根据CPU调整)
  11. # COMMON_FLAGS="-O2 -pipe -march=native"
  12. # CFLAGS="${COMMON_FLAGS}"
  13. # CXXFLAGS="${COMMON_FLAGS}"
  14. # FCFLAGS="${COMMON_FLAGS}"
  15. # FFLAGS="${COMMON_FLAGS}"
  16. # MAKEOPTS="-j2"  # 设置为CPU核心数+1
  17. # 选择镜像站点
  18. mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
  19. # 复制DNS信息
  20. cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
  21. # 挂载必要的文件系统
  22. mount -t proc /proc /mnt/gentoo/proc
  23. mount --rbind /sys /mnt/gentoo/sys
  24. mount --make-rslave /mnt/gentoo/sys
  25. mount --rbind /dev /mnt/gentoo/dev
  26. mount --make-rslave /mnt/gentoo/dev
  27. # 进入新的系统环境
  28. chroot /mnt/gentoo /bin/bash
  29. source /etc/profile
  30. export PS1="(chroot) $PS1"
复制代码
  1. # 更新Portage树(软件包数据库)
  2. emerge --sync --quiet
  3. # 选择profile(系统预配置)
  4. eselect profile list
  5. eselect profile set default/linux/amd64/17.1/desktop
  6. # 更新@world set(系统基本软件包)
  7. emerge --update --deep --newuse @world
  8. # 配置时区
  9. ls /usr/share/zoneinfo
  10. echo "Asia/Shanghai" > /etc/timezone
  11. emerge --config sys-libs/timezone-data
  12. # 设置locale(本地化设置)
  13. nano -w /etc/locale.gen
  14. # 取消注释需要的locale,例如:
  15. # en_US.UTF-8 UTF-8
  16. # zh_CN.UTF-8 UTF-8
  17. locale-gen
  18. eselect locale list
  19. eselect locale set en_US.utf8
  20. env-update && source /etc/profile && export PS1="(chroot) $PS1"
复制代码
  1. # 安装内核源码
  2. emerge sys-kernel/gentoo-sources
  3. # 配置内核
  4. cd /usr/src/linux
  5. make menuconfig
  6. # 内核配置建议:
  7. # 1. 启用CPU优化
  8. # Processor type and features --->
  9. #     Processor family (选择你的CPU类型)
  10. #     [*] Symmetric multi-processing support
  11. #     [*] Enable x86-64 support
  12. # 2. 启用必要的文件系统
  13. # File systems --->
  14. #     [*] Ext4 journalling file system support
  15. #     [*] Btrfs filesystem support (如果需要)
  16. #     [*] FUSE (Filesystem in Userspace) support
  17. # 3. 启用网络支持
  18. # Device Drivers --->
  19. #     [*] Network device support
  20. #     [*] Wireless LAN
  21. # 4. 启用音频支持
  22. # Device Drivers --->
  23. #     [*] Sound card support
  24. #     [*] Advanced Linux Sound Architecture
  25. # 编译和安装内核
  26. make && make modules_install
  27. make install
  28. # 安装固件
  29. emerge sys-kernel/linux-firmware
复制代码
  1. # 配置文件系统表
  2. nano -w /etc/fstab
  3. # 添加以下内容(根据实际分区调整):
  4. # /dev/sda1   /boot        ext4    defaults,noatime 0 2
  5. # /dev/sda2   none         swap    sw                0 0
  6. # /dev/sda3   /            ext4    noatime           0 1
  7. # 配置网络
  8. echo "hostname="gentoo"" > /etc/conf.d/hostname
  9. emerge --noreplace net-misc/netifrc
  10. emerge net-misc/dhcpcd
  11. cd /etc/init.d
  12. ln -s net.lo net.eth0
  13. rc-update add net.eth0 default
  14. # 设置root密码
  15. passwd
  16. # 安装必要的系统工具
  17. emerge sys-apps/sysklogd
  18. rc-update add sysklogd default
  19. emerge sys-process/cronie
  20. rc-update add cronie default
  21. # 安装引导加载程序
  22. emerge sys-boot/grub:2
  23. grub-install /dev/sda
  24. grub-mkconfig -o /boot/grub/grub.cfg
  25. # 退出chroot并重启
  26. exit
  27. cd
  28. umount -l /mnt/gentoo/dev{/shm,/pts,}
  29. umount -R /mnt/gentoo
  30. reboot
复制代码
  1. # 创建普通用户
  2. useradd -m -G users,wheel,audio,video -s /bin/bash username
  3. passwd username
  4. # 安装sudo
  5. emerge app-admin/sudo
  6. visudo
  7. # 添加以下内容,允许wheel组用户使用sudo
  8. # %wheel ALL=(ALL) ALL
  9. # 更新系统
  10. emerge --sync
  11. emerge --update --deep --newuse @world
复制代码

系统定制化:Gentoo的核心优势

Gentoo的核心优势在于其高度可定制性。通过USE标志、编译选项和内核定制,可以创建一个完全符合个人需求的系统。

USE标志详解

USE标志是Gentoo的一个关键特性,它允许用户控制软件包的编译选项。通过USE标志,可以启用或禁用特定功能,从而减少不必要的依赖和优化系统性能。

USE标志分为全局和局部两种。全局USE标志在/etc/portage/make.conf中设置,影响所有软件包;局部USE标志在/etc/portage/package.use中设置,只影响特定软件包。
  1. # 查看所有可用的USE标志
  2. emerge --info | grep USE
  3. # 查看特定软件包的USE标志
  4. emerge -pv <package-name>
  5. # 查看USE标志的描述
  6. equery uses <package-name>
复制代码

一些常用的USE标志包括:

• X:启用X11支持(图形界面)
• gtk:启用GTK+支持(GNOME桌面环境)
• qt5:启用Qt5支持(KDE桌面环境)
• alsa:启用ALSA音频支持
• pulseaudio:启用PulseAudio支持
• systemd:启用systemd支持(替代OpenRC)
• openssl:启用OpenSSL支持(加密)
• gnome:启用GNOME桌面环境支持
• kde:启用KDE桌面环境支持
• python:启用Python支持
• perl:启用Perl支持
  1. # 编辑make.conf设置全局USE标志
  2. nano -w /etc/portage/make.conf
  3. # 添加或修改USE变量
  4. USE="X gtk alsa pulseaudio -systemd -kde python"
  5. # 为特定软件包设置USE标志
  6. nano -w /etc/portage/package.use
  7. # 添加以下内容(示例)
  8. # media-video/vlc mp3 dvd ffmpeg
  9. # www-client/firefox -pulseaudio
  10. # app-office/libreoffice gtk -kde
复制代码
  1. # 重新编译受影响的软件包
  2. emerge --update --deep --newuse @world
  3. # 或者使用--changed-use选项只重新编译USE标志改变的软件包
  4. emerge --changed-use --deep @world
复制代码

编译选项优化

Gentoo允许用户通过调整编译选项来优化系统性能。这些选项主要在/etc/portage/make.conf中设置。

这些变量控制C和C++编译器的行为。正确的设置可以显著提高系统性能:
  1. # 编辑make.conf
  2. nano -w /etc/portage/make.conf
  3. # 设置编译选项
  4. # -O2:推荐的优化级别,平衡性能和稳定性
  5. # -O3:更激进的优化,可能会增加编译时间和不稳定风险
  6. # -pipe:使用管道而不是临时文件,加快编译速度
  7. # -march=native:针对当前CPU架构优化
  8. # -mtune=native:针对当前CPU调度优化
  9. COMMON_FLAGS="-O2 -pipe -march=native -mtune=native"
  10. CFLAGS="${COMMON_FLAGS}"
  11. CXXFLAGS="${COMMON_FLAGS}"
复制代码
  1. # Intel CPU优化
  2. COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
  3. # AMD CPU优化
  4. COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
  5. # 通用优化(适用于多种CPU)
  6. COMMON_FLAGS="-O2 -pipe -march=x86-64 -mtune=generic"
复制代码
  1. # 在make.conf中添加链接器优化
  2. LDFLAGS="-Wl,-O1 -Wl,--as-needed"
  3. # MAKEOPTS控制并行编译的进程数
  4. # 通常设置为CPU核心数+1
  5. MAKEOPTS="-j5"  # 假设有4个CPU核心
  6. # EMERGE_DEFAULT_OPTS控制emerge的默认行为
  7. EMERGE_DEFAULT_OPTS="--with-bdeps=y --quiet-build=y --quiet-fail=y"
  8. # FEATURES控制Portage的特性
  9. FEATURES="ccache parallel-fetch parallel-install"
复制代码
  1. # 启用Link Time Optimization (LTO)
  2. COMMON_FLAGS="${COMMON_FLAGS} -flto"
  3. # 启用Profile Guided Optimization (PGO) - 需要特定软件包支持
  4. # 在package.use中设置
  5. echo 'app-office/libreoffice pgo' >> /etc/portage/package.use
复制代码

内核定制

Gentoo允许用户完全定制内核,这是优化系统性能的关键步骤。

Gentoo提供多种内核源码选择:
  1. # 查看可用的内核源码
  2. emerge --search sys-kernel/
  3. # 安装gentoo-sources(推荐新手使用)
  4. emerge sys-kernel/gentoo-sources
  5. # 或者安装vanilla-sources(纯净内核)
  6. emerge sys-kernel/vanilla-sources
  7. # 或者安装其他特定内核,如 hardened-sources(安全增强)
  8. emerge sys-kernel/hardened-sources
  9. # 或者安装zen-sources(桌面优化)
  10. emerge sys-kernel/zen-sources
复制代码
  1. # 进入内核源码目录
  2. cd /usr/src/linux
  3. # 使用make menuconfig进行图形化配置
  4. make menuconfig
  5. # 或者使用make nconfig(更现代的界面)
  6. make nconfig
  7. # 或者使用make oldconfig基于现有配置进行更新
  8. make oldconfig
  9. # 或者使用make localyesconfig将当前加载的模块设置为内置
  10. make localyesconfig
复制代码

以下是一些内核配置优化建议:
  1. # 1. CPU优化
  2. Processor type and features --->
  3.     Processor family (选择你的CPU类型)
  4.     [*] Symmetric multi-processing support
  5.     [*] Enable x86-64 support
  6.     [*] Machine Check / overheating reporting
  7.     [*] Performance monitoring
  8. # 2. 调度器优化
  9. Processor type and features --->
  10.     Timer frequency (1000 HZ)  # 桌面系统选择高频率
  11.     Preemption Model (Voluntary Kernel Preemption (Desktop))  # 桌面系统
  12.     Preemption Model (Preemptible Kernel (Low-Latency Desktop))  # 低延迟需求
  13. # 3. 文件系统优化
  14. File systems --->
  15.     [*] Ext4 journalling file system support
  16.     [*] Btrfs filesystem support (如果需要)
  17.     [*] XFS filesystem support (如果需要)
  18.     [*] FUSE (Filesystem in Userspace) support
  19.     Pseudo filesystems --->
  20.         [*] /proc file system support
  21.         [*] sysfs file system support
  22. # 4. 网络优化
  23. Networking support --->
  24.     Networking options --->
  25.         [*] TCP/IP networking
  26.         [*] IP: advanced router
  27.         [*] IP: TCP syncookie support
  28.         [*] Network packet filtering framework (Netfilter)
  29.         [*] TCP congestion control algorithm ---> BBR
  30.         [*] TCP: advanced congestion control
  31. # 5. 驱动支持优化
  32. Device Drivers --->
  33.     [*] Network device support
  34.     [*] Sound card support
  35.     [*] HID Devices
  36.     [*] USB support
  37.     Graphics support --->
  38.         [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
  39.         [*] modesetting
复制代码
  1. # 编译内核和模块
  2. make && make modules_install
  3. # 安装内核
  4. make install
  5. # 或者手动复制内核文件
  6. cp arch/x86/boot/bzImage /boot/kernel-$(make kernelversion)
  7. cp System.map /boot/System.map-$(make kernelversion)
  8. cp .config /boot/config-$(make kernelversion)
  9. # 更新grub配置
  10. grub-mkconfig -o /boot/grub/grub.cfg
复制代码

对于新手,可以使用genkernel自动配置和编译内核:
  1. # 安装genkernel
  2. emerge sys-kernel/genkernel
  3. # 使用genkernel编译内核
  4. genkernel all
  5. # 或者使用特定选项
  6. genkernel --menuconfig all
  7. genkernel --bootloader=grub all
复制代码

性能优化:释放Gentoo的全部潜力

Gentoo的主要优势之一是其出色的性能优化潜力。通过系统启动优化、内存管理优化、文件系统优化和CPU优化,可以显著提高系统性能。

系统启动优化

Gentoo默认使用OpenRC作为初始化系统,它比systemd更轻量级,启动速度更快。
  1. # 确保使用OpenRC
  2. eselect profile list
  3. eselect profile set default/linux/amd64/17.1
  4. # 查看启动服务
  5. rc-update show
  6. # 添加或删除启动服务
  7. rc-update add <service> default
  8. rc-update del <service> default
  9. # 禁用不必要的服务
  10. rc-update del cronie boot
  11. rc-update del syslog-ng boot
复制代码
  1. # 编辑rc.conf
  2. nano -w /etc/rc.conf
  3. # 启用并行启动
  4. rc_parallel="YES"
  5. # 禁用fsck检查(如果使用SSD)
  6. rc_fsck="NO"
  7. # 设置启动日志级别
  8. rc_logger="YES"
  9. rc_log_path="/var/log/rc.log"
复制代码
  1. # 安装boot-update2简化引导配置
  2. emerge sys-boot/boot-update
  3. # 配置boot-update2
  4. nano -w /etc/boot-update.conf
  5. # 更新引导配置
  6. boot-update
复制代码

虽然Gentoo默认使用OpenRC,但也可以选择systemd:
  1. # 选择支持systemd的profile
  2. eselect profile set default/linux/amd64/17.1/systemd
  3. # 安装systemd
  4. emerge sys-apps/systemd
  5. # 配置systemd
  6. systemctl enable <service>
  7. systemctl start <service>
复制代码

内存管理优化
  1. # 编辑sysctl.conf
  2. nano -w /etc/sysctl.conf
  3. # 添加以下内容
  4. # 虚拟内存管理
  5. vm.swappiness=10  # 减少交换使用
  6. vm.vfs_cache_pressure=50  # 增加缓存保留
  7. vm.dirty_ratio=10  # 减少脏页
  8. vm.dirty_background_ratio=5  # 减少后台脏页
  9. # 文件系统优化
  10. fs.file-max=100000  # 增加文件描述符限制
  11. # 网络优化
  12. net.core.rmem_max=16777216
  13. net.core.wmem_max=16777216
  14. net.ipv4.tcp_rmem=4096 87380 16777216
  15. net.ipv4.tcp_wmem=4096 65536 16777216
  16. net.ipv4.tcp_congestion_control=bbr
  17. # 应用更改
  18. sysctl -p
复制代码

zram可以在内存中创建压缩块设备,用作交换空间:
  1. # 安装zram
  2. emerge sys-block/zram-init
  3. # 配置zram
  4. nano -w /etc/conf.d/zram-init
  5. # 添加以下内容
  6. # zram_init(8) configuration
  7. # Number of zram devices to create
  8. zram_devices=1
  9. # Size of zram device(s)
  10. zram_size_mb=512
  11. # Compression algorithm to use
  12. zram_alg=lz4
  13. # 启用zram
  14. rc-update add zram-init boot
  15. /etc/init.d/zram-init start
复制代码

prelink可以预链接共享库,加快程序启动速度:
  1. # 安装prelink
  2. emerge sys-devel/prelink
  3. # 配置prelink
  4. nano -w /etc/prelink.conf
  5. # 运行prelink
  6. prelink -amR
复制代码

earlyoom可以在内存不足时自动终止进程,防止系统冻结:
  1. # 安装earlyoom
  2. emerge sys-process/earlyoom
  3. # 配置earlyoom
  4. nano -w /etc/conf.d/earlyoom
  5. # 设置内存阈值
  6. # EARLYOOM_ARGS="-m 5 -M 3"
  7. # 启用earlyoom
  8. rc-update add earlyoom default
  9. /etc/init.d/earlyoom start
复制代码

文件系统优化

Gentoo支持多种文件系统,每种都有其优缺点:

• ext4:稳定、可靠,适合大多数用途
• btrfs:现代文件系统,支持快照、压缩和自修复
• xfs:高性能,适合大文件和大容量存储
• zfs:高级功能,如快照、压缩和数据完整性检查
  1. # 安装文件系统工具
  2. emerge sys-fs/btrfs-progs
  3. emerge sys-fs/xfsprogs
  4. emerge sys-fs/zfs
  5. # 格式化分区
  6. mkfs.btrfs /dev/sda3
  7. mkfs.xfs /dev/sda3
复制代码
  1. # 编辑fstab
  2. nano -w /etc/fstab
  3. # 添加优化选项
  4. # /dev/sda3   /   btrfs   noatime,compress=lzo,ssd   0 1
  5. # /dev/sda3   /   xfs    noatime,logbufs=8,logbsize=256k   0 1
  6. # /dev/sda3   /   ext4   noatime,data=writeback   0 1
复制代码

这些挂载选项可以减少磁盘写入,提高性能:
  1. # 在fstab中添加noatime选项
  2. /dev/sda3   /   ext4   noatime   0 1
复制代码

tmpfs是基于内存的文件系统,适合临时文件:
  1. # 编辑fstab
  2. nano -w /etc/fstab
  3. # 添加tmpfs挂载
  4. # tmpfs   /tmp   tmpfs   defaults,noatime,mode=1777   0 0
  5. # tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777   0 0
复制代码

对于Btrfs文件系统:
  1. # 创建子卷
  2. btrfs subvolume create /mnt/gentoo/@
  3. btrfs subvolume create /mnt/gentoo/@home
  4. btrfs subvolume create /mnt/gentoo/@var
  5. # 挂载子卷
  6. mount -o noatime,compress=lzo,subvol=@ /dev/sda3 /mnt/gentoo
  7. mount -o noatime,compress=lzo,subvol=@home /dev/sda3 /mnt/gentoo/home
  8. mount -o noatime,compress=lzo,subvol=@var /dev/sda3 /mnt/gentoo/var
  9. # 定期平衡文件系统
  10. btrfs balance start /mnt/gentoo
  11. # 启用碎片整理
  12. btrfs filesystem defragment -r /mnt/gentoo
复制代码

对于XFS文件系统:
  1. # 调整日志大小
  2. mkfs.xfs -l size=128m /dev/sda3
  3. # 挂载选项优化
  4. mount -o noatime,logbufs=8,logbsize=256k /dev/sda3 /mnt/gentoo
复制代码

CPU和编译优化
  1. # 编辑make.conf
  2. nano -w /etc/portage/make.conf
  3. # 针对特定CPU优化
  4. # Intel CPU
  5. COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
  6. # AMD CPU
  7. COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
  8. # 通用优化
  9. COMMON_FLAGS="-O2 -pipe -march=x86-64 -mtune=generic"
  10. CFLAGS="${COMMON_FLAGS}"
  11. CXXFLAGS="${COMMON_FLAGS}"
复制代码

LTO(Link Time Optimization)和PGO(Profile Guided Optimization)可以进一步提高性能:
  1. # 在make.conf中启用LTO
  2. COMMON_FLAGS="${COMMON_FLAGS} -flto"
  3. # 为特定软件包启用PGO
  4. echo 'app-office/libreoffice pgo' >> /etc/portage/package.use
  5. echo 'www-client/firefox pgo' >> /etc/portage/package.use
复制代码

ccache可以缓存编译结果,加快重新编译速度:
  1. # 安装ccache
  2. emerge dev-util/ccache
  3. # 配置ccache
  4. nano -w /etc/portage/make.conf
  5. # 添加以下内容
  6. FEATURES="ccache"
  7. CCACHE_SIZE="5G"
  8. # 检查ccache状态
  9. ccache -s
复制代码

distcc允许分布式编译,利用多台计算机加速编译:
  1. # 安装distcc
  2. emerge sys-devel/distcc
  3. # 配置distcc
  4. nano -w /etc/portage/make.conf
  5. # 添加以下内容
  6. FEATURES="distcc"
  7. MAKEOPTS="-j9"  # 增加并行任务数
  8. # 配置distcc主机
  9. echo "192.168.1.100,192.168.1.101" > /etc/distcc/hosts
  10. # 启动distcc服务
  11. rc-update add distccd default
  12. /etc/init.d/distccd start
复制代码
  1. # 在make.conf中启用二进制包缓存
  2. FEATURES="buildpkg"
  3. # 设置二进制包位置
  4. PKGDIR="/var/cache/binpkgs"
  5. # 从二进制包安装
  6. emerge --usepkg <package-name>
  7. # 创建二进制包
  8. emerge --buildpkgonly <package-name>
复制代码

高级配置:打造个性化Gentoo系统

Gentoo的高级配置包括服务管理、安全配置、网络优化和桌面环境定制等方面。

服务管理
  1. # 查看所有可用服务
  2. ls /etc/init.d/
  3. # 查看已启动服务
  4. rc-update show
  5. # 添加服务到启动级别
  6. rc-update add <service> default
  7. rc-update add <service> boot
  8. # 删除服务
  9. rc-update del <service> default
  10. # 手动启动/停止服务
  11. /etc/init.d/<service> start
  12. /etc/init.d/<service> stop
  13. /etc/init.d/<service> restart
  14. # 查看服务状态
  15. /etc/init.d/<service> status
复制代码
  1. # 创建自定义服务脚本
  2. nano -w /etc/init.d/myservice
  3. # 添加以下内容
  4. #!/sbin/openrc-run
  5. command="/usr/bin/myservice"
  6. command_args="--option value"
  7. pidfile="/run/myservice.pid"
  8. depend() {
  9.     need net
  10.     after firewall
  11. }
  12. start_pre() {
  13.     checkpath --directory --owner root:root --mode 0775 /run/myservice
  14. }
  15. # 设置执行权限
  16. chmod +x /etc/init.d/myservice
  17. # 添加到启动级别
  18. rc-update add myservice default
复制代码
  1. # 安装cron
  2. emerge sys-process/cronie
  3. # 启动cron服务
  4. rc-update add cronie default
  5. /etc/init.d/cronie start
  6. # 编辑crontab
  7. crontab -e
  8. # 添加定时任务
  9. # 0 3 * * *   /usr/bin/emerge --sync
  10. # 0 4 * * 0   /usr/bin/emerge --update --deep --newuse @world
  11. # */5 * * * *   /usr/bin/backup-script.sh
复制代码

安全配置
  1. # 安装iptables
  2. emerge net-firewall/iptables
  3. # 创建防火墙规则
  4. nano -w /etc/iptables/rules-save
  5. # 添加基本规则
  6. *filter
  7. :INPUT DROP [0:0]
  8. :FORWARD DROP [0:0]
  9. :OUTPUT ACCEPT [0:0]
  10. -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  11. -A INPUT -i lo -j ACCEPT
  12. -A INPUT -p icmp -j ACCEPT
  13. -A INPUT -p tcp --dport 22 -j ACCEPT
  14. COMMIT
  15. # 应用规则
  16. iptables-restore < /etc/iptables/rules-save
  17. # 保存规则
  18. /etc/init.d/iptables save
  19. # 启动iptables服务
  20. rc-update add iptables default
  21. /etc/init.d/iptables start
复制代码

fail2ban可以防止暴力破解攻击:
  1. # 安装fail2ban
  2. emerge net-analyzer/fail2ban
  3. # 配置fail2ban
  4. cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  5. nano -w /etc/fail2ban/jail.local
  6. # 启用SSH保护
  7. [sshd]
  8. enabled = true
  9. port = ssh
  10. filter = sshd
  11. logpath = /var/log/auth.log
  12. maxretry = 3
  13. bantime = 3600
  14. # 启动fail2ban
  15. rc-update add fail2ban default
  16. /etc/init.d/fail2ban start
复制代码
  1. # 安装SELinux
  2. emerge sys-apps/policycoreutils
  3. emerge sec-policy/selinux-base
  4. # 启用SELinux
  5. nano -w /etc/selinux/config
  6. # SELINUX=enforcing
  7. # SELINUXTYPE=targeted
  8. # 重启系统
  9. reboot
  10. # 或者安装AppArmor
  11. emerge sys-libs/libapparmor
  12. emerge sys-apps/apparmor
  13. # 启动AppArmor
  14. rc-update add apparmor default
  15. /etc/init.d/apparmor start
复制代码
  1. # 安装安全工具
  2. emerge app-admin/logwatch
  3. emerge app-admin/rkhunter
  4. emerge app-forensics/chkrootkit
  5. # 配置自动安全检查
  6. crontab -e
  7. # 添加以下内容
  8. # 0 2 * * *   /usr/bin/rkhunter --checkall
  9. # 0 3 * * *   /usr/sbin/chkrootkit
  10. # 配置登录安全
  11. nano -w /etc/login.defs
  12. # 修改以下内容
  13. # PASS_MAX_DAYS 90
  14. # PASS_MIN_DAYS 7
  15. # PASS_WARN_AGE 7
  16. # LOGIN_RETRIES 5
复制代码

网络优化
  1. # 配置网络接口
  2. nano -w /etc/conf.d/net
  3. # 添加静态IP配置
  4. # config_eth0="192.168.1.100/24"
  5. # routes_eth0="default via 192.168.1.1"
  6. # dns_servers_eth0="192.168.1.1 8.8.8.8"
  7. # 或者使用DHCP
  8. # config_eth0="dhcp"
  9. # 启用网络接口
  10. cd /etc/init.d
  11. ln -s net.lo net.eth0
  12. rc-update add net.eth0 default
  13. /etc/init.d/net.eth0 start
复制代码
  1. # 编辑sysctl.conf
  2. nano -w /etc/sysctl.conf
  3. # 添加网络优化参数
  4. # TCP优化
  5. net.ipv4.tcp_congestion_control=bbr
  6. net.ipv4.tcp_rfc1337=1
  7. net.ipv4.tcp_slow_start_after_idle=0
  8. net.ipv4.tcp_fastopen=3
  9. net.ipv4.tcp_mtu_probing=1
  10. # 网络缓冲区优化
  11. net.core.rmem_max=16777216
  12. net.core.wmem_max=16777216
  13. net.ipv4.tcp_rmem=4096 87380 16777216
  14. net.ipv4.tcp_wmem=4096 65536 16777216
  15. # 应用更改
  16. sysctl -p
复制代码

对于笔记本电脑和移动设备,可以使用NetworkManager:
  1. # 安装NetworkManager
  2. emerge net-misc/networkmanager
  3. # 启用NetworkManager
  4. rc-update add NetworkManager default
  5. /etc/init.d/NetworkManager start
  6. # 安装前端工具
  7. emerge gnome-extra/nm-applet
  8. emerge net-misc/networkmanager-openvpn
复制代码

对于需要高可用性的网络,可以使用bonding或teaming:
  1. # 安装bonding工具
  2. emerge net-misc/ifenslave
  3. # 配置bonding
  4. nano -w /etc/conf.d/net
  5. # 添加以下内容
  6. # slaves_bond0="eth0 eth1"
  7. # config_bond0="null"
  8. # mode_bond0="4"
  9. # 启用bonding
  10. cd /etc/init.d
  11. ln -s net.lo net.bond0
  12. rc-update add net.bond0 default
  13. /etc/init.d/net.bond0 start
复制代码

桌面环境定制
  1. # 安装Xorg服务器
  2. emerge x11-base/xorg-server
  3. # 安装视频驱动
  4. emerge x11-drivers/xf86-video-nouveau  # NVIDIA开源驱动
  5. emerge x11-drivers/xf86-video-intel    # Intel驱动
  6. emerge x11-drivers/xf86-video-amdgpu   # AMD驱动
  7. # 配置Xorg
  8. Xorg -configure
  9. mv /root/xorg.conf.new /etc/X11/xorg.conf
复制代码

Gentoo支持多种桌面环境,以下是几种流行的选择:
  1. # 设置USE标志
  2. echo "gnome" >> /etc/portage/make.conf
  3. # 安装GNOME
  4. emerge gnome-base/gnome
  5. # 启动GNOME服务
  6. rc-update add gdm default
  7. /etc/init.d/gdm start
复制代码
  1. # 设置USE标志
  2. echo "kde" >> /etc/portage/make.conf
  3. # 安装KDE
  4. emerge kde-plasma/plasma-meta
  5. # 启动KDE服务
  6. rc-update add xdm default
  7. echo "exec startkde" > ~/.xinitrc
复制代码
  1. # 安装Xfce
  2. emerge xfce-base/xfce4-meta
  3. # 配置启动
  4. echo "exec startxfce4" > ~/.xinitrc
复制代码
  1. # 安装LightDM
  2. emerge x11-misc/lightdm
  3. emerge x11-misc/lightdm-gtk-greeter
  4. # 配置LightDM
  5. rc-update add lightdm default
  6. /etc/init.d/lightdm start
复制代码
  1. # 安装性能优化工具
  2. emerge sys-process/htop
  3. emerge sys-apps/lm_sensors
  4. emerge sys-process/iotop
  5. # 配置传感器
  6. sensors-detect
  7. # 安装系统监控工具
  8. emerge app-admin/sysstat
  9. rc-update add sysstat default
  10. # 安装图形化系统监控
  11. emerge sys-process/gnome-system-monitor
  12. emerge x11-apps/xosview
复制代码

故障排除与维护

即使是最优化的系统也可能遇到问题。本节介绍一些常见的故障排除方法和系统维护技巧。

系统维护
  1. # 同步Portage树
  2. emerge --sync
  3. # 更新系统
  4. emerge --update --deep --newuse @world
  5. # 清理孤立软件包
  6. emerge --depclean
  7. # 重建依赖关系
  8. revdep-rebuild
  9. # 清理下载的源代码
  10. eclean-dist
复制代码
  1. # 检查文件系统
  2. fsck /dev/sda3
  3. # 对于btrfs文件系统
  4. btrfs scrub start /mnt/gentoo
  5. btrfs balance start /mnt/gentoo
  6. # 清理临时文件
  7. rm -rf /tmp/*
  8. rm -rf /var/tmp/*
  9. # 查找大文件
  10. find / -type f -size +100M -exec ls -lh {} \;
复制代码
  1. # 安装logrotate
  2. emerge app-admin/logrotate
  3. # 配置logrotate
  4. nano -w /etc/logrotate.conf
  5. # 手动轮转日志
  6. logrotate -f /etc/logrotate.conf
  7. # 查看系统日志
  8. tail -f /var/log/messages
  9. journalctl -f  # 如果使用systemd
复制代码

常见问题解决
  1. # 检查启动日志
  2. dmesg | less
  3. journalctl -xb  # 如果使用systemd
  4. # 检查服务状态
  5. /etc/init.d/<service> status
  6. # 进入单用户模式
  7. 在启动菜单添加"single"或"init=/bin/bash"
  8. # 修复引导问题
  9. grub-install /dev/sda
  10. grub-mkconfig -o /boot/grub/grub.cfg
复制代码
  1. # 解决依赖问题
  2. emerge --resume --skipfirst
  3. # 重新编译损坏的软件包
  4. emerge -e @world
  5. # 查找冲突文件
  6. equery belongs <filename>
  7. # 清理部分安装的软件包
  8. emerge --resume --skipfirst
  9. # 修复Python模块冲突
  10. emerge @python-rebuild
复制代码
  1. # 监控系统资源
  2. top
  3. htop
  4. iotop
  5. iftop
  6. # 检查磁盘使用
  7. df -h
  8. du -sh /path/to/directory
  9. # 检查内存使用
  10. free -h
  11. cat /proc/meminfo
  12. # 检查CPU使用
  13. cat /proc/cpuinfo
  14. grep 'cpu ' /proc/stat
  15. # 检查进程状态
  16. ps aux
  17. ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu
复制代码
  1. # 检查网络连接
  2. ping www.google.com
  3. traceroute www.google.com
  4. # 检查网络接口
  5. ip addr
  6. ip link
  7. # 检查路由
  8. ip route
  9. # 检查DNS
  10. nslookup www.google.com
  11. dig www.google.com
  12. # 检查防火墙规则
  13. iptables -L
  14. iptables -t nat -L
  15. # 检查网络连接状态
  16. netstat -tuln
  17. ss -tuln
复制代码

系统备份与恢复
  1. # 安装rsync
  2. emerge net-misc/rsync
  3. # 创建备份脚本
  4. nano -w /usr/local/bin/backup.sh
  5. # 添加以下内容
  6. #!/bin/bash
  7. rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/
  8. # 设置执行权限
  9. chmod +x /usr/local/bin/backup.sh
  10. # 定期备份
  11. crontab -e
  12. # 添加以下内容
  13. # 0 2 * * *   /usr/local/bin/backup.sh
复制代码
  1. # 安装Timeshift
  2. emerge app-backup/timeshift
  3. # 配置Timeshift
  4. timeshift-gtk
  5. # 创建快照
  6. timeshift --create --comments "Weekly backup"
  7. # 恢复快照
  8. timeshift --restore
复制代码
  1. # 从Live CD启动
  2. # 挂载分区
  3. mount /dev/sda3 /mnt/gentoo
  4. mount /dev/sda1 /mnt/gentoo/boot
  5. swapon /dev/sda2
  6. # 恢复系统
  7. rsync -aAXv /path/to/backup/ /mnt/gentoo/
  8. # 进入chroot
  9. mount -t proc /proc /mnt/gentoo/proc
  10. mount --rbind /sys /mnt/gentoo/sys
  11. mount --make-rslave /mnt/gentoo/sys
  12. mount --rbind /dev /mnt/gentoo/dev
  13. mount --make-rslave /mnt/gentoo/dev
  14. chroot /mnt/gentoo /bin/bash
  15. source /etc/profile
  16. export PS1="(chroot) $PS1"
  17. # 重新安装引导程序
  18. grub-install /dev/sda
  19. grub-mkconfig -o /boot/grub/grub.cfg
  20. # 重启系统
  21. exit
  22. reboot
复制代码

总结与展望

Gentoo Linux是一个高度可定制的Linux发行版,它提供了无与伦比的灵活性和性能优化潜力。通过本文的介绍,我们了解了从基础安装到高级配置的全方位指南,包括系统定制化、性能优化、高级配置和故障排除等方面。

Gentoo的主要优势

1. 高度定制化:通过USE标志、编译选项和内核定制,可以创建一个完全符合个人需求的系统。
2. 性能优化:通过系统启动优化、内存管理优化、文件系统优化和CPU优化,可以显著提高系统性能。
3. 学习价值:通过手动安装和配置系统,可以深入理解Linux内部工作原理。
4. 社区支持:Gentoo拥有活跃的社区,提供了丰富的文档和支持资源。

Gentoo的挑战

1. 安装复杂:相比其他发行版,Gentoo的安装过程更为复杂,需要更多的技术知识。
2. 编译时间长:从源代码编译软件需要更多的时间,尤其是在较旧的硬件上。
3. 维护成本高:需要定期更新系统,处理依赖关系和解决冲突。

未来展望

展望未来,Gentoo将继续发展,提供更多的优化选项和更好的用户体验。随着硬件性能的提高和编译工具的改进,Gentoo的编译时间将进一步减少。同时,Gentoo社区将继续提供高质量的文档和支持,帮助用户更好地使用和维护系统。

对于那些希望完全控制其系统环境、追求极致性能和深入了解Linux内部工作原理的用户来说,Gentoo无疑是一个理想的选择。通过本文的指南,相信你已经掌握了Gentoo的基本使用和高级配置技巧,可以进一步探索Gentoo的无限可能性。

最后,记住Gentoo的核心理念是”选择”,它赋予用户决定系统如何工作的权力。正是这种自由和灵活性,使得Gentoo成为Linux世界中独特而宝贵的存在。无论你是新手还是经验丰富的用户,Gentoo都能提供一个强大、灵活和高效的计算平台,助你精通Linux高度定制化与性能优化之道。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则