當前位置: 首頁>>技術教程>>正文


xorg – Steam 無法在 Ubuntu 16.04 上啟動

, , ,

問題描述

重新安裝後,更新已下載,但即使從終端也無法啟動。這是它給出的錯誤消息:

Running Steam on ubuntu 16.04 32-bit  
STEAM_RUNTIME is enabled automatically  
[2016-04-25 09:12:35] Startup - updater built Mar 31 2016 19:10:48  
SteamUpdateUI: An X Error occurred  
X Error of failed request:  BadValue (integer parameter out of range for operation)

最佳回答

我遇到了同樣的問題,我能夠按照 http://ubuntuforums.org/showthread.php?t=2275526 的說明解決這個問題:

This is a problem with steam and ubuntu 15.04. Steam bundles old libs and are colliding with mesa drivers, that is also why closed drivers aren’t seeing this problem.

There is a open bug in steam github the workaround for now is to remove the old lib version, at least until valve fix the issue in their startup script or similar. So enter this folders and do this

Code:

cd $HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu mv libstdc++.so.6 libstdc++.so.6.bak cd $HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu mv libstdc++.so.6 libstdc++.so.6.bak 

It worked for me… but please note that if some game required that old lib from the steam runtime, it may crash (that is why should be valve fixing this)

編輯:線程中的步驟已經引用自 Problem with installing Steam on Ubuntu 15.04+ ,因此如果這些說明不足以解決您的問題,您可以去那裏了解更多詳細信息。

次佳回答

上麵的答案對我來說是正確的,盡管當我試圖讓 Steam 在 16.04 上運行時文件的路徑並不完全相同,但我需要的路徑是

~/.steam/bin/steam-runtime/i386/usr/lib/i386-linux-gnu

同樣在第一次更新後我不得不再次這樣做,否則它仍然不會更新。

第三種回答

與其刪除 libstdc++,不如先調查此錯誤是否是由不明確的 libGL 符號鏈接引起的。

請參閱我的其他答案,該答案也適用於我解決此問題 https://askubuntu.com/a/903488/364084

我將在此處粘貼內容:

如果您使用的是 nvidia 驅動程序,有時您會看到 libGL.so.1 指向 mesa 和 nvidia 提供的不明確的 libGL。要對此進行測試,您可以運行此命令

$ sudo ldconfig -p | grep -i gl.so

輸出類似於:

    libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
    libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2
    libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
    libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
    libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0
    libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so
    libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1
    libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1
    libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so
    libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so

現在我隻需要刪除 mesa 提供的庫,一切正常。

$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12748.html,未經允許,請勿轉載。