Steam'i Ubuntu 15.04+ sürümüne yükleme sorunu


103

Aslında yeni Ubuntu 15.04 64bit'i kurdum ve Steam'i yüklemeye çalışırken bir sorun var. Aslında deb paketini Steam web sitesinden indirdim, yükledim ve başlattığımda hiçbir şey olmuyor. Terminalden başlatmaya çalıştım ve sahip olduklarım

$ 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

Bir amd mimarisini kullanarak tesadüfen misiniz?

Radeon GPU'lu bir AMD sisteminde bu hatayı aldım ama hala 14.10'um - Çekirdeği yetenekli olarak güncelledim, ancak hatanın oradan kaynaklandığını tahmin ediyorum. Güncelleme linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)günlüğümden daha önce kullanıyordum Linux 3.16.0-37-generic.
pbhj

Hareketli libstdc ++. So.6 hareketli düzeltmesi çalışıyor gibi görünüyor.
pbhj

Askubuntu.com/questions/635851/… adresinde yayınlanan ve daha şık olduğunu düşündüğüm çözümü de deneyebilirsiniz .
Tahtisilma,

Yanıtlar:


115

Bu başlangıçta Ubuntu 15.04 / 15.10'daki Steam ile ilgili bir sorun oldu. Steam eski kütüphaneleri birleştiriyor ve mesa sürücüleri ile çarpışıyor, bu nedenle kapalı sürücüler bu sorunu göremiyorlar. Güncelleme: Bazı şeyleri kaçırıyor olabilirsiniz. Diğer orkide cevabını görün.

Bir yoktur Steam'in github açık hata .

Geçerli geçici çözüm, eski lib sürümünü kaldırmaktır, en azından vana başlangıçtaki komut dosyasındaki veya başka bir şeydeki sorunu çözene kadar.

Öyleyse bu klasörleri girin ve bunu yapın ( x86_64yalnızca bir 32bit sisteminiz varsa yoksayın ):

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

Yukarıdaki dizinde sorun yaşıyorsanız bunu denemelisiniz:

Bazı insanlar var .steam/steam/ubuntu12_32, bazıları sadece var .steam/ubuntu12_32. Bu klasörlere sahip değilseniz, buharınızın kullanıcı profilini nerede aradığını kontrol ederek doğru yeri bulun:

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

Lib konumunuzu bulmak için bunu kullanın:

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

Benim için işe yaradı ... ama lütfen dikkat edin, eğer bir oyun buhar çalışma zamanındaki eski kütüphaneyi gerektiriyorsa, çökebilir (bu nedenle vana bunu düzeltmelidir)

Düzenle 2015-08-22:

Steam artık $HOME/.steam/roother zaman doğru Steam kurulum dizinine işaret eden bir bağlantıya sahip olduğundan, bu komut herkes için çalışmalı ve hızlı bir düzeltme için daha basit olmalıdır:

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

Ayrıca, lütfen her bir çalışma zamanı güncellemesinde, muhtemelen bunu çalıştırmanız gerekeceğini unutmayın.

2016-02-16’yı düzenleyin:

Ayrıca bkz mchid basitçe yapıyor, aşağıda cevap:

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

Bunu düzeltmek için yeterli olabilir.

2016-10-23’ü düzenleyin:

İçin ubuntu 16.10 komut mesa sürücüleri kırıyorlar fazla dosya kaldırmak güncellendi, bu nedenle bu yeni komut çalışması gerekir:

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

For NVIDIA kapalı kod sürücülerini aşağıdaki Vincent'ın cevabını gözlemleyin.

Düzenle 2017-01-08:

Muhtemelen son düzenleme, en son buhar linux güncellemesi, tüm sorunlar olmasa da en iyisini düzeltmelidir! en sonunda! : D

Düzenle 2017-08-03:

Ne yazık ki, tatilden dönen bazı son güncellemelerin tekrar buhar kırdığını tespit etti. Dolayısıyla, başlatırken bunu alırsanız, güncellemenin indirilmesinden hemen sonra:

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

Ve sonra buhar kazasında, sonra ölümcül olmadığı bildirilen bu böceğe çarpıyorsunuz , ancak aynı dağılmalarda buharı çökertiyor. geçici çözüm şudur:

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

iyi şanslar


1
Merhaba, Yalnız bir dava olup olmadığımdan emin değilim, ancak 15.04'teki yeni yüklememe .deb paketini yükledim ve düzgün çalışıyor. Yazık ki, Unix olma konusunda ... oyunların yarısını oynayamam.
thenaglecode

3
Bu hala Aralık ayında bozuldu? Vay. VANALAR
Warren P

1
Tüm bu püf noktaları 16.10
QkiZ'de

1
Ben Steam sürümünü kaldırdım ve Ubuntu repo'dan yükledi ve şimdi çalışıyor.
QkiZ

3
Sadece bir not, 16.10'da emriniz benim için hile yapmadı, ancak burada bulundu: askubuntu.com/a/775667 işe yaradı .
rjp

20

Düzeltme (Ubuntu 15.04'te test edilmiştir)

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
Kesinlikle bir hata mesajı ezilmiş, ama yine de o swrast yükleyemiyor söylüyor - - - Hmm bu işe gidiyordu benziyordu
rm-vanda

1
Her buhar güncellemesinden sonra bunu tekrar uygulamanız gerekir.
bebbo

Yine, bu OP hata iletisini düzeltmez
mchid 21:16

Aynı hata mesajı ile Xenial 16.04'te OP ile aynı problemi yaşıyordum ve bu benim için çalıştı. Bu komutları Steam'i ilk kez çalıştırmadan önce bir kez, ardından Steam'in ilk güncellemesinden sonra ikinci kez çalıştırmam gerekiyordu.
Maximillian Laumeister,

18

Aşağıdakiler ubuntu 15.04'e Steam kurulumunda Hata'dan kaynaklanmaktadır ve şu ana kadar bu sorunun en kolay cevabıdır (yukarıda tahtisilma ile belirtildiği gibi ). Her seferinde komut terminalini kullanmak zorunda kalmaktan kaçınmak istemiyorsanız, masaüstünde masaüstünde, özellikleri sağ tıklatarak ve seçerek ve sonra da masaüstündeki komutu değiştirerek masaüstünü düzenleyebilirsiniz. takip etme:

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

Kısa versiyon:

Terminalde buhar kullanarak şunları başlatın:

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

sadece buhar yerine

Uzun versiyon:

Steam, grafik sürücüsü ile iletişim kurmaktan sorumlu paylaşılan kütüphane olan nouveau_dri.so dosyasını açamıyor. Sürücünün OpenGL etkin olup olmadığını kontrol etmek için çalıştırın:

DISPLAY=:0 glxinfo | grep -i direct

Çıktı şöyle olmalıdır:

doğrudan görüntü oluşturma: Evet Hata ayıklama modunda çalışan buhar:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Aşağıdaki satırların bize ipucu verdiği çıktıyı verir:

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'in libstdc ++ 'ın farklı sürümünü kullandığı görülüyor. Hangi sürüm buharın kullanılacağını kontrol edelim:

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

Bu yüzden Steam, LibC6'yı ABI sürüm 18 ile yükledi, burada sürücü sürüm 20'yi bekliyor. Çözüm, OS'ye LD_PRELOAD değişkenini kullanarak uygun LibC6 sürümünü önceden yüklemesini söylemektir:

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

Biraz sezgisel olmayan $ LIB parametresi, başlatılan işlemin platformuna bağlı olarak ld.so'da doğru yola genişletilir (ayrıntılar için man 8 ld.so).

Buhar yerine çalıştırmak için aşağıdaki içeriğe sahip bir komut dosyası oluşturabilirsiniz:

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

Daha iyi bir komut dosyası, global LibC6 sürümünün STEAM_RUNTIME sürümünden daha yeni olup olmadığını ve yalnızca LD_PRELOAD'inki olup olmadığını kontrol edebilir.

Daha fazla ayrıntı burada bulunabilir . Debian'da test ettiğime ve şimdi de Ubuntu canlı 15.04'te test edildiğine ve iyi çalıştığına dikkat edin.


Her ne kadar masaüstü dosya düzenlemesi işe yatsa da, ana menü (xubuntu) giriş masaüstü dosyasını .local / share / applications / steam.desktop dizininde alacarte kullanarak menü girişi oluşturmadığım sürece çalıştıramıyorum ve ardından masaüstü dosya buharını kaldırmıyorum .local / share / applications / steam.desktop içinde .desktop ve ardından .local / share / uygulamalarından masaüstü dosyasına bağlayın: ln -s ~ / Desktop / steam.desktop ~ / .local / share / applications / buhar .desktop
miller goril

Yukarıda bazı cevapların önerdiği gibi dosyaları başlangıçta taşıdım. Ancak sadece ubuntu 15.04 üzerinde buhar çalıştığımı belirttiğiniz ihracatla oldu. Çok teşekkürler! : D
Rubens,

Heck $LIBdeğişkeni nerede ayarlanıyor? Birçok insan bundan bahsediyor ve hiçbir yerde tanımlanmadı
Sergiy Kolodyazhnyy

8

Bu benim için özel sürücü NVIDIA sürüm 346 ile Ubuntu 15.04 64bits altında çalışıyor:

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

Başka bir düzeltme daha önce benim için işe yaramıştı, ama Nvidia sürücülerimi nouveau şoförümü kara listeye aldıktan sonra tekrar kurmak zorunda kaldım ve daha sonra buhar fırlatmayacaktı, bu yüzden bu sefer düzeltti, umarım bu sorun Ubuntu 16.04 çıktığında giderildi
resonant7hand

Bu, herhangi bir nvidia versiyonunda çalışmalıdır (kredi: 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

Bu basit bir düzeltmedir.

Hata mesajına göre, aşağıdaki dosyaları kaçırıyorsunuz: r600_dri.soveswrast_dri.so

Bu eksik dosyaları yüklemek için aşağıdaki komutları çalıştırın:

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

Şimdi sorun çözülmeli.

Lütfen herhangi bir ek hata gönderin.


1
Herhangi bir Valve çalışanı olursa, bir sorum var; Neden ubuntu installer betiği için buhar, Mesa'nın kurulmasını ve eksik parçalarını bulup benim için yüklemesini önermiyor?
Warren P,

Hiç çözülmedi, söz konusu libler zaten en son sürümlerindeydi.
mystrdat

Bu benim için düzeltti. Bu ilk denediğin şey olmalı.
matthew_360

1

Ubuntu 16.04, Xenial Xerus, 64-bit için düzeltme

16.04’e yükselttiğimden beri Steam’de bu sorunu yaşadım, 14.04’te iyi çalıştı. Yukarıdaki tüm düzeltmeleri Ubuntu'nun eski sürümleri için denedim.

Bu çözümün ikinci kısmı benim için çalıştı.

$ 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

Şimdi yine Ubuntu'da L4D2 kullanıyorum - mükemmel!


Zaten dpkg'nız varsa, gdebi'yi yüklemenize gerek yoktur:sudo dpkg -i ./steam.deb
CSkau

1
gdebi bağımlılıkları kuracak, dpkg kurmayacak.
Havok,


0

Sadece bu sayıya Ubuntu 18.04 LTS'nin yeni kurulumunda rastladım. libgcc_s.so.1Suçlu olduğu Steam çalışma zamanı sürümü çıktı . Dosyayı yeniden adlandırmak benim için sorunu düzeltti:

$ 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 ve üstü

IMG:  Steam, şu anda desteklenen tüm Ubuntu sürümlerinde flatpak paketi olarak yüklenebilir. Terminali açın ve şunu yazın:

sudo add-apt-repository ppa: alexlarsson / flatpak #, 16.04 için gerekli , daha sonraki sürümlerde değil
sudo apt güncelleme 
sudo apt yüklemek flatpak
flatpak remote-add --if-not-değil-var flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak yüklemek flathub com.valvesoftware.Steam

Ppa: alexlarsson / flatpak ekleyen ilk komut, 18.04'te ve sonrasında flatpak paketi varsayılan depolarda bulunduğundan gerekli değildir.

Dash programındaki simgesine tıklayarak veya aşağıdaki komutla terminalden başlatılabilir.

flatpak run com.valvesoftware.Steam   

Pek çok oyun çevrimiçi satın alım gerektirir, ancak Team Fortress 2 gibi bazı popüler oyunları ücretsiz oynayabilirsiniz. Mağazada arama yaparken, SteamOS / Linux işletim sisteminin sonuçlarını daraltığınızdan emin olun. Tüm Linux oyunları sisteminizle uyumlu değildir, bu yüzden oyunları satın almadan önce gereksinimleri kontrol ettiğinizden emin olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.