Назад | Перейти на главную страницу

Исправить отсутствующую библиотеку во FreeBSD

При запуске samba на моей машине FreeBSD я получаю сообщение об ошибке

/libexec/ld-elf.so.1 : Shared object "libgcrypt.so.15" not found, required by "smbd"

Важно сказать, что я как-то "сломал" это при обновлении некоторых других портов с помощью диспетчера портов.

Поиск в Google не особо помог.

Если libgcrypt был каким-то образом обновлен, вам может потребоваться обновить все порты, которые от него зависят (например, samba может быть одним из них). Попробуйте запустить:

portupgrade -rf libgcrypt
portmaster -r libgcrypt

Весьма вероятно, что при условии, что Samba раньше работала на хосте, обновление другого порта или пакета заменило libgcrypt.so.15 с более поздней версией, а smbd двоичный файл был связан с этой конкретной версией. Проверьте, есть ли у вас libgcrypt.so символическая ссылка, указывающая на версию с другим номером.

В этом случае, предполагая, что более новая версия имеет обратную двоичную совместимость, вы сможете обойти это, создав символическую ссылку из libgcrypt.so.15 к более новой версии, которая у вас есть. Однако рекомендуется пересобрать Samba с более новой версией, если есть какие-либо различия во включаемых файлах библиотеки.

Другая возможность состоит в том, что пакет, содержащий libgcrypt.so был удален (из-за новой конфликтной зависимости или устаревания), но если Samba была установлена ​​из порта FreeBSD, это должно было вызвать предупреждение.