portage常用命令
官方包仓库地址 https://packages.gentoo.org/
# 查找包
emerge --search <package-name>
emerge --searchdesc <keyword> # 在描述中搜索
# 安装包
emerge <package-name>
emerge --ask <package-name> # 安装前询问
emerge --ask --verbose <package-name> # 显示详细信息
# 更新包
emerge --sync # 同步portage树
emerge --update --deep --newuse @world # 更新整个系统
emerge --update --ask <package-name> # 更新指定包
# 卸载包
emerge --unmerge <package-name> # 卸载但不处理依赖
emerge --depclean # 清理不需要的依赖包
emerge --depclean --ask # 询问后清理
emerge --ask --depclean <package-name> # 卸载包及其依赖
系统维护
# 完整系统更新流程
emerge --sync # 同步portage树
emerge --update --deep --newuse --ask @world # 更新系统
emerge --depclean --ask # 清理过时依赖
emerge --ask @preserved-rebuild # 重建需要的包
# 检查系统完整性
emerge --check-news # 查看新闻
revdep-rebuild # 重建损坏的依赖关系(需要gentoolkit)
emerge @preserved-rebuild # 重建保留的库
# 预览操作
emerge --pretend <package-name> # 预览安装
emerge --pretend --depclean # 预览清理操作
配置文件管理
# 更新配置文件
etc-update # 交互式更新配置文件
dispatch-conf # 更高级的配置文件管理工具
USE标志和包信息
# 查看USE标志
emerge --info # 查看系统信息和USE标志
emerge --info <package-name> # 查看包的USE标志
euse -i <use-flag> # 查看USE标志说明(需要gentoolkit)
# 包依赖信息
emerge --pretend --verbose <package-name> # 查看包的详细依赖和USE标志
emerge --emptytree --pretend @world # 查看完整依赖树
日志和调试
# 查看日志
genlop -l # 查看emerge日志(需要app-portage/genlop)
genlop -t <package-name> # 查看包的安装时间
genlop -c # 查看当前正在emerge的包
# 重新编译
emerge --oneshot <package-name> # 编译但不记录到world文件
emerge --ask --oneshot --verbose <package-name>
equery使用
equery是gentoo提供的一个查询包信息的工具,可以查询包的依赖关系、文件列表等信息。
需要先安装gentoolkit包
emerge --ask app-portage/gentoolkit
# 查看已安装的包信息,支持*通配符
equery list bash-*
equery list '*' # 列出所有已安装的包
# 查看包的详细信息
equery meta <package-name> # 包的元数据
equery uses <package-name> # 包的USE标志
equery depends <package-name> # 查看哪些包依赖此包
equery depgraph <package-name> # 依赖关系图
# 查看包的文件
equery files <package-name> # 列出包安装的所有文件
equery belongs /path/to/file # 查看文件属于哪个包
equery check <package-name> # 检查包的文件完整性
# 查看包的大小
equery size <package-name> # 查看包占用的空间
其他有用的工具
# eix - 更快的包搜索工具(需要安装app-portage/eix)
emerge --ask app-portage/eix
eix-update # 更新eix数据库
eix <package-name> # 搜索包
eix -I # 列出所有已安装的包
eix --installed-with-use <use-flag> # 查找使用特定USE标志的包
# layman - overlay管理(Gentoo传统方式)
# 现代Gentoo推荐使用eselect repository
eselect repository list # 列出可用的overlay
eselect repository enable <overlay-name> # 启用overlay
eselect repository disable <overlay-name> # 禁用overlay
emerge --sync # 同步overlay
# 内核管理
eselect kernel list # 列出可用内核
eselect kernel set <number> # 设置默认内核源码
# 查看世界文件
cat /var/lib/portage/world # 查看已安装的包列表
常见问题处理
# 处理阻塞
emerge --unmerge <blocking-package> # 先卸载阻塞的包
# 处理slot冲突
emerge --update --deep --newuse --ask @world --backtrack=30
# 强制重新下载
emerge --ask --fetchonly <package-name> # 仅下载不安装
emerge --ask --fetch-all-uri <package-name> # 下载所有源文件
# 继续中断的安装
emerge --resume # 恢复中断的emerge操作
emerge --skipfirst --resume # 跳过失败的包继续
# 查看可用版本
emerge --search <package-name>
eix <package-name> # 使用eix查看更详细的版本信息
本文由作者按照
CC BY 4.0
进行授权