文章

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 进行授权