protonscr

VERSION ID: unbound version steam

steamopen reviewed
ValveSoftware/steam-for-linux#3695 · opened 2015-01-30 by acgtyrant · updated 2021-07-01 · 16 comments · github
Aacgtyrant 2015-01-30 github

After an update today, I can not launch Steam suddenly, no window, no tray.

I tried launched Steam in the terminal, it returns:

Repairing installation, linking /home/acgtyrant/.steam/steam to /home/acgtyrant/.local/share/Steam
/home/acgtyrant/dotfiles/Default Applications/.local/share/Steam/steam.sh: line 162: VERSION_ID: unbound variable
/home/acgtyrant/dotfiles/Default Applications/.local/share/Steam/steam.sh: line 162: VERSION_ID: unbound variable
Running Steam on arch  64-bit
/home/acgtyrant/dotfiles/Default Applications/.local/share/Steam/steam.sh: line 162: VERSION_ID: unbound variable
STEAM_RUNTIME is enabled automatically
/home/acgtyrant/dotfiles/Default Applications/.local/share/Steam/steam.sh: line 348: no match: /home/acgtyrant/dotfiles/ubuntu12_32/steam-runtime.tar.xz.part*

Arch Linux, steam-1.0.0.49-2, I have reinstall it, no work.

Rrkingsbury 2015-01-31 github

Very similar problem here. Steam has been running fine on my OpenSUSE 13.2 x64 system, until today's update. Now I get:

/home/ryan/.local/share/Steam/steam.sh: line 146: DISTRIB_ID: unbound variable
/home/ryan/.local/share/Steam/steam.sh: line 160: DISTRIB_RELEASE: unbound variable
/home/ryan/.local/share/Steam/steam.sh: line 146: DISTRIB_ID: unbound variable
/home/ryan/.local/share/Steam/steam.sh: line 160: DISTRIB_RELEASE: unbound variable
Running Steam on   64-bit
/home/ryan/.local/share/Steam/steam.sh: line 146: DISTRIB_ID: unbound variable
/home/ryan/.local/share/Steam/steam.sh: line 160: DISTRIB_RELEASE: unbound variable
STEAM_RUNTIME is enabled automatically
/home/ryan/.local/share/Steam/steam.sh: line 346: no match: /home/ryan/.local/share/Steam/ubuntu12_32/steam-runtime.tar.xz.part*

I too, tried reinstalling steam to no avail.

Aacgtyrant 2015-01-31 github

Actually I had linked ~./local/ to ~/dotfiles/Default Applications/.local/, I removed this soft link and reinstalled steam, it works, although I have to download Dota 2 again.

Rrkingsbury 2015-01-31 github

In my case, the first problem is that although openSUSE has an /etc/lsb-release file, it doesn't contain the variables $DISTRIB_ID or $DISTRIB_RELEASE

> cat /etc/lsb-release
LSB_VERSION="core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64"

I was able to get rid of those errors by editing lines 146 and 160 of steam.sh to remove the step where it checks for /etc/lsb-release.

Before:

function detect_distro()
{
    if [ -f /etc/lsb-release ]; then
        (. /etc/lsb-release; echo $DISTRIB_ID | tr '[A-Z]' '[a-z]')
    elif [ -f /etc/os-release ]; then
        (. /etc/os-release; echo $ID | tr '[A-Z]' '[a-z]')
    elif [ -f /etc/debian_version ]; then
        echo "debian"
    else
        # Generic fallback
        uname -s
    fi
}

function detect_release()
{
    if [ -f /etc/lsb-release ]; then
        (. /etc/lsb-release; echo $DISTRIB_RELEASE)
    elif [ -f /etc/os-release ]; then
        (. /etc/os-release; echo $VERSION_ID)
    elif [ -f /etc/debian_version ]; then
        cat /etc/debian_version
    else
        # Generic fallback
        uname -r
    fi
}

After:

function detect_distro()
{
    if [ -f /etc/os-release ]; then
        (. /etc/os-release; echo $ID | tr '[A-Z]' '[a-z]')
    elif [ -f /etc/debian_version ]; then
        echo "debian"
    else
        # Generic fallback
        uname -s
    fi
}

function detect_release()
{

    if [ -f /etc/os-release ]; then
        (. /etc/os-release; echo $VERSION_ID)
    elif [ -f /etc/debian_version ]; then
        cat /etc/debian_version
    else
        # Generic fallback
        uname -r
    fi
}

Sadly, I'm still stuck with the other errors. Here's the new terminal output:

Running Steam on opensuse 13.2 64-bit
STEAM_RUNTIME is enabled automatically
/home/ryan/.local/share/Steam/steam.sh: line 343: no match: /home/ryan/.local/share/Steam/ubuntu12_32/steam-runtime.tar.xz.part*
Rrkingsbury 2015-01-31 github

Update: I was able to get steam working by navigating to ~/.local/share/Steam/ubuntu12_32 and executing

./steam

I had to run it twice. The first time it got stuck "checking for updates" and the second time it actually applied an update and launched properly.

Note that applying this update appeared to undo the changes to steam.sh that I made above. I still see the $DISTRIB_ID and $DISTRIB_RELEASE errors at the terminal, but they don't prevent steam from starting anymore.

Hope this helps someone else.

PPGPereira 2015-02-04 github

For me it only bugs if I use steam with STEAM_RUNTIME=1 exported. It may be a workaround.

Rrkoot 2015-02-16 github

just put the following 2 lines in your .bashrc:

export DISTRIB_ID=your-distro
export DISTRIB_RELEASE=version-number

for instance, on a opensuse 13.2 box you'd say

export DISTRIB_ID=opensuse
export DISTRIB_RELEASE=13.2

afterwards, do a 'source ~/.bashrc' and fire up steam.

Bboombatower 2015-11-04 github

@rkoot Sure, but those functions are clearly silly if their entire purpose is to detect distro and they do not on a major one. Note according to docs those fields are optional, so steam should check to see if they are present. If not move on to next method for identifying distro.

Optional fields are DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME, DISTRIB_DESCRIPTION and can be used to override information which is parsed from the "/etc/distrib-release" file.

Note that the instant you start steam it changes that script back (ie updates) and then runs the original version.

I can confirm the suggested fix works at detecting openSUSE Tumbleweed as well. For posterity (although a better check would be to see if $DISTRIB_* variables are present in lsb-release).

--- steam.sh       2015-11-04 01:18:04.822977197 -0600
+++ steam.sh       2015-11-04 01:18:04.822977197 -0600
@@ -141,9 +141,7 @@

 function detect_distro()
 {
-       if [ -f /etc/lsb-release ]; then
-               (. /etc/lsb-release; echo $DISTRIB_ID | tr '[A-Z]' '[a-z]')
-       elif [ -f /etc/os-release ]; then
+       if [ -f /etc/os-release ]; then
                (. /etc/os-release; echo $ID | tr '[A-Z]' '[a-z]')
        elif [ -f /etc/debian_version ]; then
                echo "debian"
@@ -155,9 +153,7 @@

 function detect_release()
 {
-       if [ -f /etc/lsb-release ]; then
-               (. /etc/lsb-release; echo $DISTRIB_RELEASE)
-       elif [ -f /etc/os-release ]; then
+       if [ -f /etc/os-release ]; then
                (. /etc/os-release; echo $VERSION_ID)
        elif [ -f /etc/debian_version ]; then
                cat /etc/debian_version
Bboombatower 2015-11-04 github

Same as #3694

Bboombatower 2015-11-20 github

Updated openSUSE to include the optional fields since it seems unlikely Steam will change it.

https://build.opensuse.org/request/show/342353

  • hopefully it will be merged into factory soon and show up in tumblweed and future releases
Ccebtenzzre 2018-04-08 github

It's a shame issues as dead-simple as these persist to this day. Leave it to Valve...

Bboombatower 2018-04-10 github

To be clear this "fix" was reverted.

Bbaryluk 2019-10-28 github

How about much simpler approach:

if which lsb_release >/dev/null; then
  lsb_release -rs
elif ...

and similarly using lsb_release -is in detect_distro () function.

I don't think the one is supposed to be messing manually with lsb-release, os-release, debian_release, ubuntu_release, etc

IiDarkTemplar 2020-01-25 github

I'm getting 'VERSION_ID: unbound variable' message in log too on Gentoo Linux, although Steam itself looks running fine.

Vvioletastcs 2020-03-08 github

I'm getting VERSION_ID: unbounded variable on Void linux

Ssemilin 2020-06-08 github

Same thing here on Void Linux. Adding the value it wants does nothing.

RRazorfang 2021-07-01 github

I'm getting 'VERSION_ID: unbound variable' message in log too on Gentoo Linux, although Steam itself looks running fine.

Same for me. I get that error when I start steam but it operates fine. Seems like whatever defaults it falls back to works for us.

Nothing extracted yet.