Amazon web services AWS Ubuntu 18.04 AMI软件包安装失败

Amazon web services AWS Ubuntu 18.04 AMI软件包安装失败,amazon-web-services,ubuntu,amazon-ec2,ubuntu-18.04,aws-code-deploy,Amazon Web Services,Ubuntu,Amazon Ec2,Ubuntu 18.04,Aws Code Deploy,每当AWS autoscaling组启动新的ubuntu实例时,我尝试在该实例上安装任何软件包时,都会出现以下错误: [stderr]E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) [stderr]E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), 是否有

每当AWS autoscaling组启动新的ubuntu实例时,我尝试在该实例上安装任何软件包时,都会出现以下错误:

[stderr]E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
[stderr]E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend),
是否有其他流程使用它


我试图找到一个解决方案并手动修复了它,但我不知道为什么每当autoscaling group启动一个新的ubuntu实例时,它会给出以下错误。

当任何命令更新ubuntu或安装一个新的应用程序时,它会锁定dpkg(Debian软件包管理器)。 要确定问题,请查看日志

  • 如果您的系统正在安装一些更新,您可能会发现journalctl日志
    journalctl-u apt daily.service
    。这通常发生在系统设置为更新itslef时,您会注意到此
    ps-ef|grep apt.systemd.daily
    的此类活动,您可以在文件
    /etc/apt/apt.conf.d/20自动升级中检查这些设置
  • /var/log/dpkg.log*
    (可能会轮换)检查这些日志,以查找所有服务都试图安装哪些服务
  • 确定问题后,可以使用以下方法解决:

  • 如果系统正在更新,则通过在引导脚本的
    --user data
    中执行sleep命令来尝试等待
  • 如果您第一次安装的服务/应用程序阻塞了另一个服务/应用程序,那么请设置一个条件,等待/休眠直到第一个服务启动,依此类推。 这是Ubuntu 16.04 LTS中的一个常见问题,您可以在解决方案代码中找到相同的问题
  • 引用链接中的代码片段:
    直到服务代码部署代理状态>/dev/null 2>&1;做
    睡60
    rm-f安装
    wgethttps://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/install
    chmod+x./install
    sudo./install auto
    服务代码部署代理重新启动
    
    在UserData运行前/运行时,将SSH发送到实例中,并检查哪个进程已获得锁:

    $ lsof /var/lib/dpkg/lock-frontend
    
    此外,在UserData中执行所有其他步骤后,请尝试在最后一步启用CodeDeploy agent,如:


    是否还有其他东西也在运行,例如SSM的状态管理器?如果您试图在包管理器的另一个实例已经运行时使用
    apt
    ,则会发生这种情况。QuickGoogle指出,这可能是基于GUI的包管理器导致的错误。如果您使用图形,请考虑在安装之前先杀掉这个进程。因此,我应该等待进程结束,然后使用APT吗?again@Marcin我在用户数据中预先配置了codedeploy代理。可能是这样。检查。CodeDeploy agent可能导致asg出现的问题已记录在案。