在Ubuntu 16.04 LTS中无法打开Steam


102

上周五之前,我从未使用过Ubuntu或任何其他Linux操作系统。就我所知,我可能安装了错误的Ubuntu并缺少组件。如果您使用的是最简单的术语,我希望这样做,但是如果需要的话,我可以进行一些谷歌搜索。我刚刚安装了适用于Ubuntu 16.04的Steam,但在启动器中单击它时无法打开。图标闪烁几秒钟,停止,然后什么也没有发生。我看了看系统监视器,然后出现蒸汽,但是结束了该过程,然后再尝试无济于事。听说尝试打开无法通过终端运行的应用程序会告诉您错误是什么,所以我尝试了此操作,并得到以下提示:

Running Steam on ubuntu 16.04 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0)
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

请帮助我只想再次玩CS:GO。


似乎是驱动程序问题。您正在使用什么驱动程序以及拥有什么图形卡?我也发现了这一点:wiki.archlinux.org/index.php/Steam / ...-与免费的AMD驱动程序有关。.您能否在“其他驱动程序”中看到可以选择的其他任何驱动程序?
Joakim Koed '16

我矮小的东芝笔记本电脑配备了AMD A4-5000 APU和Radeon HD 8330集成显卡。不是很强大。“其他驱动程序”菜单中唯一的驱动程序是AMD CPU的专有驱动程序。是否有其他可行的驱动程序?
Never2MuchPizza

不确定该GPU:/但我会检查链接,有一些解决方法。
Joakim Koed '16

之后停了下来assert_20160820112154_1.dmp[8558]: file ''/tmp/dumps/assert_20160820112154_1.dmp'', upload yes: ''CrashID=bp-3f997128-c49b-4a1f-9f2f-9d7f82160819''
卡斯珀

@ Never2MuchPizza(16.04版),对于大多数AMD GPU,您可以使用开源驱动程序(专有的驱动程序已被弃用),请参阅help.ubuntu.com/community/RadeonDriver
qkrijger

Answers:


158

仅在Ubuntu 16.04中存在此问题。在ubuntu 16.10中,steam:i386从Ubuntu的multiverse存储库安装软件包(默认情况下,该存储库已启用),并且大多数问题已得到解决。要在Ubuntu 16.04上修复:

  1. 推荐的解决方案:

    如果您刚刚安装了Steam,请确保已关闭Steam,然后转到~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/并删除该链接libstdc++.so.6

    rm ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
    

    就是这样,现在应该开始没有问题了。让它进行更新。更新后,如果消息相同(第一次更新后将重新创建文件),请确保关闭了Steam并执行相同的操作。另外,如果您有64位系统,请转到~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/并删除libstdc++.so.6

    rm ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
    rm ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    
  2. 在某些系统中,它libstdc++.so.6会不断被重新创建。如果是这种情况,请创建steam.sh具有可执行权限的脚本:

    #!/bin/bash
    export LD_PRELOAD='/usr/$LIB/libstdc++.so.6'
    export DISPLAY=:0
    steam
    

    然后在Steam桌面条目中更改Exec=steam.sh脚本的绝对路径处的行。每次您要玩游戏时,请先使用修改后的桌面条目打开Steam,然后从Steam内部运行游戏。资料来源:https : //wirejungle.wordpress.com/2015/01/09/how-to-fix-broken-steam-linux-client-with-radeon-graphics-driver-workaround/


有效!为什么该文件引起问题?
Goldname '16

6
@Goldname Steam使用其自己的库来独立于系统的库。但是,它不能包含所有内容(如所有驱动程序和更多内容),并且radeon驱动程序使用libstdc ++。so文件,该文件是较新的版本,与Steam运行时所包含的版本不兼容。通过删除该文件,您可以使它查找系统的库,而不是一个Steam运行时所拥有的库。
Thanos Apostolou,2016年

在Ubuntu 16.04上也适用于RocketLeague。
jvriesem

为我工作。启动“正在更新蒸汽...”窗口。谢谢!
marc-andre benoit

1
@ThanosApostolou是的,libGL errorS是-我必须从这里运行第一个命令:steamcommunity.com/app/221410/discussions/0/412446292752412961/…–
Enigma

42

我在Ubuntu存储库中使用软件包安装了Steam,而不是Steam中的.deb文件。显然,Ubuntu提供的软件包已被修改以在Ubuntu上运行。

  1. 卸下阀门包装:

    sudo apt purge steam-launcher
    
  2. 如果尚未使用软件包删除存储库,请删除该存储库:

    sudo rm /etc/apt/sources.list.d/steam.list
    
  3. 重新加载源列表:

    sudo apt update
    
  4. 从仓库中安装Steam:

    sudo apt install steam
    

