ubuntu
安装软件经常遇到各种依赖以及头文件缺失,可以使用 apt-file
来查询
$ sudo apt-get install apt-file
$ sudo apt-file update
$ sudo apt-file search libz.so.1
lib32z1: /usr/lib32/libz.so.1
lib32z1: /usr/lib32/libz.so.1.2.11
libx32z1: /usr/libx32/libz.so.1
libx32z1: /usr/libx32/libz.so.1.2.11
libzadc4: /usr/lib/x86_64-linux-gnu/genwqe/libz.so.1
zlib1g: /lib/x86_64-linux-gnu/libz.so.1
zlib1g: /lib/x86_64-linux-gnu/libz.so.1.2.11
$ sudo apt-file -a i386 update
$ sudo apt-get install libwhatever:i386
使用命令更新
$ sudo apt-file update
$ sudo apt-file -a i386 update
搜索
$ sudo apt-file search
$ sudo apt-file -a i386 search
安装
$ sudo apt install libxxx
$ sudo apt install libxxx:i386
如何查找缺失依赖库,确认是否安装正确以及确认需要 32/64
$ ldd /opt/4.9.4/cc1
linux-gate.so.1 (0xf7f80000)
libmpc.so.3 => /usr/lib/i386-linux-gnu/libmpc.so.3 (0xf7f3b000)
libmpfr.so.4 => not found
libgmp.so.10 => /usr/lib/i386-linux-gnu/libgmp.so.10 (0xf7eb0000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7eab000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7ccf000)
/lib/ld-linux.so.2 (0xf7f82000)
libmpfr.so.6 => /usr/lib/i386-linux-gnu/libmpfr.so.6 (0xf7c47000)
如上最后一行只需要执行
$ sudo ln -s /usr/lib/i386-linux-gnu/libmpfr.so.6 /usr/lib/i386-linux-gnu/libmpfr.so.4
如果没有输出最后一行,执行如下命令
$ sudo apt-file -a i386 search libmpfr.so
libmpfr-dev: /usr/lib/i386-linux-gnu/libmpfr.so
libmpfr6: /usr/lib/i386-linux-gnu/libmpfr.so.6
libmpfr6: /usr/lib/i386-linux-gnu/libmpfr.so.6.0.1
$ sudo apt install libmpfr6:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/libmpfr.so.6 /usr/lib/i386-linux-gnu/libmpfr.so.4