在centos上安装搜狗输入法过程中,碰到检测依赖失败。
安装环境:
[root@localhost 桌面]# rpm -ivh sogoupinyin-2.3.1.0112-2.x86_64.rpm
错误:依赖检测失败:
libstdc++.so.6(CXXABI_1.3.8)(64bit) 被 sogoupinyin-2.3.1.0112-2.x86_64 需要
libstdc++.so.6(GLIBCXX_3.4.21)(64bit) 被 sogoupinyin-2.3.1.0112-2.x86_64 需要
百度得知是GCC版本过低的原因。由于对GCC了解不多,因此直接通过网上教程进行 libstdc++.so.6升级,
在usr/lib64目录下:
复制libstdc++.so.6.0.26到/usr/lib64


安装之后,再次安装依然提示缺少依赖,不知道什么原因。有大神路过可以解释下。同时在此放出 libstdc++.so.6.20,libstdc++.so.6.25,libstdc++.so.6.26的链接,有需要的可以拿去。互联网以共享为主,但是现在各种收费充值积分VIP,实在是看不过眼啊。https://download.csdn.net/download/llggheshang/12633648
所以,我参考下面的连接升级GCC版本
https://www.jianshu.com/p/cedbdf0b6bca
安装开发必备环境
# yum groupinstall "Development Tools"
# yum install glibc-static libstdc++-static
GCC源码地址为http://ftp.gnu.org/gnu/gcc,里面有GCC的各个版本,请根据各自的需要下载。我下载的是最新版本gcc-10.1.0.tar.gz
# wget http://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.gz
# tar -zxvf gcc-10.1.0.tar.gz
# cd gcc-10.1.0
# ./contrib/download_prerequisites
//利用源码包里自带的工具下载所需要的依赖项
mkdir build
#cd build
# ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
//生成MakeFile
# make
//make的过程很长很长,参考其他文章,make命令是单核执行。可以加入-j4参数,这样就能设定为多核并行地make,会快很多。但我是用make命令执行编译的。
#make install
//编译完成后,安装。
查看,gcc变成10.1.0 版本。
[root@localhost lib64]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/10.1.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
线程模型:posix
Supported LTO compression algorithms: zlib
gcc 版本 10.1.0 (GCC)
但是,发现最新版本已经不包括GLIBCXX_3.4.20和CXXABI_1.3.8。
卸载gcc-10.1.0,安装gcc-8.3.0版本。
[root@localhost]#yum remove gcc
此时编译命令为“make -j4”,快了不止两倍。
查看版本:
[root@localhost lib64]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/8.3.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
线程模型:posix
gcc 版本 8.3.0 (GCC)
重新建立动态库连接:
删除/usr/lib64目录下的libstdc++.so.6
查找编译gcc-8.3.0生成的libstdc++.so.6.0.25
[root@localhost lib64]# find / -name "libstdc++.so*"
/root/桌面/gcc-8.3.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25
/root/桌面/gcc-8.3.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/桌面/gcc-8.3.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/桌面/gcc-8.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25
/root/桌面/gcc-8.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/桌面/gcc-8.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/桌面/gcc-8.3.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25
/root/桌面/gcc-8.3.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/桌面/gcc-8.3.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/gcc-10.1.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
/root/gcc-10.1.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/gcc-10.1.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/gcc-10.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
/root/gcc-10.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/gcc-10.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/gcc-10.1.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
/root/gcc-10.1.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/gcc-10.1.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.28
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/local/lib64/libstdc++.so.6.0.28
/usr/local/lib64/libstdc++.so.6.0.25
/usr/local/lib64/libstdc++.so
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.28-gdb.py
/opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/32/libstdc++.so
/opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so
拷贝/usr/local/lib64/libstdc++.so.6.0.25到/usr/lib64目录下并建立软连接
[root@localhost lib64] cp /usr/local/lib64/libstdc++.so.6.0.25 /usr/lib64/
[root@localhost lib64] rm libstdc++.so.6
[root@localhost lib64] ln -s libstdc++.so.6.0.25 libstdc++.so.6
通过命令查看:
[root@localhost lib64]# strings libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGTH
[root@localhost lib64]# strings libstdc++.so.6 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_TM_1
CXXABI_FLOAT128
CXXABI_1.3
CXXABI_1.3.11
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_FLOAT128
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.10
CXXABI_1.3.3
gcc更新成功。
但是安装搜狗,问题仍然没有解决。 请路过大神指导。