有关更多详细信息,请参见:https : //www.reddit.com/r/linux_gaming/comments/57clur/cant_run_steam_on_ubuntu_1610/


4
它在Ubuntu 17.10上对我有效。
Chofoteddy

我也刚刚在Ubuntu 17.10上尝试过,它对我有用。
dspacejs,

也为我工作
-Tek

同一问题也解决了Elementary OS Loki
Michael Fulton

这只是为我工作的PopOS(Ubuntu的)
整蛊

26

尝试这个 :

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

1
这是IMO的更好答案。请注意,这些路径在Mint 18(16.04)中不正确。应该是/.steam/steam/ubuntu12_32/...(请注意/steam/之前的路径中的多余内容/ubuntu12_32)。
dhaupin

当我第一次尝试此操作时,路径就像您的注释中所示,但是在全新安装后,它没有多余的“ / steam /”。这是为什么?
Igor V.

只有前两个命令在17.04上对我有用,但是随后Steam起作用了。谢谢。
我们是博格

9

对我有用的是将这个环境变量添加到可执行文件的前面steam

env LD_PRELOAD='/usr/$LIB/libstdc++.so.6' steam

尝试在控制台中运行它,看看它是否有效。

如果是,则可以编辑Steam桌面快捷方式以使用以下命令:

env LD_PRELOAD='/usr/$LIB/libstdc++.so.6' /usr/bin/steam %U

而不是旧值:

/usr/bin/steam %U

同样,您可以更新CS:GO桌面快捷方式以使用以下命令:

env LD_PRELOAD='/usr/$LIB/libstdc++.so.6' steam steam://rungameid/730

我不知道它在做什么,但似乎对我有用...

希望它会有所帮助,我希望Valve会尽快修复它!


此版本适用于Ubuntu 17.10
Jonathan,

2

日志发布表明图形驱动程序未正确安装。

重新安装16.04时遇到类似的问题,我重新安装了图形驱动程序

在安装带有NVIDIA图形的Ubuntu 16.04之后,图形问题下面的链接上的第一个答案


1

2019年

Steam二进制是32位。Nvidia驱动程序的最新版本放弃了对32位应用程序的支持。要在Ubuntu 18.04上解决此问题,请执行以下操作:

  1. sudo add-apt-repository ppa:graphics-drivers/ppa
  2. 运行nvidia-settings并检查您的Nvidia驱动程序主版本。例如,我的是:NVIDIA驱动程序版本:430.26(所以是430)
  3. sudo apt install libnvidia-gl-{{MAJOR VERSION NUMBER}}:i386

例如,作为我的Nvidia驱动程序主版本430,我的命令最终被 sudo apt install libnvidia-gl-430:i386

但是,Steam认真地是32位.... ??



0

安装Steam的Solus版本而不是官方(.deb)版本可以解决此问题。

首先,删除正式版本:

sudo apt purge steam-launcher

然后安装Solus版本:

sudo snap install --edge solus-runtime-gaming
sudo snap install --devmode --edge linux-steam-integration

现在从破折号启动Steam。


0

对于已经来到这里并想要粗略解决方案的Gentoo用户,这就是我所做的。

第1步

删除了违规者:

rm -i $(find ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed \
    -iname 'libstdc++*' -or -iname 'libgcc_s*')

第2步

创建启动器脚本:

#!/bin/sh
export LD_PRELOAD=$(echo /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/{,32/}{libstdc++.so.6,libgcc_s.so.1})
export DISPLAY=:0
/usr/bin/steam

它会产生许多有关“错误的ELF类”的错误警告,但我将其忽略。另外,根据已安装的gcc版本更改路径。随时进行改进(使用gcc-config -L等)


0

Ubuntu 18.04:成功卸载了当前的Steam(与Steam相关的所有目录)后,请打开终端并输入以下内容以进行全新的安装:

sudo add-apt-repository multiverse

一旦正确,输出应为:

为所有来源启用了“多元”分发组件


然后安装Steam(使用终端,这很重要,以便查看潜在的错误消息)

sudo apt install steam
sudo apt update

安装成功后,只需键入 steam

steam

在这里要么起作用,然后再开心!或者您有以下错误消息:

tar: This does not look like a tar archive
xz: (stdin): File format not recognized
tar: Child returned status 1
tar: Error is not recoverable: exiting now
find: ‘/home/$USERNAME/.steam/ubuntu12_32/steam-runtime’: No such file or directory

如果您有此消息,请不要放弃并运行:

mkdir "/home/$USERNAME/.steam/ubuntu12_32/steam-runtime"

现在应该可以了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.