更新了perl,使用vi,出錯:vi: error while loading shared libraries: libperl.so.1: cannot open shared object file: No such file or directory
網上找了下,都是解決:vi: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory ,對,就是libperl.so和libperl.so.1區別。
解決的思路跟網上相似,不過有些不同,如下:
首先要執行的檔案在那裡,用which命令
#which vi
#/usr/bin/vi
然後使用ldd命令 確認這個程式執行需要哪些動態連結程式庫
# ldd /usr/bin/vi
這個時候,你可以找到你的vi工具到底哪個地方出錯,一般都是連結問題:比如我的
libperl.so.1 => not found
好吧,這個時候,你該解決問題了:
可以確定為缺少這個檔案而不能運行.
# equery files perl|grep libper/usr/lib/libperl.so
/usr/lib/libperl.so.5.12
/usr/lib/libperl.so.5.12.2
/usr/lib/perl5/5.12.2/i686-linux/CORE/libperl.so
/usr/lib/perl5/5.12.2/i686-linux/CORE/libperl.so.5.12
/usr/lib/perl5/5.12.2/i686-linux/CORE/libperl.so.5.12.2
想想或許是我的perl更新才造成這樣的,那麼我只需要把libperl.so.1串連到以前版本的libperl.so即可
#ln -s /usr/lib/perl5/5.12.1/i686-linux/CORE/libperl.so /usr/lib/libperl.so.1但是下面語句更好:ln -s /usr/lib/libperl.so /usr/lib/libperl.so.1