Sự cố khi cài đặt Steam trên Ubuntu 15.04+


103

Thực tế tôi đã cài đặt Ubuntu 15.04 64bit mới và khi tôi đang cố gắng cài đặt Steam trên nó thì có một vấn đề. Trong thực tế, tôi đã tải xuống gói deb từ trang web steam, cài đặt nó và khi tôi bắt đầu thì không có gì xảy ra. Tôi đã cố gắng khởi động nó từ thiết bị đầu cuối và những gì tôi đã có

$ 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

Bạn có tình cờ sử dụng một kiến ​​trúc amd?

Tôi gặp lỗi này trên hệ thống AMD với GPU radeon nhưng tôi vẫn ở vào ngày 14.10 - Tôi đã cập nhật kernel theo khả năng mặc dù vậy tôi cho rằng lỗi bắt nguồn từ đó. Từ nhật ký cập nhật của tôi, tôi đã nhận được linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)trong khi trước đây tôi đang sử dụng Linux 3.16.0-37-generic.
pbhj

Sửa lỗi di chuyển libstdc ++. So.6 xuất hiện để hoạt động.
pbhj

Bạn cũng có thể thử giải pháp như được đăng trong Askubfox.com/questions/635851/ mà tôi nghĩ là thanh lịch hơn.
Tahtisilma

Câu trả lời:


115

Đây ban đầu là một vấn đề với Steam trên Ubuntu 15.04 / 15.10. Steam bó các lib cũ và đang va chạm với trình điều khiển mesa, đó cũng là lý do tại sao các trình điều khiển đóng không thấy vấn đề này. Cập nhật: Cũng có thể là bạn đang thiếu một số thứ. Xem câu trả lời khác của mchid.

Có một lỗi mở trong github của Steam .

Cách giải quyết hiện tại là loại bỏ phiên bản lib cũ, ít nhất là cho đến khi van khắc phục sự cố trong tập lệnh khởi động của chúng hoặc đại loại như thế.

Vì vậy, hãy nhập các thư mục này và thực hiện việc này (bỏ qua x86_64nếu bạn chỉ có hệ thống 32 bit):

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

Nếu bạn gặp vấn đề với thư mục trên thì bạn nên thử điều này:

Một số người có .steam/steam/ubuntu12_32, những người khác chỉ có .steam/ubuntu12_32. Nếu bạn không có các thư mục này, hãy tìm vị trí chính xác bằng cách kiểm tra xem hơi của bạn đang tìm hồ sơ người dùng:

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

Sử dụng để tìm vị trí lib của bạ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

Nó hoạt động với tôi ... nhưng xin lưu ý rằng nếu một số trò chơi yêu cầu lib cũ từ thời gian chạy hơi nước, nó có thể bị sập (đó là lý do tại sao van nên khắc phục điều này)

Chỉnh sửa 2015-08-22:

Vì Steam hiện có một liên kết trong $HOME/.steam/rootđó luôn trỏ đến thư mục cài đặt Steam chính xác, lệnh này sẽ hoạt động cho mọi người và đơn giản hơn để khắc phục nhanh:

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

Ngoài ra, hãy nhớ rằng trên mỗi bản cập nhật thời gian chạy hơi nước, có thể bạn sẽ cần phải chạy nó.

Chỉnh sửa 2016/02/2016:

Cũng xem trả lời mchid dưới đây, chỉ cần làm:

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

có thể là đủ để khắc phục điều này.

Chỉnh sửa 2016-10-23:

Đối với Ubuntu 16.10 , lệnh đã được cập nhật để xóa thêm các tệp đang phá vỡ trình điều khiển mesa, vì vậy lệnh mới này sẽ hoạt động:

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

Đối với trình điều khiển nguồn đóng NVIDIA , xem câu trả lời của Vincent bên dưới.

Chỉnh sửa 2017-01-08:

Có lẽ là bản chỉnh sửa cuối cùng, bản cập nhật linux mới nhất nên khắc phục hầu hết, nếu không phải là tất cả các vấn đề! cuối cùng :CƯỜI MỞ MIỆNG

Chỉnh sửa 2017-08-03:

Đáng buồn thay, trở về từ kỳ nghỉ phát hiện ra rằng một số cập nhật gần đây một lần nữa đã phá vỡ hơi nước. Vì vậy, nếu bạn nhận được điều này khi bắt đầu, ngay sau khi tải xuống bản cập nhật:

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

và sau đó là sự cố hơi nước, sau đó bạn đang gặp phải lỗi này , được báo cáo là không nghiêm trọng, nhưng nó gây ra sự cố hơi nước trên cùng một bản phát hành. cách giải quyết là đây:

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

chúc may mắn


1
Xin chào, Không chắc tôi có phải là trường hợp đơn độc hay không, nhưng tôi chỉ cài đặt gói .deb trên bản cài đặt 15.04 mới và nó hoạt động tốt. Thật đáng tiếc tôi không thể chơi một nửa số trò chơi mặc dù ... với số lượng là Unix.
thenaglecode

3
Điều này vẫn còn bị phá vỡ trong tháng mười hai? Ồ KIỂM SOÁT THÀNH CÔNG.
Warren P

1
Tất cả các thủ thuật này không hoạt động trong 16.10
QkiZ

1
Tôi đã gỡ cài đặt phiên bản từ Steam và cài đặt phiên bản từ Ubuntu repo và hiện đã hoạt động.
QkiZ

3
Chỉ cần một lưu ý, vào ngày 16.10, lệnh của bạn đã không thực hiện được mánh khóe cho tôi, tuy nhiên, lệnh được tìm thấy ở đây: Askubfox.com/a/775667 đã hoạt động.
rjp

20

Fastfix (đã thử nghiệm trên 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}

3
Hmm, nó trông giống như nó sẽ hoạt động - nó chắc chắn đã đè bẹp một thông báo lỗi, nhưng nó vẫn nói rằng nó không thể tải swrast - -
rm-vanda

1
Bạn phải áp dụng điều này một lần nữa sau mỗi lần cập nhật hơi nước.
bebbo

một lần nữa, điều này không khắc phục thông báo lỗi OP
mchid

Tôi đã gặp vấn đề tương tự như OP trên Xenial 16.04 với cùng một thông báo lỗi và điều này đã làm việc với tôi. Tôi cần chạy các lệnh này một lần trước khi khởi chạy Steam lần đầu tiên, sau đó lần thứ hai sau lần cập nhật ban đầu của Steam.
Maximillian Laumeister

18

Sau đây là từ Lỗi khi cài đặt Steam trên ubfox 15.04 và cho đến nay là câu trả lời dễ nhất cho câu hỏi này (như đã lưu ý ở trên bởi tahtisilma ). Tôi sẽ nói thêm rằng nếu bạn muốn tránh sự đau đớn khi phải sử dụng thiết bị đầu cuối lệnh mỗi lần, thì bạn có thể chỉnh sửa tệp máy tính để bàn trên máy tính để bàn của mình, bằng cách nhấp chuột phải và chọn thuộc tính, sau đó thay thế commANGE trong tệp máy tính để bàn bằng tiếp theo:

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

Phiên bản ngắn:

Bắt đầu hơi trong thiết bị đầu cuối bằng cách sử dụng:

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

thay vì chỉ hấp

Phiên bản dài:

Steam không thể mở nouveau_dri.so, thư viện dùng chung chịu trách nhiệm liên lạc với trình điều khiển đồ họa. Để kiểm tra xem trình điều khiển có bật OpenGL hay không:

DISPLAY=:0 glxinfo | grep -i direct

Đầu ra phải là:

kết xuất trực tiếp: Có Chạy hơi trong chế độ gỡ lỗi:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Cung cấp cho chúng tôi đầu ra trong đó các dòng sau cho chúng tôi gợi ý:

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

Có vẻ như steam sử dụng phiên bản khác nhau của libstdc ++. So.6. Hãy kiểm tra xem phiên bản nào sử dụng hơi nước:

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

Vì vậy, Steam đã tải LibC6 với phiên bản ABI 18 trong đó trình điều khiển mong đợi phiên bản 20. Giải pháp là yêu cầu HĐH tải trước phiên bản LibC6 thích hợp bằng biến LD_PRELOAD:

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

Tham số $ LIB có phần không trực quan được mở rộng trong ld.so sang đúng đường dẫn dựa trên nền tảng của quá trình đang được bắt đầu (man 8 ld.so để biết chi tiết).

Bạn có thể tạo tập lệnh với nội dung sau để chạy thay vì steam:

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

Một tập lệnh tốt hơn có thể kiểm tra xem phiên bản LibC6 toàn cầu có mới hơn phiên bản trong STEAM_RUNTIME không và chỉ sau đó là LD_PRELOAD.

Thông tin chi tiết có thể được tìm thấy ở đây . Lưu ý rằng tôi đã thử nghiệm nó trên Debian và bây giờ nó đã được thử nghiệm trên Ubuntu một cách sinh động 15.04 và hoạt động tốt.


Mặc dù chỉnh sửa tệp trên máy tính để bàn sẽ hoạt động, tôi không thể lấy tệp chính của mục nhập (xubfox) trong .local / share / application / steam.desktop để hoạt động trừ khi tôi tạo mục nhập menu bằng alacarte, sau đó xóa hơi tệp của máy tính để bàn .desktop trong .local / share / application / steam.desktop và sau đó liên kết với tệp máy tính để bàn từ .local / share / ứng dụng như vậy: ln -s ~ / Desktop / steam.desktop ~ / .local / share / application / steam .desktop
xay con khỉ đột

Ban đầu tôi đã di chuyển các tập tin, như một số câu trả lời ở trên gợi ý. Nhưng chỉ với việc xuất khẩu mà bạn chỉ ra rằng tôi đã có hơi nước hoạt động trên Ubuntu 15.04 của mình. Cảm ơn rất nhiều! : D
Rubens

$LIBBiến heck đang được đặt ở đâu? Rất nhiều người đề cập đến nó, và nó không được xác định
Sergiy Kolodyazhnyy

8

Điều này hoạt động tốt với tôi trong Ubuntu 15.04 64 bit với trình điều khiển độc quyền NVIDIA phiên bản 346:

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

Sửa chữa khác đã từng làm việc cho tôi trước nhưng tôi đã phải cài đặt lại trình điều khiển Nvidia tôi sau khi danh sách đen lái xe nouveau của tôi và sau đó hơi nước sẽ không khởi động vì vậy đây cố định lần này, hy vọng vấn đề này được cố định bởi thời gian Ubuntu 16,04 đi ra
resonant7hand

Điều này sẽ hoạt động trên mọi phiên bản nvidia (tín dụng: 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"
trộm

8

Đây là một sửa chữa đơn giản.

Theo thông báo lỗi, bạn đang thiếu các tệp sau: r600_dri.soswrast_dri.so

Chạy các lệnh sau để cài đặt các tệp bị thiếu này:

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

Vấn đề bây giờ nên được giải quyết.

Xin vui lòng gửi bất kỳ lỗi bổ sung.


1
Nếu bất kỳ nhân viên Valve nào xảy ra cùng, tôi có một câu hỏi; Tại sao không phải là hơi nước cho tập lệnh cài đặt Ubuntu, thăm dò cài đặt Mesa và tìm các phần còn thiếu và cài đặt chúng cho tôi?
Warren P

Không được giải quyết, các lib trong câu hỏi đã có ở phiên bản mới nhất của họ.
mystrdat

CÁi này đã sửa nó giúp tôi. Đây nên là điều đầu tiên bạn thử.
matthew_360

1

Sửa lỗi cho Ubuntu 16.04, Xenial Xerus, 64-bit

Tôi chỉ gặp vấn đề này với Steam kể từ khi nâng cấp lên 16.04, nó hoạt động tốt vào ngày 14.04. Tôi đã thử tất cả các bản sửa lỗi ở trên cho các phiên bản Ubuntu cũ hơn.

Phần thứ hai của giải pháp này làm việc cho tôi.

$ 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

Bây giờ tôi đang chạy lại L4D2 trong Ubuntu - thật tuyệt vời!


Nếu bạn đã có dpkg, không cần cài đặt gdebi:sudo dpkg -i ./steam.deb
CSkau

1
gdebi sẽ cài đặt phụ thuộc, dpkg sẽ không.
Havok


0

Chỉ cần gặp vấn đề này trên bản cài đặt mới Ubuntu 18.04 LTS. Hóa ra phiên bản thời gian chạy Steam libgcc_s.so.1là thủ phạm. Đổi tên tệp đã khắc phục sự cố cho tôi:

$ 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 trở lên

IMG:  Steam có thể được cài đặt dưới dạng gói Flatpak trong tất cả các phiên bản Ubuntu hiện được hỗ trợ. Mở terminal và gõ:

sudo add-apt-repository ppa: alexlarsson / Flatpak # chỉ bắt buộc trong 16.04 , không phải trong các bản phát hành sau
cập nhật sudo apt 
sudo apt cài đặt Flatpak
Flatpak remote-add - nếu không tồn tại flathub https://flathub.org/repo/flathub.flatpakrepo
Flatpak cài đặt flathub com.valvesoftware.Steam

Lệnh đầu tiên để thêm ppa: alexlarsson / Flatpak không bắt buộc trong 18.04 và sau đó vì gói Flatpak nằm trong kho lưu trữ mặc định.

Steam có thể được khởi chạy bằng cách nhấp vào biểu tượng của nó trong Dash hoặc khởi chạy từ thiết bị đầu cuối bằng lệnh sau:

flatpak run com.valvesoftware.Steam   

Nhiều trò chơi yêu cầu mua trực tuyến, nhưng một số trò chơi phổ biến, chẳng hạn như Team Fortress 2, được chơi miễn phí. Khi tìm kiếm trong cửa hàng, hãy chắc chắn thu hẹp kết quả bằng hệ điều hành SteamOS / Linux. Không phải tất cả các trò chơi Linux đều tương thích với hệ thống của bạn, vì vậy hãy đảm bảo bạn kiểm tra các yêu cầu trước khi mua trò chơi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.