- Home /
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.
I also would like to find out what dependencies are needed so bumping this question.
Answer by k.pedersen · Jan 07, 2013 at 11:57 AM
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
.
i.e
$ 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 :)
FYI: Unity Editor (tested 4.2.0f4) is also working very nicely in Wine for me with the following guide: http://appdb.winehq.org/objectManager.php?sClass=version&iId=28175 If you had trouble before, give it another shot with the latest version of Wine :)
@k.pedersen did you ever figure out the dependencies?
Answer by kungfooman · Feb 13, 2015 at 05:35 AM
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 : 0.0.0.0 55140
Multi-casting "[IP] 5.9.141.13 [Port] 55140 [Flags] 3 [Guid] 747852960 [EditorId] 192774146 [Version] 1048832 [Id] LinuxPlayer(5.9.141.13) [Debug] 1" to [225.0.0.222:54997]...
Waiting for connection from host on [5.9.141.13:55140]...
Timed out. Continuing without host connection.
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=0.0.0.0:56960
PlayerConnection already initialized - listening to [5.9.141.13:55140]
"-batchmode" command line argument is only available when publishing using Unity Pro.
Answer by Alesk · Feb 13, 2015 at 11:05 AM
You can find my answer here : http://answers.unity3d.com/questions/404131/how-to-run-the-exported-game-on-ubuntu.html
This is the last answer, you'll find a little tool to automatically download everything needed by your application.