ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.13k stars 174 forks source link

[Feature] Enable i386 architecture during steam installation #10855

Open kelsyduck opened 1 week ago

kelsyduck commented 1 week ago

Steam needs 32 bit libraries in order to operate and I often get errors when I don't run the command "sudo dpkg --add-architecture i386". This produces the error "You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1" and "Fatal Error: Failed to load steamui.so"

Steps for reproducing this issue:

  1. Install "steam_latest.deb."
  2. Before the installation where Steam installs all of its dependencies, enable 32 bit architecture
  3. Install dependencies as normal.
smcv commented 1 week ago

The step that installs 32-bit dependencies is already meant to do this? If that isn't working as intended, we'll need to see more information from Steam's output.

I'll see whether I can reproduce this problem myself, but if not, we'll need more information from you.

(Obviously if the user who is running steam for the first time is not allowed to run commands as root or configure apt, then this isn't going to work; but in that situation there is nothing we can do to resolve this anyway.)

Before the installation where Steam installs all of its dependencies, enable 32 bit architecture

Are you sure this is part of the steps to reproduce the problem you are reporting, and not a workaround for the problem?

smcv commented 1 week ago

Steps to attempt to reproduce this:

  1. Boot an Ubuntu 22.04 live image, in a virtual machine with lots of RAM (I gave it 8G) so that it will have enough space on the root tmpfs to install Steam
  2. At the Install prompt, choose Try Ubuntu
  3. Open a terminal
  4. wget https://repo.steampowered.com/steam/archive/stable/steam-launcher_1.0.0.79_all.deb
  5. sudo apt install ./*.deb
  6. steam
  7. A terminal window with title "Evaluating dependencies" pops up, prompting with: "The packages cace seems to be out of date. Press return to update the list of available packages:". Press Return/Enter.
  8. Output ends with "Steam needs to install these additional packages: libc6:amd64 libc6:i386 ... steam-libs-i386:i386. Press return to proceed with the installation:". Press Return/Enter.
  9. Output ends with "After this operation, 321 MB of additional disk space will be used. Do you want to continue? [Y/n]". Press Return/Enter.
  10. Output ends with "Processing triggers for libc-bin (...) .... Press return to continue:". Press Return/Enter.
  11. Light grey progress bar "Updating Steam runtime environment...". Wait.
  12. Dark grey progress bar "Updating Steam... Downloading update (xxx of 453,060 KB)...". Wait.
  13. Output in the original terminal ends with "Extracting package... Installing update... ... Restarting Steam by request". Wait.
  14. Eventually the Steam sign-in prompt appears (account name, password, QR code).

(Colours, exact text, etc. will vary with your OS and desktop environment.)

smcv commented 1 week ago

I confirm that the steamdeps script already does enable i386 if necessary (in the needs_i386() and enable_i386() functions).

If this isn't working on your particular system, then that's a bug rather than a request for a missing feature, and we'll need more details to be able to diagnose and solve that bug.

kelsyduck commented 1 week ago

Ah, I was running on Debian 12 instead of Ubuntu 22.02. It must be specific to Debian then(?). I'll make a bug report, sorry about that.

kisak-valve commented 1 week ago

Hello @kelsyduck, you already started the discussion here. There's no point in fragmenting it across multiple issue reports.

smcv commented 1 week ago

If you're using Valve's steam_latest.deb, this is the correct place for bug reports. Debian does not maintain that package.

(If you were using Debian's steam-installer, Debian's bug tracking system would be the appropriate place, but you shouldn't have been able to install it without adding the i386 architecture first - the installation sequence is different for that package.)

smcv commented 1 week ago

I wasn't able to reproduce this problem in Debian 12 either.

  1. Boot a Debian 12 live image (I used Debian 12.5 GNOME), in a virtual machine with lots of RAM (I gave it 8G) so that it will have enough space on the root tmpfs to install Steam
  2. Answer the initial questions about keyboard layout etc. if prompted
  3. Open a terminal
  4. sudo apt update
  5. sudo apt install wget
  6. wget https://repo.steampowered.com/steam/archive/stable/steam-launcher_1.0.0.79_all.deb
  7. sudo apt install ./*.deb
  8. steam
  9. A terminal window with title "Evaluating dependencies" pops up, prompting with: "The packages cache seems to be out of date. Press return to update the list of available packages:". Press Return/Enter.
  10. Output ends with "Steam needs to install these additional packages: libc6:amd64 libc6:i386 ... steam-libs-i386:i386. Press return to proceed with the installation:". Press Return/Enter.
  11. Output ends with "After this operation, 453 MB of additional disk space will be used. Do you want to continue? [Y/n]". Press Return/Enter.
  12. Output ends with "Processing triggers for (...) .... Press return to continue:". Press Return/Enter.
  13. Light grey progress bar "Steam setup / Updating Steam runtime environment...". Wait.
  14. Dark grey progress bar "Steam / Updating Steam... Downloading update (xxx of 465,450 KB)...". Wait.
  15. Output in the original terminal reaches "Extracting package... Installing update... ... Restarting Steam by request". Wait.
  16. There are several light grey progress bars similar to step 13 while different flavours of the Steam Runtime get set up.
  17. Eventually the Steam sign-in prompt appears (account name, password, QR code).

For what it's worth, this ended up installing Steam version 1714854927, which is today's stable update.