Bash – 如果apt-get / dpkg正在运行,如何检查是否可以安装软件
发布时间:2020-12-16 01:47:26 所属栏目:安全 来源:网络整理
导读:在bash脚本中,我想安装一个包.在明智地这样做之前,我需要检查是否有其他的apt-get或dpkg实例已经在运行.如果是这种情况,apt-get将失败,因为它已经被锁定. 是否足以检查/ var / lib / dpkg / lock和/ var / lib / apt / lists / lock是否存在,如果两者都不存
在bash脚本中,我想安装一个包.在明智地这样做之前,我需要检查是否有其他的apt-get或dpkg实例已经在运行.如果是这种情况,apt-get将失败,因为它已经被锁定.
是否足以检查/ var / lib / dpkg / lock和/ var / lib / apt / lists / lock是否存在,如果两者都不存在,安装是否安全? 解决方法
检查锁定文件是不够的,不可靠.也许您真正想要做的是检查dpkg数据库是否被锁定.我使用以下方法做到这一点:
## check if DPKG database is locked dpkg -i /dev/zero 2>/dev/null if [ "$?" -eq 2 ]; then echo "E: dpkg database is locked." fi 希望有更好的方法…… apt-get check >/dev/null 2>&1 if [ "$?" -ne 0 ]; then echo "E: `apt-get check` failed,you may have broken packages. Aborting..." fi (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |