Masalah dengan menginstal Steam di Ubuntu 15.04+

103

Sebenarnya saya telah menginstal Ubuntu 15.04 64bit yang baru, dan ketika saya mencoba menginstal Steam, ada masalah. Sebenarnya saya telah mengunduh paket deb dari situs web steam, menginstalnya dan ketika saya memulainya tidak terjadi apa-apa. Saya mencoba memulainya dari terminal dan apa yang saya dapatkan

$ 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
saber hammami
sumber
Apakah Anda kebetulan menggunakan arsitektur amd?
Saya memiliki kesalahan ini pada sistem AMD dengan GPU radeon tapi saya masih di 14.10 - Saya memang memperbarui kernel dalam aptitude jadi saya menganggap kesalahan berasal dari sana. Dari log pembaruan saya, saya punya linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)sementara sebelumnya saya gunakan Linux 3.16.0-37-generic.
pbhj
Perbaikan pindahkan libstdc ++ .so.6 tampaknya berfungsi.
pbhj
Anda juga dapat mencoba solusi seperti yang diposting di askubuntu.com/questions/635851/… yang menurut saya lebih elegan.
Tahtisilma

Jawaban:

115

Ini awalnya masalah dengan Steam di Ubuntu 15.04 / 15.10. Uap bundel lama libs dan bertabrakan dengan driver mesa, itu juga sebabnya driver tertutup tidak melihat masalah ini. Pembaruan: Mungkin juga Anda kehilangan beberapa hal. Lihat jawaban mchid lain.

Ada bug terbuka di github Steam .

Solusi saat ini adalah menghapus versi lib yang lama, setidaknya sampai valve memperbaiki masalah dalam skrip startup mereka atau semacamnya.

Jadi masukkan folder ini dan lakukan ini (abaikan x86_64jika Anda hanya memiliki sistem 32bit):

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

Jika Anda memiliki masalah dengan direktori di atas maka Anda harus mencoba ini:

Beberapa orang memiliki .steam/steam/ubuntu12_32, yang lain hanya memiliki .steam/ubuntu12_32. Jika Anda tidak memiliki folder ini, cari lokasi yang benar dengan memeriksa di mana uap Anda mencari profil pengguna:

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

Gunakan itu untuk menemukan lokasi lib Anda:

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

Itu bekerja untuk saya ... tetapi harap dicatat bahwa jika beberapa permainan mengharuskan lib lama dari steam runtime, itu mungkin macet (itu sebabnya katup harus memperbaikinya)

Edit 2015-08-22:

Karena Steam sekarang memiliki tautan di $HOME/.steam/rootyang selalu menunjuk ke direktori pemasangan Steam yang benar, perintah ini harus bekerja untuk semua orang dan lebih mudah untuk perbaikan cepat:

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

Juga, harap diingat bahwa pada setiap pembaruan runtime uap, Anda mungkin harus menjalankan ini.

Edit 2016-02-16:

Lihat juga balasan mchid di bawah ini, cukup lakukan:

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

mungkin cukup untuk memperbaikinya.

Edit 2016-10-23:

Untuk ubuntu 16.10 perintah telah diperbarui untuk menghapus lebih banyak file yang melanggar driver mesa, jadi perintah baru ini harus berfungsi:

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

Untuk driver sumber tertutup NVIDIA , lihat balasan Vincent di bawah ini.

Edit 2017-01-08:

Mungkin hasil edit terakhir, pembaruan terbaru dari linux steam harus paling banyak diperbaiki, jika tidak semua masalah! akhirnya! : D

Edit 2017-08-03:

Sayangnya, kembali dari liburan menemukan bahwa beberapa pembaruan baru-baru ini kembali memanas. Jadi jika Anda mendapatkan ini saat memulai, setelah pembaruan unduh:

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

dan kemudian uap crash, maka Anda memukul bug ini , dilaporkan sebagai non-fatal, tetapi melakukan crash steam pada distro yang sama. solusinya adalah ini:

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

semoga berhasil

higuita
sumber
1
Hai, Tidak yakin apakah saya seorang diri, tetapi saya baru saja menginstal paket deb pada instal 15.04 saya yang baru dan berfungsi dengan baik. Sayang sekali saya tidak bisa memainkan setengah game ... pada hitungan menjadi Unix.
thenaglecode
3
Ini masih rusak di bulan Desember? Wow. VALVE SUCKS.
Warren P
1
Semua trik ini tidak berfungsi pada 16.10
QkiZ
1
Saya menghapus versi dari Steam dan versi yang diinstal dari repo Ubuntu dan sekarang berfungsi.
QkiZ
3
Hanya sebuah catatan, pada 16.10 perintah Anda tidak melakukan trik untuk saya, namun, yang ditemukan di sini: askubuntu.com/a/775667 berhasil.
rjp
20

Perbaikan cepat (diuji pada Ubuntu 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}
itsnikolay
sumber
3
Hmm ini kelihatannya akan bekerja - itu jelas menghancurkan satu pesan kesalahan, tapi masih mengatakan itu tidak dapat memuat swrast - -
rm-vanda
1
Anda harus menerapkan ini lagi setelah setiap pembaruan.
bebbo
sekali lagi, ini tidak memperbaiki pesan kesalahan OP
mchid
Saya mengalami masalah yang sama dengan OP pada Xenial 16.04 dengan pesan kesalahan yang sama, dan ini berhasil untuk saya. Saya perlu menjalankan perintah ini sekali sebelum meluncurkan Steam untuk pertama kalinya, kemudian kedua kalinya setelah pembaruan awal Steam.
Maximillian Laumeister
18

Berikut ini adalah dari Galat dalam menginstal Steam di ubuntu 15.04 dan sejauh ini merupakan jawaban termudah untuk pertanyaan ini (seperti disebutkan di atas oleh tahtisilma ). Saya akan menambahkan bahwa jika Anda ingin menghindari rasa sakit karena harus menggunakan terminal perintah setiap kali, maka Anda dapat mengedit file desktop baik pada desktop Anda, dengan mengklik kanan dan memilih properti dan kemudian mengganti perintah di file desktop dengan berikut:

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

Versi pendek:

Mulai kukus di terminal menggunakan:

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

bukan hanya uap

Versi panjang:

Steam tidak dapat membuka nouveau_dri.so, perpustakaan bersama yang bertanggung jawab untuk berkomunikasi dengan driver grafis. Untuk memeriksa apakah driver diaktifkan OpenGL:

DISPLAY=:0 glxinfo | grep -i direct

Outputnya harus:

render langsung: Ya Menjalankan uap dalam mode debug:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Memberi kami hasil di mana baris berikut memberi kami petunjuk:

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))

Tampaknya steam menggunakan versi libstdc ++ yang berbeda. Mari kita periksa versi uap yang digunakan:

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

Jadi Steam memuat LibC6 dengan ABI versi 18 di mana driver mengharapkan versi 20. Solusinya adalah memberi tahu OS untuk memuat versi LibC6 yang tepat menggunakan variabel LD_PRELOAD:

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

Parameter $ LIB yang agak tidak intuitif akan diperluas di ld.so ke jalur yang benar berdasarkan platform proses yang sedang dimulai (man 8 ld.so untuk detailnya).

Anda dapat membuat skrip dengan konten berikut untuk menjalankannya alih-alih:

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

Skrip yang lebih baik dapat memeriksa apakah versi global LibC6 lebih baru daripada yang ada di STEAM_RUNTIME dan hanya setelah LD_PRELOAD.

Rincian lebih lanjut dapat ditemukan di sini . Perhatikan bahwa saya mengujinya di Debian dan sekarang telah diuji di Ubuntu vivid 15.04 dan berfungsi dengan baik.

menggiling gorila
sumber
walaupun pengeditan file desktop akan berfungsi, saya tidak bisa mendapatkan menu desktop entri menu (xubuntu) di .local / share / aplikasi / steam.desktop untuk bekerja kecuali saya membuat entri menu menggunakan alacarte, dan kemudian menghapus file desktop steam .desktop di .local / share / application / steam.desktop dan kemudian tautkan ke file desktop dari .local / share / aplikasi seperti: ln -s ~ / Desktop / steam.desktop ~ / .local / share / aplikasi / steam .desktop
giling gorila
Saya awalnya memindahkan file, seperti yang disarankan beberapa jawaban di atas. Tapi itu hanya dengan ekspor yang Anda tunjukkan bahwa saya punya uap yang bekerja di ubuntu 15.04 saya. Terima kasih banyak! : D
Rubens
Di mana $LIBvariabel heck sedang diatur? Banyak orang menyebutkannya, dan itu tidak jelas
Sergiy Kolodyazhnyy
8

Ini berfungsi dengan baik untuk saya di bawah Ubuntu 15.04 64bits dengan driver eksklusif NVIDIA versi 346:

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
Vincent
sumber
Perbaikan lain telah bekerja untuk saya sebelumnya, tetapi saya harus menginstal ulang driver Nvidia saya setelah daftar hitam driver nouveau saya dan kemudian uap tidak akan diluncurkan jadi kali ini memperbaikinya, mudah-mudahan masalah ini diperbaiki pada saat Ubuntu 16.04 keluar
resonant7hand
Ini harus bekerja pada semua versi nvidia (kredit: 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

Ini adalah perbaikan sederhana.

Menurut pesan kesalahan, Anda kehilangan file-file berikut: r600_dri.sodanswrast_dri.so

Jalankan perintah berikut untuk menginstal file yang hilang ini:

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

Masalahnya sekarang harus dipecahkan.

Silakan kirim kesalahan tambahan apa pun.

mchid
sumber
1
Jika ada staf Valve yang terjadi, saya punya pertanyaan; Mengapa skrip penginstal ubuntu untuk uap tidak menyelidiki Mesa menginstal dan menemukan bagian yang hilang dan menginstalnya untuk saya?
Warren P
Tidak terpecahkan sama sekali, lib yang dimaksud sudah pada versi terbaru mereka.
mystrdat
Ini memperbaikinya untuk saya. Ini harus menjadi hal pertama yang Anda coba.
matthew_360
1

Perbaiki untuk Ubuntu 16.04, Xenial Xerus, 64-bit

Saya hanya punya masalah dengan Steam sejak meningkatkan ke 16,04, itu bekerja dengan baik pada 14,04. Saya mencoba semua perbaikan di atas untuk versi Ubuntu yang lebih lama.

Bagian kedua dari solusi ini bekerja untuk saya.

$ 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

Sekarang saya menjalankan L4D2 di Ubuntu lagi - luar biasa!

James Bradbury
sumber
Jika Anda sudah memiliki dpkg, tidak perlu menginstal gdebi:sudo dpkg -i ./steam.deb
CSkau
1
gdebi akan menginstal dependensi, dpkg tidak akan.
Havok
1

Dua baris dari komentar menasheh tentang masalah github ini bekerja dengan Ubuntu 15.10:

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

Perhatikan bahwa jika Steam memperbarui sendiri, Anda mungkin perlu memasukkan baris ini lagi.

Chris McFarland
sumber
0

Baru saja mengalami masalah ini pada pemasangan baru Ubuntu 18.04 LTS. Ternyata versi Steam runtime libgcc_s.so.1adalah biang keladinya. Mengganti nama file memperbaiki masalah untuk saya:

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

16.04 dan lebih baru

IMG:  Steam dapat diinstal sebagai paket flatpak di semua versi Ubuntu yang saat ini didukung. Buka terminal dan ketik:

sudo add-apt-repository ppa: alexlarsson / flatpak # diperlukan dalam 16,04 saja, tidak dalam rilis yang lebih baru
sudo apt pembaruan 
sudo apt install flatpak
flatpak remote-add --jika tidak ada flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak instal flathub com.valvesoftware.Steam

Perintah pertama untuk menambahkan ppa: alexlarsson / flatpak tidak diperlukan pada 18.04 dan yang lebih baru karena paket flatpak dalam repositori default.

Steam dapat diluncurkan dengan mengklik ikonnya di Dash atau diluncurkan dari terminal dengan perintah berikut:

flatpak run com.valvesoftware.Steam   

Banyak game yang membutuhkan pembelian online, tetapi beberapa game populer, seperti Team Fortress 2, gratis dimainkan. Saat mencari di toko, pastikan untuk mempersempit hasil oleh sistem operasi SteamOS / Linux. Tidak semua game Linux kompatibel dengan sistem Anda, jadi pastikan Anda memeriksa persyaratan sebelum membeli game.

karel
sumber