我无法同步我的 archlinux。当我尝试使用pacman
它时得到这个:
ThinkPad-de-Micael_Andre% sudo pacman -Syu
[sudo] password for dmicaelandre:
Sorry, try again.
[sudo] password for dmicaelandre:
:: Synchronizing package databases...
error: failed to update core (unable to lock database)
error: failed to update extra (unable to lock database)
error: failed to update community (unable to lock database)
error: failed to update multilib (unable to lock database)
error: failed to update archlinuxfr (unable to lock database)
error: failed to update blackarch (unable to lock database)
error: failed to synchronize any databases
error: failed to init transaction (unable to lock database)
error: could not lock database: File exists
if you're sure a package manager is not already
running, you can remove /var/lib/pacman/db.lck
显然 pacman 正在被另一个进程使用。我怎样才能去pacman
上班?
答案1
当一个程序说其他东西(包括它自己的另一个实例)已锁定资源时,首先要检查的是某些东西是否确实正在运行并使用该资源。在确认没有任何东西真正使用它后,您可以解除锁定。
通常程序会告诉您哪个进程正在使用该资源,或者告诉您如何删除锁定。在这种情况下,包管理器数据库被该文件锁定db.lck
,并且错误消息显示要执行remove /var/lib/packman/db.lck
.
原因通常是上次使用该程序时未正确结束并自行解除锁定。这可能是触发并中止的错误,或者系统可能已终止进程而不给其清理机会。系统也可能已冻结、关闭或断电。这些事件中的任何一个都可能导致资源锁保留在文件系统中,并且需要手动删除。
当然,始终检查实时进程在删除任何锁定文件之前。