Ubuntu 15.04 이상에서 Steam 설치 문제


103

실제로 새로운 Ubuntu 15.04 64 비트를 설치했으며 Steam을 설치하려고 할 때 문제가 있습니다. 사실 스팀 웹 사이트에서 deb 패키지를 다운로드하여 설치했으며 시작할 때 아무 일도 일어나지 않습니다. 나는 그것을 터미널에서 시작하려고 노력했다.

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

당신은 우연히 amd 아키텍처를 사용하고 있습니까?

나는 radeon GPU가있는 AMD 시스템 에서이 오류가 있지만 여전히 14.10입니다. 커널을 적절하게 업데이트했지만 오류가 발생했다고 가정합니다. 내 업데이트 로그 linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)에서 이전에을 사용하고 Linux 3.16.0-37-generic있습니다.
pbhj

libstdc ++. so.6 이동의 수정이 작동하는 것 같습니다.
pbhj

askubuntu.com/questions/635851/에 게시 된 솔루션을 사용해 볼 수도 있습니다 .
Tahtisilma

답변:


115

이것은 원래 Ubuntu 15.04 / 15.10의 Steam에서 발생한 문제입니다. Steam은 오래된 라이브러리를 번들로 묶고 mesa 드라이버와 충돌하므로 닫힌 드라이버 가이 문제를 보지 못합니다. 업데이트 : 일부 항목이 누락되었을 수도 있습니다. 다른 mchid의 답변을 참조하십시오.

증기의 GitHub의 오픈 버그 .

현재 해결 방법은 적어도 밸브가 시작 스크립트 또는 이와 유사한 문제를 해결할 때까지 이전 lib 버전을 제거하는 것입니다.

따라서 다음 폴더를 입력하고이를 수행하십시오 ( x86_6432 비트 시스템 만있는 경우 무시 ).

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

위의 디렉토리에 문제가 있으면 다음을 시도하십시오.

어떤 사람들은 가지고 있고 .steam/steam/ubuntu12_32다른 사람들은 가지고 있습니다 .steam/ubuntu12_32. 이러한 폴더가없는 경우 스팀이 사용자 프로필을 찾는 위치를 확인하여 올바른 위치를 찾으십시오.

$ fgrep config=  /usr/games/steam
config=$HOME/.steam

그것을 사용하여 lib 위치를 찾으십시오.

[config value] + /ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
   |
   \-> $HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu

그것은 나를 위해 일했지만 ... 일부 게임에서 스팀 런타임에서 오래된 라이브러리가 필요하면 충돌 할 수 있습니다 (밸브가 이것을 수정 해야하는 이유)

2015-08-22 편집 :

이제 Steam $HOME/.steam/root에 올바른 Steam 설치 디렉토리를 가리키는 링크가 있으므로이 명령은 모든 사람에게 적용되며 빠른 수정을 위해 더 간단해야합니다.

find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ -name "libstdc++.so.6" -exec mv "{}" "{}.bak" \; -print

또한, 각 스팀 런타임 업데이트시이를 실행해야 할 수도 있습니다.

2016-02-16 편집 :

아래 의 mchid 회신을 참조하십시오 .

sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386

이 문제를 해결하기에 충분할 수 있습니다.

2016-10-23 편집 :

를 들어 우분투 16.10 명령은 메사 드라이버를 깨고 더 많은 파일을 제거하기 위해 업데이트되었습니다, 그래서이 새로운 명령이 작동한다 :

find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ \( -name "libstdc++.so.6" -o -name "libgpg-error.so.0"  -o -name "libxcb.so.1" -o -name "libgcc_s.so.1" \) -exec mv "{}" "{}.bak" \; -print

들어 NVIDIA는 소스 드라이버를 폐쇄 , 아래 빈센트의 답변을 참조하십시오.

2017-01-08 수정 :

아마도 최종 편집인 최신 스팀 리눅스 업데이트는 모든 문제가 아니라면 대부분 수정해야합니다! 드디어! :디

2017-08-03 편집 :

안타깝게도 휴가를 마치고 돌아 왔을 때 최근 업데이트가 다시 시작되었습니다. 따라서 시작할 때 업데이트 다운로드 직후 에이 정보를 얻는 경우 :

process 23148: arguments to dbus_connection_ref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file dbus-connection.c line 2688.

증기 충돌이 발생하면 치명적이지 않은 것으로보고 된 버그 에 도달 하지만 동일한 배포판에서 증기가 충돌합니다. 해결 방법은 다음과 같습니다.

