How to install Rust Experimental Dedicated on x64 Debian WZY

How to install Rust Experimental Dedicated on x64 Debian WZY?



$ wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
$ unp steamcmd_linux.tar.gz
$ ./steamcmd.sh

SteamCMD will be downloading and initialising updates.

> login anonymous
> force_install_dir whatever
> app_update 258550 -beta experimental
> app_update 258550 validate
> exit

== Trying to run, solving all issues ==

Rust Dedicated requires you to point it to its own libraries using LD_LIBRARY_PATH. This is how you should start a server (parameters not included):

$ LD_LIBRARY_PATH=/path/to/whatever/RustDedicated_Data/Plugins/x86_64/:${LD_LIBRARY_PATH} ./whatever/RustDedicated -logfile output.txt

Wait a bit until the map has been generated.

$ cat output.txt

Errors:
* ERROR building certificate chain: System.ArgumentException: certificate
* DllNotFoundException: file: No such file or directory
* dlopen failed trying to load: steamclient.so with error: steamclient.so: wrong ELF class: ELFCLASS32
(you can ignore AmplifyMotion and Blueprint errors)

Solutions:
== ERROR building certificate chain: System.ArgumentException: certificate ==
This error has been solved in the latest Unity 5 update and is pushed to Rust Dedicated. Update using the steamcmd and this issue should be resolved.

== DllNotFoundException: file: No such file or directory ==
There's an issue with resolving some libraries, probably because libc6 is too old. Test this:

$ find . | grep libSteamNative.so
./whatever/RustDedicated_Data/Plugins/x86_64/libSteamNative.so
$ ldd ./whatever/RustDedicated_Data/Plugins/x86_64/libSteamNative.so
libsteam_api.so => not found
$ find . | grep libsteam_api.so
./whatever/RustDedicated_Data/Plugins/x86_64/libsteam_api.so
./whatever/libsteam_api.so
$ ldd ./whatever/RustDedicated_Data/Plugins/x86_64/libsteam_api.so
./whatever/RustDedicated_Data/Plugins/x86_64/libsteam_api.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./whatever/RustDedicated_Data/Plugins/x86_64/libsteam_api.so)

GLIBC_2.14 is required but not found. Download the latest libc6 from the ubuntu release, install it to a local folder to Rust and point to that one.

$ wget http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6-amd64_2.15-0ubuntu10.6_i386.deb
$ dpkg -X libc6-amd64_2.15-0ubuntu10.6_i386.deb libc6-amd64

Test if the new libraries resolve.

$ LD_LIBRARY_PATH=/path/to/libc6-amd64/lib64:/path/to/whatever/RustDedicated_Data/Plugins/x86_64/:${LD_LIBRARY_PATH} ldd ./whatever/RustDedicated_Data/Plugins/x86_64/libSteamNative.so
        linux-vdso.so.1 =>  (0x00007fff8cf17000)
        libsteam_api.so => /path/to/whatever/RustDedicated_Data/Plugins/x86_64/libsteam_api.so (0x00007f5d8db27000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5d8d807000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5d8d5f0000)
        libc.so.6 => /path/to/libc6-amd64/lib64/libc.so.6 (0x00007f5d8d248000)
        libdl.so.2 => /path/to/libc6-amd64/lib64/libdl.so.2 (0x00007f5d8d044000)
        libpthread.so.0 => /path/to/libc6-amd64/lib64/libpthread.so.0 (0x00007f5d8ce26000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5d8df45000)
        libm.so.6 => /path/to/libc6-amd64/lib64/libm.so.6 (0x00007f5d8cb30000)

Start the server with the LD_LIBRARY_PATH pointing to the lib64 directory of libc6 (like above).

== dlopen failed trying to load: steamclient.so with error: steamclient.so: wrong ELF class: ELFCLASS32 ==
The 32 bit steamclient.so can not be used on 64-bit systems. Acquire and place the correct steamclient.so.

$ wget http://ftp.ch.debian.org/debian/pool/non-free/s/steam/steam_1.0.0.48-2_i386.deb
$ dpkg -X steam_1.0.0.48-2_i386.deb steam
$ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' ./steam/usr/games/steam.real

Wait for Steam to finish updating, it will terminate when finished. Then point LD_LIBARY_PATH to the new steam clients linux64 folder and start the server.

$ LD_LIBRARY_PATH=/path/to/libc6-amd64/lib64:/path/to/steam/usr/linux64:/path/to/whatever/RustDedicated_Data/Plugins/x86_64/:${LD_LIBRARY_PATH} ./whatever/RustDedicated -logfile output.txt

== Now wait until Garry fixes stuff ==
You should now be able to start and run a Rust Dedicated server but it can not register with Steam. Your log file should contain periodic notices like this:

Unhandled Steam Callback: SteamServersConnectFailure

Except for that, everything else works fine.

Comments

Popular posts from this blog

How to change this to <%Html.ActionLink%> in my asp.net mvc application ?