教程 gentoo tutorial

Portage 异常处理

在掌握网络与编译错误排查后,下一步是 学习 Gentoo 系统中 Portage 异常处理方法,确保软件包管理稳定可靠。

一、依赖冲突处理

  1. 识别冲突包
bash
emerge --pretend --verbose <package>

`

  • 查看冲突信息
  • 检查全局 USE 标志与包级 USE 标志
  1. 解决方法
  • 修改 /etc/portage/package.use 或全局 USE
  • 删除冲突包后重新安装:
bash
emerge --ask --depclean <conflict-package>
emerge --ask <package>

二、掩码与关键字异常

  1. 掩码包
  • 包被掩码或关键字不匹配:
bash
emerge --ask --autounmask-write <package>
  • 更新 /etc/portage/package.accept_keywords 和 /etc/portage/package.unmask
  1. 维护自定义 ebuild
  • 检查 Overlay 或自定义 ebuild 是否正确
  • 使用 repoman manifest 更新 ebuild 校验

三、编译失败处理

  1. 查看日志
bash
less /var/log/portage/elog/*
  • 定位错误源(依赖、编译参数、环境变量等)
  1. 常用修复方法
  • 清理 distfiles 和临时文件:
bash
rm -rf /var/cache/distfiles/<package>*
rm -rf /var/tmp/portage/<package>*
  • 调整 CFLAGS、MAKEOPTS 或 USE 标志
  • 使用 emerge --resume 继续安装

四、系统异常与 Portage

  1. Portage 锁文件异常
bash
rm -f /var/lib/portage/world.lock
rm -f /var/lib/portage/lock
  1. 数据库损坏
bash
emerge --sync
emaint sync --repo gentoo
  1. 其他异常
  • 使用 emerge --info 检查环境变量
  • 对比成功系统的配置

五、建议操作

  • 遇到 Portage 异常先不要强行删除或跳过
  • 详细查看日志,按步骤解决依赖、掩码和编译问题
  • 定期备份 /etc/portage/ 配置,方便恢复异常