コマンドを使用してレシピを作成しようとするとエラーが発生します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)
機能がリストされているかを確認できます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