In this brief article we'll examine what's needful to run the Unity Editor and the sinespace client on Linux.
Lets take a closer look at that statement: essentially, it says we're going to do stuff with linux. What's the problem there? One that's much bigger than mere semantics:
"Linux" is a very broad, general term in practical usage. Very specifically, however, it refers to an low-level operating system kernel, one that just happens to run a boat load of GNU software, much of which is libraries; we'll get back to that though. Somewhat less sweepingly, "Linux" refers to one or more of the many extant "Linux Distributions".
Linux distributions are essentially each someone's template of a linux installation in installable/installed form, and they typically include farily custom components for doing such things as maintaining the operating system, curating user accounts, managing storage; additionally they will provide custom policies and tools for adding/removing/updating software, including system libraries.
When setting up Unity and Sinespace specifically, we are considering some very simple operations; essentially that of launching and guiding some solid installer shells. The real difficulty as such lies in the underlying operating system.
There's a real grey area with respect to where the line is drawn between the canonical 'operating system' and various applications software. To me, it isn't a line so much as an area of overlap comprised principally of libraries. As I'm sure you probably know, libraries support (typically) related high level operations over a set of more general purpose, low-level (possible kernel-provided) operations in support of such things as ease of coding, modularization of code, homegeniety and consistency of operations across different software elements, etc. I digress a little, but it is relevant.
To cut to the chase, the libraries are the real focus of getting it right 'on linux'.
The salient point about the libraries is this: Unity requires certain operations to be supported by the system libraries. These operations follow a defacto standard. It doesn't much matter to unity what library provides the functionality; as long as a proper value is returned when the library calls are made.
If you haven't guessed it by now, there are often a few different libraries that might provide such functionality. Different linux distributions might (and usually do) use different combinations of these libraries to provide essentially the same support.
SO. How do you know which libraries to install? That's a good question. It begins with knowing what functionality unity requires, but that's more difficult than it sounds because it's fairly fine-grained knowledge of unity internals. However, we do know that Unity is 'officially' supported by Unity on the Ubuntu Linux distribution. Does this means we should be running unity -only- on ubuntu? Oh HELL no :)
It DOES mean, however, that we can use the list of ubuntu library dependencies provided by unity, and cross-reference them to the libraries that are available in the manifests of our distribution's software repositories.
This is hard work, but readily accomplished if you just know what to do :)
gconf-service
lib32gcc1 (>= 1:4.1.1)
lib32stdc++6 (>= 4.6)
libasound2 (>= 1.0.23)
libc6 (>> 2.15)
libc6-i386 (>= 2.15)
libcairo2 (>= 1.6.0)
libcap2 (>= 2.10)
libcups2 (>= 1.4.0)
libdbus-1-3 (>= 1.2.14)
libexpat1 (>= 1.95.8)
libfontconfig1 (>= 2.8.0)
libfreetype6 (>= 2.3.9)
libgcc1 (>= 1:4.1.1)
libgconf-2-4 (>= 2.31.1)
libgdk-pixbuf2.0-0 (>= 2.22.0)
libgl1-mesa-glx | libgl1
libglib2.0-0 (>= 2.31.8)
libglu1-mesa | libglu1
libgtk2.0-0 (>= 2.24.0)
libnspr4 (>= 1.8.0.10)
libnss3 (>= 3.14.3)
libpango1.0-0 (>= 1.22.0)
libstdc++6 (>= 4.6)
libx11-6 (>= 2:1.4.99.1)
libxcomposite1 (>= 1:0.3-1)
libxcursor1 (>> 1.1.2)
libxdamage1 (>= 1:1.1)
libxext6
libxfixes3
libxi6 (>= 2:1.2.99.4)
libxrandr2 (>= 2:1.2.99.2)
libxrender1
libxtst6
zlib1g (>= 1:1.1.4)
debconf (>= 0.5) | debconf-2.0
npm
a more maintained copy of this list (and the linux installers) can be found here: [1]
Note that you'll only need the debconf stuff if you are actually running ubuntu or debian. Also note you'll want to be certain you have the latest stable drivers for your graphics subsystem.
These fo low preciselyt the same steps as on a windows or mac platform once you get beyond that point of locating and obtaining the correct package for your linux.
As mentioned earlier, the only 'officially supported' linux distro is Ubuntu, so Unity does actually provide and Ubuntu package from which one can install Unity. What about the rest of us? Well, we want the 'platform agnostic' sheel script.
This shell installer harkens back to the days of the manually typed command line-launched programs of yesteryear, from a time of bat files and bash scripts implementing text-based installers. Don't let that scare you, because that's exactly what the platform agnostic installers are, heh.
No matter though, download it and invoke it by opening a bash shell and entering the fully qualified path to the shell script, including the full name of the file. That should get you off and running. Note that Unity will most likely be started from such a shell with a like command too, so get cozy with that bash shell.
Feel free to hit me up on skype or in-world if you need some help :)
|