Arch Linux ca-certificates-utils 更新失败
近几次在更新Arch时都看到ca-certificates-utils出现冲突(conflict)无法更新,丹尼每次选择跳过不更新,后来再仔细的查看资讯后才清楚的要手动处理,无法透过pacman自动解决。
$ sudo pacman -S ca-certificates-utils [sudo] password for danny: resolving dependencies... looking for conflicting packages... Packages (1) ca-certificates-utils-20170307-1 Total Installed Size: 0.01 MiB Net Upgrade Size: 0.00 MiB :: Proceed with installation? [Y/n] y (1/1) checking keys in keyring [######################] 100% (1/1) checking package integrity [######################] 100% (1/1) loading package files [######################] 100% (1/1) checking for file conflicts [######################] 100% error: failed to commit transaction (conflicting files) ca-certificates-utils: /etc/ssl/certs/ca-certificates.crt exists in filesystem Errors occurred, no packages were upgraded.
下载更新套件
下一个步骤解决冲突
会影响到线上更新,所以必需先将需要更新的套件下载至本机快取中,执行以下指令:
pacman -Syuw
执令中包含更新套件资料库( y )、系统更新( u )、只下载更新套件不安装( w ),执行完成后代表准备工作已经完成。
解决冲突
当丹尼执行一般更新时出现下面这问题讯息:
$ sudo pacman -S ca-certificates-utils : : : error: failed to commit transaction (conflicting files) ca-certificates-utils: /etc/ssl/certs/ca-certificates.crt exists in filesystem Errors occurred, no packages were upgraded.
从错误讯息中看到主要的冲突是ca-certificates.crt
这个档,试着将此档案删除,删除前需要用root权限删除:
sudo rm -rf /etc/ssl/certs/ca-certificates.crt
再次强调,pcman下载更新的流程是使用https会使用到ssl认证的档案,您必需先确实完成下载更新套件
中先将更新套件下载至本机端,否则删除后再进行更新会看到下面的问题:
error: failed to update testing (download library error) error: failed retrieving file 'core.db' from delta.archlinux.org : error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none
如果你真的不小心已经产生上图的错误时,先只安装ca-certificates-utils套件:
sudo pacman -S ca-certificates-utils
再重新照着解决冲突
的方式重新做一次。
开始更新
务必解决冲突后再进行更新,先前已将更新档下载完成,这次进行更新时会离线更新,速度会比较快一点
pacman -Su
完成后请重新启动电脑让系统使用新版本套件执行。
更新日志
日期 | 内容 |
---|---|
2017/06/07 | 初版 |
参考资料
a-certificates-utils 20170307-1 upgrade requires manual intervention
can’t upgrade ca-certificates-utils:/etc/ssl/certs/ca-certificates.crt
关键字
- ca-certificates-utils conflict 无法更新 更新失败 冲突
- error: failed to commit transaction (conflicting files)