SDB:Zypper troubleshooting
详细输出
有一个全局--verbose选项,可以多次使用以增加 zypper 输出的详细程度(当前为 2 个级别),以了解正在发生什么。例如,使用zypper -vv up.
请检查输出中是否包含正确的国家/地区:
$ curl download.opensuse.org/geoip
输出应采用以下形式:<geoip><region>region or continent</region><country>Country or closest locale</country><host>cdn.opensuse.org or download.opensuse.org</host></geoip>
美国示例
$ <geoip><region>na</region><country>us</country><host>cdn.opensuse.org</host></geoip>
德国示例
$ <geoip><region>eu</region><country>de</country><host>cdn.opensuse.org</host></geoip>
日志
自版本 0.8.0 起,zypper 日志默认位于/var/log/zypper.log。可以使用 ZYPP_LOGFILE 环境变量更改日志文件的位置,例如:
$ ZYPP_LOGFILE=zypper-refresh-updates.log zypper refresh updates
要启用过多的调试日志,请将 ZYPP_FULLLOG=1 变量添加到调用中。
要调试求解器,请设置 ZYPP_LIBSAT_FULLLOG=1。
求解器测试用例
自版本 0.8.7 起,zypper 能够生成求解器测试用例,以帮助调试与软件包依赖关系和 libzypp 依赖关系求解器相关的问题。要生成测试用例,请将 --debug-solver 命令选项添加到 install、remove、update、dist-upgrade、verify 或 source-install 等命令中。例如
$ zypper install --debug-solver MozillaFirefox
测试用例文件将写入/var/log/zypper.solverTestCase目录。您可以打包和压缩并将其附加到错误报告中。
报告错误
在提交 错误时,请使用组件 libzypp 并附加日志和 zypper 输出。如果您可以轻松重现该错误,则无需附加以前运行的完整日志。重现错误时,在您即将执行的 zypper 命令前加上ZYPP_LOGFILE=logfile_name,然后附加您指定的文件,例如:
$ ZYPP_LOGFILE=zypper.log zypper -vv install MozillaFirefox
在 Zypper 中安装未签名的软件包
在使用 zypper 的 --no-gpg-checks 标志从外部仓库构建和安装容器文件时,您可能会遇到错误。仅当您了解安装未签名软件包到系统的风险时才使用此标志。用户报告说,按此顺序使用命令标志将解决此问题。
$ zypper --no-gpg-checks install package
忽略仍在运行的 zypper
在开发应用程序期间,忽略 zypper 的锁可能很有用(不要在生产机器上尝试此操作!)。
$ export ZYPP_READONLY_HACK=1 $ zypper ...