在AWS EC2实例中使用Chef生成Cookbook时遇共享库错误求助
解决Chef生成Cookbook时libcrypt.so.1缺失的问题
问题原因
Chef Workstation自带的预编译Ruby基于旧版glibc环境构建,依赖的libcrypt.so.1共享库在较新的Linux发行版(如Amazon Linux 2023、RHEL 9、Ubuntu 22.04+等)中已被libxcrypt提供的libcrypt.so.2替代,导致动态链接失败。
解决方案
方法1:安装兼容库包
这是最直接的修复方式,通过安装兼容包获取libcrypt.so.1:
- RHEL/CentOS/Amazon Linux系列发行版:
执行以下命令安装兼容包:
若系统使用dnf install libxcrypt-compatyum作为包管理器,替换为:yum install libxcrypt-compat - Debian/Ubuntu系列发行版:
执行以下命令安装:apt update && apt install libcrypt1
安装完成后,重新执行chef generate cookbook test-cookbook即可正常运行。
方法2:改用系统Ruby安装Chef
如果兼容包安装无效,可尝试使用系统自带Ruby环境安装Chef:
- 安装系统Ruby及开发依赖:
- RHEL/CentOS/Amazon Linux:
dnf install ruby ruby-devel gcc make - Debian/Ubuntu:
apt update && apt install ruby ruby-dev gcc make
- RHEL/CentOS/Amazon Linux:
- 通过Ruby Gem安装Chef:
gem install chef - 再次执行生成Cookbook的命令:
chef generate cookbook test-cookbook
内容的提问来源于stack exchange,提问作者Pallav Gautam
相关产品推荐
相关产品推荐

