我所做的就是使用 ack 运行一个简单的 find 命令
$ 确认内容
并收到以下消息
/lib/libc.so.7: 未找到 /usr/local/lib/perl5/5.24/mach/CORE/libperl.so.5.24 所需的版本 FBSD_1.4
有什么想法导致这种情况吗?系统上没有任何改变?
答案1
看起来 perl5 软件包需要比系统正在使用的 C 库更新的版本。如果
- 您的系统已更新(没有待处理的软件包更新)
- 您只使用官方的 FreeBSD 软件包存储库,不使用第三方存储库
- 您的系统上没有任何自定义第三方软件安装程序,这些安装程序可能会将 perl 副本放入
/usr/lib/perl5
- 您已安装
perl5
并ack-grep
通过官方端口存储库
您是如何安装ack-grep
perl 的?如果您没有从 FreeBSD 软件包存储库 (ports) 安装 perl5 或 ack-grep,那么这可能是您的问题。
您可以尝试针对您的操作系统从源代码重新编译 perl5。./configure
脚本和链接器将找出如何使用您现有的 C 库来/lib
干净地链接它而不会出现错误(假设编译成功)。或者尝试卸载或重新安装 perl5。
还要测试系统中的其他几个程序,确保它们不会遇到相同的问题!如果这是所有非内置命令(如vi
、、、、、等)的系统范围问题——如果许多或大多数程序都出现bash
这种zsh
情况,则您的 C 库可能已被覆盖或损坏(可能是病毒、意外或软件/硬件错误/故障)。如果是这种情况,您可能必须将另一个 FreeBSD 系统中的可运行的 libc 复制到此系统(带外)以修复损坏,因为损坏的 libc 将nano
pkg
真的以维修的方式限制您使用计算机进行任何有用操作的能力。