wiki.sine.space | sinespace

For Linux Users

From wiki.sine.space
Revision as of 05:58, 7 February 2018 by JamesStallings (Talk | contribs)

Jump to: navigation, search

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 :)


Ubuntu package dependencies provided by Unity:

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.

Feel free to hit me up on skype or in-world if you need some help :)