在 ubuntu 15.04 安裝 Steam 時發生錯誤

在 ubuntu 15.04 安裝 Steam 時發生錯誤
agung@agung-K43SJ:~$ steam
Running Steam on ubuntu 15.04 64-bit

STEAM_RUNTIME is enabled automatically

Installing breakpad exception handler for appid(steam)/version(0)

libGL error: unable to load driver: nouveau_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: nouveau

libGL error: unable to load driver: swrast_dri.so

libGL error: failed to load driver: swrast

在此之前,我也嘗試從終端安裝 Steam,但下載更新後它沒有啟動。

誰能幫我找到安裝 Steam 的解決方案?

答案1

簡潔版本:

使用以下命令在終端機中啟動 steam:

LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam

而不是僅僅steam

長版:

Steam無法開啟nouveau_dri.so負責與圖形驅動程式通訊的共享庫。若要檢查驅動程式是否啟用了 OpenGL,請執行:

DISPLAY=:0 glxinfo | grep -i direct

輸出應該是:

direct rendering: Yes

在調試模式下運行 steam:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

給我們輸出,其中以下幾行給了我們提示:

libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/nouveau_dri.so
libGL: dlopen /usr/lib/i386-linux-gnu/dri/nouveau_dri.so failed (/home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/i386-linux-gnu/dri/nouveau_dri.so))

看來steam使用不同版本的libstdc++.so.6.讓我們檢查一下 steam 使用的是哪個版本:

ls -l ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6  

lrwxrwxrwx 1 user user 19 Jul 18  2014 /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.18

因此,Steam 使用 ABI 版本 18 載入 LibC6,而驅動程式需要版本 20 LD_PRELOAD

LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam

有點不直觀的 $LIB 參數在 ld.so 中根據正在啟動的進程的平台擴展到正確的路徑(man 8 ld.so 了解詳細資訊)。

您可以使用以下內容建立腳本來運行它,而不是steam

#!/bin/bash
# Export so all child processes are affected as well
export LD_PRELOAD='/usr/$LIB/libstdc++.so.6'
export DISPLAY=:0
#export LIBGL_DEBUG=verbose
steam

STEAM_RUNTIME更好的腳本可以檢查全域 LibC6 版本是否比and only then中的版本更新LD_PRELOAD

更多詳細資訊可以參見這裡。請注意,我在 Debian 上測試了它,現在它已經在 Ubuntu VIVIRT 15.04 上測試並且工作正常。

答案2

在這裡找到了另一個幫助我啟動 Steam 用戶端的解決方案 -

https://wiki.archlinux.org/index.php/Steam/Troubleshooting

我運行了這個命令 -

find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete

現在 Steam 無需任何額外的預先載入即可啟動。希望這對在 Ubuntu 16.04 上遇到相同問題的每個人都有幫助

答案3

也許gccSteam 運行時中的庫與您的mesa驅動程式不相容。備份您的主資料夾,然後嘗試刪除這些庫檔案:

rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1

答案4

顯然,當一個人嘗試在其中安裝 Steam 時,就會發生此錯誤64位烏班圖15.04。

我在我的機器上安裝了全新的 Ubuntu 15.04。我還安裝了 NVIDIA 專有顯示卡驅動程式。

我收到了這個錯誤,但仔細查看後我發現steam是一個32位應用程序,所以我安裝了一些32位庫並重新安裝了NVIDIA驅動程序蒸氣能夠啟動。

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo ./NVIDIA-Linux-x86_64-352.63.run

最後一個命令應該是您的驅動程式安裝程式。

當驅動程式安裝程式要求安裝 32 位元庫時,請按一下「是」。

相關內容