ln -s ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libdbus-1.so.3 ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libdbus-1.so.3

행운을 빕니다


1
안녕하세요, 고독한 사례인지 확실하지 않지만 새로운 15.04 설치에 .deb 패키지를 설치했는데 정상적으로 작동합니다. 유감스럽게도 나는 반 게임을 할 수는 없습니다.
thenaglecode 2018 년

3
이것은 12 월에도 여전히 깨졌습니까? 와. 밸브 짜증.
워렌 P

1
이 모든 트릭은 16.10에서 작동하지 않습니다
QkiZ

1
Steam에서 버전을 제거하고 Ubuntu repo에서 버전을 설치했으며 이제 작동합니다.
QkiZ

3
16.10 명령에 그냥 메모는 나를 위해 트릭을하지 않았다, 그러나, 하나는 여기에서 찾을 : askubuntu.com/a/775667이 일을했다.
rjp

20

고정 (우분투 15.04에서 테스트)

mv ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1{,.disable}
mv ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6{,.disable}

3
그것은 분명 하나의 오류 메시지를 숙청하지만 여전히 swrast로드 할 수 없습니다 말하는 - - - - - 흠이 작동 할 거라고처럼 보였다
RM-반다

1
각 스팀 업데이트 후에 이것을 다시 적용해야합니다.
bebbo

다시, 이것은 OP 오류 메시지를 수정하지 않습니다
mchid

동일한 오류 메시지와 함께 Xenial 16.04의 OP와 동일한 문제가 발생했습니다. Steam을 처음 시작하기 전에이 명령을 한 번 실행 한 다음 Steam의 초기 업데이트 후 두 번째로 실행해야했습니다.
Maximillian Laumeister

18

다음은 ubuntu 15.04에 Steam을 설치하는 중 오류 가 발생 했으며이 질문에 대한 가장 쉬운 대답입니다 (위에서 tahtisilma 참조 ). 매번 명령 터미널을 사용해야하는 번거 로움을 피하려면 마우스 오른쪽 버튼을 클릭하고 속성을 선택한 다음 바탕 화면 파일의 쉼표를 수행원:

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

짧은 버전 :

다음을 사용하여 터미널에서 스팀을 시작하십시오.

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

그냥 증기 대신

긴 버전 :

Steam은 그래픽 드라이버와의 통신을 담당하는 공유 라이브러리 인 nouveau_dri.so를 열 수 없습니다. 드라이버가 OpenGL을 지원하는지 확인하려면 다음을 실행하십시오.

DISPLAY=:0 glxinfo | grep -i direct

출력은 다음과 같아야합니다.

직접 렌더링 : 예 디버그 모드에서 스팀 실행 :

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을 사용하는 것 같습니다. 스팀이 어떤 버전을 사용하는지 확인할 수 있습니다.

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은 드라이버가 버전 20을 기대하는 ABI 버전 18을 사용하여 LibC6을로드했습니다. 솔루션은 OS에 LD_PRELOAD 변수를 사용하여 적절한 LibC6 버전을 사전로드하도록 지시합니다.

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

직관적이지 않은 $ LIB 매개 변수는 시작되는 프로세스의 플랫폼에 따라 ld.so에서 올바른 경로로 확장됩니다 (자세한 내용은 man 8ld.so).

다음과 같은 내용으로 스크립트를 생성하여 스팀 대신 실행할 수 있습니다.

#!/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

더 나은 스크립트는 글로벌 LibC6 버전이 STEAM_RUNTIME의 버전보다 최신인지 LD_PRELOAD의 최신 버전인지 확인할 수 있습니다.

자세한 내용은 여기참조하십시오 . 데비안에서 테스트했으며 이제 Ubuntu vivid 15.04에서 테스트되었으며 정상적으로 작동합니다.


데스크탑 파일 편집이 작동하지만 alacarte를 사용하여 메뉴 항목을 만든 다음 데스크탑 파일 스팀을 제거하지 않으면 .local / share / applications / steam.desktop의 기본 메뉴 (xubuntu) 항목 데스크탑 파일이 작동하지 않습니다. .local / share / applications / steam.desktop의 .desktop을 입력 한 후 다음과 같이 .local / share / applications에서 데스크탑 파일에 링크하십시오. ln -s ~ / Desktop / steam.desktop ~ / .local / share / applications / steam .desktop
고릴라 밀러

위의 답변이 제안했듯이 처음에 파일을 옮겼습니다. 그러나 우분투 15.04에서 스팀 작업을하고 있다고 지적한 것은 수출이었습니다. 고마워요! : D
Rubens

