加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读