我有 Ubuntu 16.04.1 多架构。我通过 synaptic 安装了 libjpeg62。
% ldconfig -p | grep libjpeg
libjpegxr.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjpegxr.so.0
libjpeg.so.62 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjpeg.so.62
libjpeg.so.9 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjpeg.so.9
libjpeg.so.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjpeg.so.8
libjpeg.so.8 (libc6) => /usr/lib/i386-linux-gnu/libjpeg.so.8
libjpeg.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjpeg.so
这里 libjpeg.so.62 位于/user/lib/x86_64-linux-gnu
我的 LD_LIBRARY_PATH 中。但是,输入后locate libjpeg.so.62
没有返回任何内容。为什么?
另外,当我运行 teamviewer 时,它也抱怨找不到 libjpeg.so.62。
更新:正如@oranja 指出的那样,一段时间后就可以正常locate libjpeg.so.62
工作。但是 teamviewer 仍然无法检测到它。
我没有管理员权限sudo
,但可以gksu
使用我的用户密码运行。所以我的计划是通过 synaptic 安装 teamviewer 的所有依赖项,然后运行 .tar.gz 便携版 teamviewer。欢迎提出任何想法。
答案1
这需要一些时间。索引locate
默认存储在:
/var/lib/mlocate/mlocate.db
并且它会由实用程序定期更新updatedb
。
如果您运行updatedb
但仍然locate
没有找到libjpeg.so.62
,那就很奇怪了,值得检查配置。
至于 TeamViewer,我怀疑问题在于您安装了 32 位版本的 TeamViewer,它会查找其依赖项的 32 位版本。
查看此支持文章: https://www.teamviewer.com/en/help/363-how-do-i-install-teamviewer-on-my-linux-distribution
还有这个问题: 使用 64 位系统安装了 Teamviewer,但出现依赖性错误
编辑:
为了TeamViewer 12.0.71510,dpkg -I
报告以下依赖项:
libc6 (>= 2.11), libgcc1, libasound2, libdbus-1-3, libexpat1, libfontconfig1, libfreetype6, libjpeg62, libsm6, libxdamage1, libxext6, libxfixes3, libxinerama1, libxrandr2, libxrender1, libxtst6, zlib1g
您可以批量安装所有这些,也可以仅安装 TeamViewer 抱怨的那些,但无论哪种方式,您都需要添加规范:i386
。例如:libc6
成为libc6:i386
和libjpeg62
成为libjpeg62:i386
。(这也在我上面链接的答案中进行了解释,但那里的依赖项列表已经过时了)。
如果您必须使用synaptic
,那么有一个“架构”过滤器可能有助于找到这些依赖项的 i386 版本。