heck $LIB변수는 어디에 설정되어 있습니까? 많은 사람들이 그것을 언급하고, 그것은 어디에도 정의되어 있지 않습니다
Sergiy Kolodyazhnyy

8

이것은 독점 드라이버 NVIDIA 버전 346이있는 Ubuntu 15.04 64 비트에서 잘 작동합니다.

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam

또 다른 수정하기 전에 나를 위해 일했지만 내 누보 드라이버를 블랙리스트 한 후 내 엔비디아 드라이버를 다시 설치 한 다음 스팀 그렇게 시작되지 것이 그것을 잘하면이 문제가 우분투 16.04가 나오는 시간으로 고정됩니다이 시간을 고정
resonant7hand을

이것은 모든 nvidia 버전에서 작동해야합니다 (신용 : Alan Plum-github.com/ValveSoftware/steam-for-linux/issues/… ) :NVIDIA_VERSION=$(nvidia-settings -q NvidiaDriverVersion | grep -oP "[0-9]{3}" | sed -n 1p); export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-$NVIDIA_VERSION:/usr/lib/nvidia-$NVIDIA_VERSION"
higuita

8

이것은 간단한 수정입니다.

오류 메시지에 따르면, 다음과 같은 파일이 누락 : r600_dri.soswrast_dri.so

누락 된 파일을 설치하려면 다음 명령을 실행하십시오.

sudo apt-get update
sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386

이제 문제가 해결되었습니다.

추가 오류를 게시하십시오.


1
밸브 스태프가 발생하면 질문이 있습니다. 왜 우분투 설치 프로그램 스크립트의 스팀이 Mesa 설치를 검사하지 않고 누락 된 부품을 찾아서 설치하지 않습니까?
Warren P

전혀 해결되지 않은 문제의 라이브러리는 이미 최신 버전입니다.
mystrdat

이것은 나를 위해 그것을 고쳤다. 이것이 가장 먼저 시도해야합니다.
matthew_360

1

Ubuntu 16.04, Xenial Xerus, 64 비트 수정

16.04로 업그레이드 한 후 Steam에서만이 문제가 발생했으며 14.04에서 정상적으로 작동했습니다. 이전 버전의 Ubuntu에 대해 위의 모든 수정 사항을 시도했습니다.

이 솔루션 의 두 번째 부분은 저에게 효과적이었습니다.

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install wget gdebi libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libc6:i386
$ wget http://media.steampowered.com/client/installer/steam.deb
$ sudo gdebi steam.deb

이제 우분투에서 L4D2를 다시 실행하고 있습니다.


이미 dpkg를 가지고 있다면 gdebi를 설치할 필요가 없습니다 :sudo dpkg -i ./steam.deb
CSkau

1
gdebi는 의존성을 설치하지만 dpkg는 그렇지 않습니다.
Havok


0

Ubuntu 18.04 LTS를 새로 설치하면이 문제가 발생했습니다. 의 스팀 런타임 버전이 libgcc_s.so.1범인이었습니다. 파일 이름을 바꾸면 문제가 해결되었습니다.

$ cd ~/.steam/root/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
$ mv libgcc_s.so.1 libgcc_s.so.1.bak

0

16.04 이상

IMG :  Steam은 현재 지원되는 모든 Ubuntu 버전에서 flatpak 패키지로 설치할 수 있습니다. 터미널을 열고 다음을 입력하십시오.

sudo add-apt-repository ppa : alexlarsson / flatpak #는 16.04 에만 필요 하며 이후 릴리스에서는 필요 하지 않습니다
sudo apt 업데이트 
sudo apt 설치 flatpak
flatpak remote-add-존재하지 않는 flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak 설치 flathub com.valvesoftware.Steam

flatpak 패키지가 기본 리포지토리에 있으므로 18.04 이상에서 ppa : alexlarsson / flatpak을 추가하는 첫 번째 명령이 필요하지 않습니다.

스팀은 대시에서 아이콘을 클릭하거나 다음 명령으로 터미널에서 시작하여 시작할 수 있습니다.

flatpak run com.valvesoftware.Steam   

많은 게임은 온라인 구매가 필요하지만 Team Fortress 2와 같은 인기있는 게임은 무료로 플레이 할 수 있습니다. 상점에서 검색 할 때 SteamOS / Linux 운영 체제로 결과 범위를 좁히십시오. 모든 Linux 게임이 시스템과 호환되는 것은 아니므로 게임을 구입하기 전에 요구 사항을 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.