Здравствуйте.
Имеется проблема с запуском XCOM:Enemy Unknown. Игра куплена в Steam. Из Steam не запускается. Полез в каталог с игрой, чтобы запустить бинарник в ручную. Вот, что выдает:
./game.x86_64: error while loading shared libraries: libsteam_api.so: cannot open shared object file: No such file or directory
Решил проверить, какие библиотеки он ещё не видит:
linux-vdso.so.1 (0x00007fff55dfe000)
libz.so.1 => /lib64/libz.so.1 (0x00007faabfea0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faabfc83000)
librt.so.1 => /lib64/librt.so.1 (0x00007faabfa7a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007faabf876000)
libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007faabf64b000)
libvorbisfile.so.3 => /usr/lib64/libvorbisfile.so.3 (0x00007faabf442000)
libopenal.so.1 => /usr/lib64/libopenal.so.1 (0x00007faabf1f3000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007faabefca000)
libsteam_api.so => not found
libicui18n.so.51 => not found
libicuuc.so.51 => not found
libicudata.so.51 => not found
libCoreFoundation.so.476 => not found
libSDL2-2.0.so.0 => /usr/lib64/libSDL2-2.0.so.0 (0x00007faabecc2000)
libSDL2_image-2.0.so.0 => /usr/lib64/libSDL2_image-2.0.so.0 (0x00007faabea9b000)
libfreetype.so.6 => /usr/lib64/libfreetype-infinality/libfreetype.so.6 (0x00007faabe7e5000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007faabe5a7000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007faabe2a3000)
libm.so.6 => /lib64/libm.so.6 (0x00007faabdfa5000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007faabdd8f000)
libc.so.6 => /lib64/libc.so.6 (0x00007faabd9de000)
/lib64/ld-linux-x86-64.so.2 (0x00007faac00d8000)
libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007faabd7d7000)
libpng15.so.15 => /usr/lib64/libpng15.so.15 (0x00007faabd5ab000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007faabd35d000)
libtiff.so.5 => /usr/lib64/libtiff.so.5 (0x00007faabd0eb000)
libwebp.so.5 => /usr/lib64/libwebp.so.5 (0x00007faabce90000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007faabcc66000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007faabca41000)
Все не найденные библиотеки лежат в соседнем каталоге и тут начинается самое интересное. Бинарник запускается с помощью скрипта xcom.sh. В нем производят внесение этих библиотек в LD_LIBRARY_PATH и вроде все пути прописаны правильно и библиотеки прогружаются. На это также указывает crashlog, однако запуска не происходит.
Изучив интернет я наткнулся на то, что такая проблема вылазит при использовании свободных драйверов, но я использую проприетарный драйвер NVidia. Как решить данную проблему даже и не знаю. Прошу у вас помощи.
Также прикладываю dump crashlog.
glxinfo |grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 750 Ti/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 340.46
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 340.46
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
Текст xcom.sh
#!/bin/bash
# figure out the absolute path to the script being run a bit
# non-obvious, the ${0%/*} pulls the path out of $0, cd's into the
# specified directory, then uses $PWD to figure out where that
# directory lives - and all this in a subshell, so we don't affect
# $PWD
GAMEROOT=$(cd "${0%/*}" && echo $PWD)/../..
# Push our libraries to LD_LIBRARY_PATH
export LD_LIBRARY_PATH="${GAMEROOT}/binaries/linux/x86_64/":"${LD_LIBRARY_PATH}"
if [ -z "$GAMEEXE" ]; then
GAMEEXE=game.x86_64
fi
ulimit -n 2048
cd "$GAMEROOT"
GAMEBINARY="${GAMEROOT}/binaries/linux"/${GAMEEXE}
# This sets what SDL uses for the X11 window class, which Gnome shell uses for
# the application name (on X11).
export SDL_VIDEO_X11_WMCLASS="XCOM: Enemy Unknown"
# check if the game binary exists
if [ -e "$GAMEBINARY" ]; then
# Launch the game and grab the status
STATUS=42
while [ $STATUS -eq 42 ]; do
${DEBUGGER} "${GAMEBINARY}" $@
STATUS=$?
done
exit $STATUS
else
# Binary is missing, something went wrong
echo "XCOM ERROR - $GAMEBINARY missing"
fi