mutt 找不到 libtasn1.so.3 动态链接库文件的解决方法

系统为 CentOS 6.6,使用 yum 安装的 mutt,无法运行,提示 libtasn1.so.3 => not found,使用 ldd 命令来查看可执行文件依赖的动态链接库有哪些。

ldd /usr/bin/mutt

libtasn1.so.3 => not found

解决步骤一:在系统中查找这个文件

find /* -type f -name "libtasn1*"

/usr/lib/libtasn1.so.6.4.0
/usr/lib/pkgconfig/libtasn1.pc
/usr/lib/libtasn1.so.6.4.2

但是发现这个库文件比较新,mutt 没办法使用,决定编译对应的 libtasn1 版本,libtasn1.so.3 对应的版本可能是 libtasn1-0.3.x 这个系列。

解决步骤二:手动编译 libtasn1

wget http://ftp.gnu.org/gnu/libtasn1/libtasn1-0.3.10.tar.gz
tar zxf libtasn1-0.3.10.tar.gz
cd libtasn1-0.3.10
# 指定安装目录
./configure --prefix=/usr/local/libtasn1-0.3.10
make && sudo make install

ls -lrt /usr/local/libtasn1-0.3.10/lib
total 456
-rwxr-xr-x 1 root root 172275 Apr 28 18:18 libtasn1.so.3.0.10
lrwxrwxrwx 1 root root 18 Apr 28 18:18 libtasn1.so.3 -> libtasn1.so.3.0.10
lrwxrwxrwx 1 root root 18 Apr 28 18:18 libtasn1.so -> libtasn1.so.3.0.10
-rwxr-xr-x 1 root root 833 Apr 28 18:18 libtasn1.la
-rw-r--r-- 1 root root 282478 Apr 28 18:18 libtasn1.a
drwxr-xr-x 2 root root 4096 Apr 28 18:18 pkgconfig

cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
cd /etc/ld.so.conf.d/
echo "/usr/local/libtasn1-0.3.10/lib" > libtasn1-0.3.10.conf

/sbin/ldconfig
ldd /usr/bin/mutt

libtasn1.so.3 => /usr/local/libtasn1-0.3.10/lib/libtasn1.so.3 (0x00007fd6105b6000)

mutt -v
Mutt 1.5.20 (2009-12-10)

至此问题解决。