一台主机上未找到 NFS 挂载上的共享库,但在另一台主机上工作正常

一台主机上未找到 NFS 挂载上的共享库,但在另一台主机上工作正常

关于从 NFS4 安装加载共享库,我遇到了一些非常奇怪的行为,我希望有人能够阐明它。

考虑以下:

$ ucto
ucto: error while loading shared libraries: libfolia.so.3: cannot open shared object file: No such file or directory

经过调查,我认为没有理由出现此错误:

$ which ucto
 /vol/customopt/lamachine/bin/ucto

$ echo $LD_LIBRARY_PATH
 /vol/customopt/lamachine/lib:/vol/customopt/machine-translation/lib:/vol/customopt/nlptools/lib/:

$ ls -lh /vol/customopt/lamachine/lib/libfolia.so.3*
 lrwxrwxrwx 1 proycon customopt 17 Sep 18 16:42 /vol/customopt/lamachine/lib/libfolia.so.3 -> libfolia.so.3.0.1
 -rwxr-xr-x 1 proycon customopt 9.5M Sep 18 16:42 /vol/customopt/lamachine/lib/libfolia.so.3.0.1

我确认我可以毫无问题地打开库文件。

现在当我切换到另一台主机使用完全相同的 NFS 挂载,我没有遇到任何问题,并且可以毫无问题地找到并加载该库。

安装座安装如下:

 customopt-srv.mydomain.com:/export/customopt on /vol/customopt type nfs (rw,nosuid,tcp,hard,intr,sloppy,vers=4)

这里发生了什么?是否有一些我不知道的缓存?有人遇到过类似的问题吗?我应该查看客户端还是服务器端?

客户端和服务器都运行 Ubuntu 14.04 LTS。

答案1

听起来像你的库缓存(/etc/ld.so.cache)尚未在客户端上更新。检查ldconfig -p下次问题发生时的输出以进行确认。

答案2

NFS4 使用缓存。如果您在服务器上添加/修改/删除任何文件,客户端上的 NFS4 缓存将不会注意到这一点,并将继续使用旧文件。

一段时间后,缓存的文件会失效,因为它太旧并且会发生新的查找。那时它“突然”起作用了。

相关内容