安裝 IBM Tivoli Workload Scheduler時報錯:/usr/lib下找不到libstdc++.so.5
# yum whatprovides libstdc++.so.5
查找發現,libstdc++.so.5包含在安裝包compat-libstdc++-33
# yum install compat-libstdc++-33
可以進行安裝
但是安裝包有兩種:
compat-libstdc++-33.i686 : Compatibility standard C++ libraries
compat-libstdc++-33.x86_64 : Compatibility standard C++ libraries
我是64位的rhel,選擇安裝x86_64包
安裝完成后發現解決了一部分問題,有的依然進行報錯
find -name libstdc++.so.5
發現/usr/lib64下已經有了這個文件
ls -l libstdc++.so.5
/usr/lib64/libstdc++.so.5 -> libstdc++.so.5.0.7
目標是個link文件
cd /usr/lib
link -s /usr/lib64/libstdc++.so.5.0.7 libstdc++.so.5
進入到目標目錄,即無法查找到lib文件所在的位置
創建源文件到local的軟連接
至此,問題搞定
------------------------------------------------------------
Afterword:
1.查看i686發現,這是i386的優化版,實際上安裝這個包,不設定軟連接即可解決問題
2.觀察報錯信息,給出缺失文件位置/usr/lib即可看出缺失的是i386(即32位)的庫文件
3.編譯出問題時,考慮下是否gcc等三個運行庫是否安裝/支持
4.某論壇有人提示:在/usr/lib/目錄下,搜索libstdc++可以看到libstdc++.so.5和libstdc++.so.6等鏈接庫文件。但是libstdc++.so.5是打了叉的,說明libstdc++.so.5的權限有問題,用chmod 755即可解決該問題!
5.很多問題是因為權限問題造成的,多用ls -l查看文件屬性