现象:
Ubuntu系统从18.04升级到20.04后,在文件管理中打开smb共享文件失败。
分析:
查看系统日志 /var/log/syslog,发现异常log:
Dec 28 14:37:52 duqs-MS-7B89 gvfsd[11088]: /usr/lib/gvfs/gvfsd-smb-browse: symbol lookup error: /usr/lib/gvfs/gvfsd-smb-browse: undefined symbol: smbc_setOptionProtocols, version SMBCLIENT_0.2.3
从log中可以看出是 /usr/lib/gvfs/gvfsd-smb-browse 运行报错。
因为系统升级前功能是正常的,所以怀疑是版本不兼容导致的。
用 dpkg -S 命令查看报错的程序属于哪个包:
$ dpkg -S /usr/lib/gvfs/gvfsd-smb-browse
gvfs-backends: /usr/lib/gvfs/gvfsd-smb-browse
根据命令执行结果可知是属于 gvfs-backends 这个包,再用 apt list --upgradable 命令查看该程序包是否可升级 :
$ apt list --upgradable | grep gvfs
gvfs-backends/focal 1.44.1-1ubuntu1 amd64 [可从该版本升级:1.36.1-0ubuntu1.3.3]
gvfs-common/focal,focal 1.44.1-1ubuntu1 all [可从该版本升级:1.36.1-0ubuntu1.3.3]
gvfs-daemons/focal 1.44.1-1ubuntu1 amd64 [可从该版本升级:1.36.1-0ubuntu1.3.3]
gvfs-fuse/focal 1.44.1-1ubuntu1 amd64 [可从该版本升级:1.36.1-0ubuntu1.3.3]
gvfs-libs/focal 1.44.1-1ubuntu1 amd64 [可从该版本升级:1.36.1-0ubuntu1.3.3]
gvfs/focal 1.44.1-1ubuntu1 amd64 [可从该版本升级:1.36.1-0ubuntu1.3.3]
最后升级 gvfs-backends 到最新版本:
sudo apt install gvfs-backends
安装完成后samba使用恢复正常。
小结:
程序运行异常,一般先看日志看是否有异常:
- Linux系统日志目录是/var/log/,在这里可以看到很多系统和应用的运行log。
- 如果知道具体哪个程序出错,也可以在命令行执行该命令,有时可以更快地找到线索。
- dpkg -S 命令可以查看某个程序属于哪个包,通过这个可以拓展问题线索。