指示の作成中にエラーが発生しました:共有ライブラリ「libcrypt.so.1」がありません。

指示の作成中にエラーが発生しました:共有ライブラリ「libcrypt.so.1」がありません。

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

libcrypt.soUbuntuでは、以下を使用してインストールする(購入する)パッケージを見つけることができます。

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

関連情報