在 EMR 中引导期间获取 "Existing lock /var/run/yum.pid: another copy is running as pid ..."

Getting "Existing lock /var/run/yum.pid: another copy is running as pid ..." during bootstraping in EMR

我需要在我的 EMR 集群 (AMI 3.1.1) 中安装 python3 作为引导步骤的一部分。所以我添加了以下命令:

sudo yum install -y python3

但每次我都收到以下错误消息:

Existing lock /var/run/yum.pid: another copy is running as pid 1829.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum

如何避免这个错误?或者有没有办法安装 Python 3 而不通过这条路线?

试试

 sudo apt-get install -y python3

我最终从源代码安装:

wget --no-check-certificate -O Python-3.4.2.tgz "https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz"
tar xvfz Python-3.4.2.tgz
cd Python-3.4.2
./configure
make
sudo make altinstall

问题是 Amazon Linux AMI 正在执行 yum 更新作为启动的一部分。如此处所示,bootstrap 操作可以与其发生冲突。只需在安装 yum 之前睡几分钟。

sleep 120

如果您要在 Amazon Linux 上为 EC2 的启动脚本寻找 Bash 命令。这将等待 2 分钟,然后再尝试 yum 命令。