我在尝试使用命令生成食谱时遇到错误chef generate cookbook test-cookbook
。我收到的错误消息如下:
ERROR : exit status 127
/opt/chef-workstation/embedded/bin/ruby: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
该错误似乎是由缺少名为 的共享库引起的libcrypt.so.1
。
如何解决此问题并成功生成食谱?
答案1
它告诉你需要安装libcrypt.so
.
您可以检查ldd $(type -p chef)
which 列出了chef
.由于chef
使用了 中的功能libcrypt.so
,并且您没有安装它,chef
因此无法工作。
libcrypt.so
在 Ubuntu 上,可以使用以下命令找到要安装(以获取)的软件包:
dpkg -S libcrypt.so
但您没有让我们知道您正在使用哪个发行版。
答案2
我遇到了同样的问题,安装libxcrypt-compat
似乎解决了我的问题。
sudo pacman -Syu libxcrypt-compat
答案3
我就是这样解决的。
如果您在运行命令时遇到此错误
# chef generate cookbook my_cookbook
退出状态 127 /opt/chef-workstation/embedded/bin/ruby:加载共享库时出错:libcrypt.so.1:无法打开共享对象文件:没有这样的文件或目录
这意味着你libcrypt.so.1
可能失踪了。您可以通过以下方式在 Linux/AWS/Redhat 中安装所有软件包:
sudo yum update
sudo yum install glibc
现在搜索图书馆
find / -name "libcrypt.so.1" 2>/dev/null
如果 find 命令没有显示任何内容,则意味着“libcrypt.so.1“仍然缺失。通过以下方式手动下载并安装它:
yum provides "*/libcrypt.so.1"
yum install "*/libcrypt.so.1"
现在再次搜索,它会显示图书馆的路径。
find / -name "libcrypt.so.1" 2>/dev/null
现在运行chef generate
命令,它很可能会起作用。
# chef generate cookbook my_cookbook