Package-Management

libstdc++.so.3 => 在 CloudLinux 上找不到,沒有超級使用者權限,似乎在 chroot 中。

  • January 23, 2012

我正在嘗試在具有 x86_64 架構的 CloudLinux 機器上安裝 Linux x64 BOINC 命令行界面客戶端。當我嘗試執行執行檔時,出現錯誤:

./boinc:載入共享庫時出錯:libstdc++.so.3:無法打開共享對象文件:沒有這樣的文件或目錄

當我對 boinc 執行檔執行 ldd 時,我發現:

    libstdc++.so.3 => not found

當我 yum install compat-libstdc++-33 我得到

CRITICAL:yum.cli:Config Error: Error access file for config file:///etc/yum.conf

我無權訪問任何形式的超級使用者權限,我的帳戶很可能位於 chroot 中。

如何讓我的客戶端執行?

libstdc++ 3不再是預設設置libstdc++。您仍然可以安裝它,但最好使用您的發行版包 util 來安裝它。我假設您的 BOINC 客戶端適用於您的 Arch,x86_64,而不是為 x86 編譯的。這種差異在解決依賴性問題方面很重要。

考慮到您使用的是普通使用者帳戶,理論上您應該能夠在本地執行此操作。我不確定哪個版本的 CloudLinux,但現在我假設它是 6。

## Set up Lib Path Environment
cd ~
mkdir lib
echo "export LD_LIBRARY_PATH=~/lib" >> .profile 

## Make tmp folder, download package in it
mkdir tmp 
cd tmp
wget http://64.131.90.31/PSA_10.4.4/thirdparty-rpm-CloudLinux-6-x86_64/compat-libstdc++-296-2.96-144.el6.i686.rpm

## Extract package files, get the parts we want
rpm2cpio compat-libstdc++-296-2.96-144.el6.i686.rpm | cpio -idmv
cp usr/lib/libstdc++-* ../lib

## Go in our lib folder, and create symlinks to the lib ldd told you was missing
cd ../lib
ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++.so.3

## Go back to home, and source our profile changes.
cd ~
. .profile

完成所有這些操作後,再次嘗試執行您的客戶端。您可能需要註銷並重新登錄,告訴我之後發生了什麼!

引用自:https://unix.stackexchange.com/questions/29674