修复 FreeBSD 上缺少的库

修复 FreeBSD 上缺少的库

当我在 FreeBSD 机器上启动 samba 时,我收到一条错误消息

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

必须要说的是,我在使用端口管理器更新其他一些端口时以某种方式“破坏”了它。

谷歌搜索并没有多大帮助。

答案1

如果libgcrypt以某种方式更新了,您可能需要更新所有依赖它的端口(samba 可能是其中之一)。尝试运行:

portupgrade -rf libgcrypt
portmaster -r libgcrypt

答案2

假设 Samba 之前在主机上运行良好,则很有可能更新另一个端口或libgcrypt.so.15用更高版本替换的软件包,而smbd二进制文件与该特定版本链接。检查是否有libgcrypt.so指向不同编号版本的符号链接。

在这种情况下,假设较新的版本是向后二进制兼容的,您应该能够通过创建指向libgcrypt.so.15您拥有的较新版本的符号链接来解决这个问题。但是,建议使用较新的版本重建 Samba,以防库的包含文件存在任何差异。

另一种可能性是包含的软件包libgcrypt.so已被卸载(由于新的冲突依赖或弃用),但如果 Samba 是从 FreeBSD 端口安装的,则应该发出警告。

相关内容