Вопрос или проблема
Я столкнулся с ошибкой при попытке генерировать кулинарную книгу с помощью команды chef generate cookbook test-cookbook
. Сообщение об ошибке, которое я получил, выглядит следующим образом:
ОШИБКА : статус выхода 127
/opt/chef-workstation/embedded/bin/ruby: ошибка при загрузке общих библиотек: libcrypt.so.1: невозможно открыть общий объектный файл: Нет такого файла или каталога
Ошибка, похоже, вызвана отсутствующей общей библиотекой под названием libcrypt.so.1
.
Как я могу решить эту проблему и успешно сгенерировать кулинарную книгу?
Система сообщает вам, что необходимо установить libcrypt.so
.
Вы можете проверить с помощью ldd $(type -p chef)
, который перечисляет общие библиотеки, необходимые chef
. Поскольку chef
использует функции в libcrypt.so
, и у вас она не установлена, chef
не может работать.
На Ubuntu, нужно найти пакет для установки (чтобы получить libcrypt.so
) с помощью:
dpkg -S libcrypt.so
но вы не сообщили нам, какую дистрибуцию вы используете.
У меня была такая же проблема, установка libxcrypt-compat
кажется, решила мою проблему.
sudo pacman -Syu libxcrypt-compat
Вот как я это решил.
Если вы столкнулись с этой ошибкой при выполнении команды
# 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
Ответ или решение
Ошибка при генерации поваренной книги: Отсутствующая общая библиотека "libcrypt.so.1"
При попытке сгенерировать поваренную книгу с помощью команды chef generate cookbook test-cookbook
вы столкнулись с ошибкой, указывающей на отсутствие общей библиотеки libcrypt.so.1
. Данная проблема часто возникает из-за неправильной конфигурации системы или отсутствия необходимых компонентов, необходимых для выполнения Chef Workstation.
Причина ошибки
Ошибка, которую вы наблюдаете, следующая:
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
, требующуюся для корректной работы Chef Workstation и, в частности, Ruby, на котором он основан.
Решение проблемы
Чтобы исправить эту ошибку, необходимо установить недостающую библиотеку. Вот основные шаги для различных дистрибутивов Linux:
Для Ubuntu/Debian
- Откройте терминал и выполните команду для поиска пакета, который содержит библиотеку:
dpkg -S libcrypt.so
- Установите необходимый пакет (обычно это
libcrypt1
илиlibxcrypt
). Вы можете сделать это с помощью команды:sudo apt update sudo apt install libcrypt1
Для CentOS/RHEL/Fedora
- Обновите систему и установите необходимые пакеты:
sudo yum update sudo yum install glibc
- Проверьте наличие библиотеки:
find / -name "libcrypt.so.1" 2>/dev/null
- Если результат пустой, попробуйте найти и установить библиотеку:
yum provides "*/libcrypt.so.1" yum install "*/libcrypt.so.1"
Для Arch Linux
Если вы используете Arch Linux, установка пакета libxcrypt-compat
может решить проблему:
sudo pacman -Syu libxcrypt-compat
Проверка после установки
После установки библиотеки, убедитесь, что она теперь доступна в вашей системе. Используйте команду ldd
для проверки зависимостей:
ldd $(type -p chef)
Если библиотека отображается в списке, а команда chef generate cookbook your_cookbook_name
теперь выполняется без ошибок, значит проблема решена.
Заключение
Ошибки, связанные с отсутствующими библиотеками, могут быть устранены установкой необходимых пакетов. Следуя приведенным выше инструкциям, вы сможете успешно сгенерировать поваренную книгу в Chef. Если проблема не разрешилась, рекомендуется проверить конфигурацию системы и сообщения об ошибках, чтобы выявить другие потенциальные проблемы.
Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.