arch实在是滚得太快了大家一定要紧跟着滚,不然如果很久不滚突然滚一下就容易滚出各种问题……
不过新的镜像好歹是出了,这下新手安装或者重装就不用经历滚滚地狱了……
====
glibc一直在把/lib/下面的文件往/usr/lib/下迁移(莫名其妙……),然后升级的时候就会一直出现这种错误:
error: failed to commit transaction (conflicting files)glibc: /lib exists in filesystemErrors occurred, no packages were upgraded.
如果是最近有滚过的系统,arch的官网上latest news里给出解决方案:
pacman -Syu --ignore glibcpacman -Su
但是我在第二步还是出现上述错误,于是就要检查下/lib被什么其它包所依赖:
grep '^lib/' /var/lib/pacman/local/*/files
如果有被glibc以外的包依赖,那么先升级那些包。但是我这里没有,所以用pacman的query查:
pacman -Qo /lib/*
这个命令可以找到不被任何包依赖的文件(……)。那么有两种情况,一种是aur,把文件名喂google即可。不过大多数情况下是这个:
error: cannot determine ownership of directory '/lib/modules'
这个里面好像是一些老版本kernel的驱动模块什么的,因为arch滚的特别快,所以就被抛弃了……(估计是arch滚动机制的问题,因为这个情况好像很普遍。arch升级机制的用户体验实在是……不过arch大概也根本不在乎什么用户体验只要他们社区自己玩得high就可以了吧……)
rm掉,不放心也可以mv。
rm -rf /lib/modules/
然后再升级glibc
pacman -Su
这个问题是已经普遍到写到wiki了,具体的情况可以参考:
和这个帖子: