What are the stand alone Linux player dependencies?

What’s the minimum set of packages needed to run the stand alone Unity player on Ubuntu?

Trying to run the stand alone player on Ubuntu server in batch mode.

Since this hasn’t been answered yet, I thought I will suggest going through every binary you can find provided with the exported game and run ldd.


$ ldd ./mono.so

This should at least provide you with lists of what the game needs to link to at runtime.
Run the lists through the unique command to get rid of repeated results.

I am going to be doing this shortly before I create some .rpms for our games, I will post my findings here :).

EDIT: Sorry for the delay. I lost this thread when the Unity forums had that large change a while back.

[kpedersen@sandiego angrybots]$ ldd angrybots.x86 
	linux-gate.so.1 =>  (0xb778a000)
	libGLU.so.1 => /lib/libGLU.so.1 (0xb76ee000)
	libGL.so.1 => /usr/lib/nvidia-304xx/libGL.so.1 (0xb7612000)
	libX11.so.6 => /lib/libX11.so.6 (0x4d1ef000)
	libXext.so.6 => /lib/libXext.so.6 (0x4d3b9000)
	libXcursor.so.1 => /lib/libXcursor.so.1 (0x4da67000)
	libdl.so.2 => /lib/libdl.so.2 (0x4cd6e000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x4cd75000)
	librt.so.1 => /lib/librt.so.1 (0x4cdef000)
	libm.so.6 => /lib/libm.so.6 (0x4cdaa000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4cfbd000)
	libc.so.6 => /lib/libc.so.6 (0x4cbad000)
	/lib/ld-linux.so.2 (0x4cb85000)
	libstdc++.so.6 => /lib/libstdc++.so.6 (0x4dba6000)
	libnvidia-tls.so.304.108 => /usr/lib/nvidia-304xx/tls/libnvidia-tls.so.304.108 (0xb760c000)
	libnvidia-glcore.so.304.108 => /usr/lib/nvidia-304xx/libnvidia-glcore.so.304.108 (0xb5906000)
	libxcb.so.1 => /lib/libxcb.so.1 (0x4d1c5000)
	libXrender.so.1 => /lib/libXrender.so.1 (0x4d542000)
	libXfixes.so.3 => /lib/libXfixes.so.3 (0x4d929000)
	libXau.so.6 => /lib/libXau.so.6 (0x4d1e9000)

Basically the dependencies pulled in by Unity is impressively small. All of them are provided by Linux standard base (LSB), X11 or the implementation of OpenGL. This makes a nice change and should certainly help a game exported by Unity run on the many different Linux distributions (for a while anyway).

The provided libmono.so doesn’t pull in anything extra either. I don’t believe there are any external libraries loaded dynamically either so this is pretty much it :slight_smile:

FYI: Unity Editor (tested 4.2.0f4) is also working very nicely in Wine for me with the following guide:
If you had trouble before, give it another shot with the latest version of Wine :slight_smile:

I needed these for 32-bit:

apt-get install libglu1-mesa
apt-get install libxcursor1:i386
apt-get install libxrandr2:i386

Counter check:

$ ldd lnxded.x86
linux-gate.so.1 =>  (0xf7754000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7742000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7729000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf771f000)
libGLU.so.1 => /usr/lib/i386-linux-gnu/libGLU.so.1 (0xf76aa000)
libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xf7650000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7518000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf7506000)
libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xf74fb000)
libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf74f3000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf74cd000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf74b0000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf734b000)
/lib/ld-linux.so.2 (0xf7755000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf725e000)
libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf7248000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf7245000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf723f000)
libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf723d000)
libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf7223000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf7200000)
libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf71fa000)
libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf71ec000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf71e2000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf71de000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf71d8000)

It didn’t help me though, because I need Unity Pro to run my Build with -batchmode. And I don’t have enough money, hence thinking about switching to UDK. For 1400 € I can rent it like 5 years, lol.

$ ./lnxded.x86 -batchmode
Set current directory to /home/kungfooman/unity
Found path: /home/kungfooman/unity/lnxded.x86
Mono path[0] = '/home/kungfooman/unity/lnxded_Data/Managed'
Mono path[1] = '/home/kungfooman/unity/lnxded_Data/Mono'
Mono config path = '/home/kungfooman/unity/lnxded_Data/Mono/etc'
PlayerConnection initialized from /home/kungfooman/unity/lnxded_Data (debug = 0)
PlayerConnection initialized network socket : 55140
Multi-casting "[IP] [Port] 55140 [Flags] 3 [Guid] 747852960 [EditorId] 192774146 [Version] 1048832 [Id] LinuxPlayer( [Debug] 1" to []...
Waiting for connection from host on []...
Timed out. Continuing without host connection.
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=
PlayerConnection already initialized - listening to []
"-batchmode" command line argument is only available when publishing using Unity Pro.

You can find my answer here :

This is the last answer, you’ll find a little tool to automatically download everything needed by your application.