Ubuntu20.04 上执行程序时遇到找不到 libcrypt.so.1这个问题,先确认是否真的没有这个库
$ whereis libcrypt.so.1
libcrypt.so: /lib/x86_64-linux-gnu/libcrypt.so.1 /usr/lib/x86_64-linux-gnu/libcrypt.so
$ ls -l /lib/x86_64-linux-gnu/libcrypt.so.1
lrwxrwxrwx 1 root root 17 Mar 11 2020 /lib/x86_64-linux-gnu/libcrypt.so.1 -> libcrypt.so.1.1.0
$ ls -l /lib/x86_64-linux-gnu/libcrypt.so.1.1.0
-rw-r--r-- 1 root root 202760 Mar 11 2020 /lib/x86_64-linux-gnu/libcrypt.so.1.1.0
有啊,怎么回事?
优快云上看到有人也遇到这个问题,模仿他们的方法,
在/etc/ld.so.conf中加入/lib/x86_64-linux-gnu 这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置()
$ sudo ldconfig -v | grep libcrypt.so.1
/sbin/ldconfig.real: Can't stat /usr/local/lib/x86_64-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.31.so is the dynamic linker, ignoring
libcrypt.so.1 -> libcrypt.so.1.1.0
/sbin/ldconfig.real: /lib32/ld-2.31.so is the dynamic linker, ignoring
然后再执行下程序,仍然提示找不到这个库文件。
后来百度google查了一通,都没能找到正确的解决方法。
突然意识到可能那个程序需要的是32bit的库文件。
于是安装32bits的libcrypt.so.1, 再执行程序,问题解决了!
安装32位 libcrypt.so.1方法如下:
Ubuntu20.04上,libcrypt1这个包的i386版本提供32位的 licrypt.so.1,命令如下:
$ sudo apt install libcrypt1:i386
如果上述命令不能成功执行,可能需要先使能32bits,命令如下:
sudo dpkg --add-architecture i386
sudo apt update