Bootstrap Chef节点时遇libcrypt.so.1缺失错误,求解决方案
解决Chef Knife Bootstrap时libcrypt.so.1缺失的问题
问题重现
执行bootstrap命令:
knife bootstrap 172.31.2.207 --ssh-user ec2-user --sudo -i node-key.pem -N node1
目标节点返回错误:
error :The following error occurred on 172.31.2.207: error :/opt/chef/embedded/bin/ruby: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
解决方案
1. 登录目标节点
先通过SSH手动连接到出问题的节点:
ssh ec2-user@172.31.2.207 -i node-key.pem
切换到root权限:
sudo su -
2. 安装缺失的兼容库
根据节点的发行版选择对应的命令:
- Amazon Linux 3 / RHEL 9 / CentOS 9:libcrypt.so.1被拆分到
libxcrypt-compat包中,执行:dnf install libxcrypt-compat -y - Amazon Linux 2 / RHEL 8 及更早版本:直接安装glibc包即可:
yum install glibc -y
3. 重新执行Bootstrap
安装完成后,退出节点SSH连接,重新运行最初的knife bootstrap命令即可完成节点初始化。
原因说明
新的RHEL系发行版(如Amazon Linux 3)默认移除了旧版本的libcrypt.so.1库,该库原本属于glibc组件,现在被迁移到兼容性包中。而Chef的内嵌Ruby环境仍依赖这个旧版本库,因此需要手动安装兼容包来解决依赖问题。
内容的提问来源于stack exchange,提问作者jeet chauhan
相关产品推荐
相关产品推荐

