[Linux] Linux .deb Install Problem

The answer is in this very thread:

http://forum.greenheartgames.com/t/linux-linux-deb-install-problem/219/15

that will not work, Iā€™ve tried it. also if you are running a 64bit system you will want to link /usr/lib/libudev.so.1.3.3 to /usr/lib/libudev.so.0 but this still didnā€™t work for me.

try

sudo apt-get install libnss3:i386

and see what it says then

I get this

roland@steelers:~$ sudo apt-get install libnss3:i386
[sudo] password for roland:
Reading package listsā€¦ Done
Building dependency tree
Reading state informationā€¦ Done
libnss3:i386 is already the newest version.
The following packages were automatically installed and are no longer required:
gcc-4.7-base:i386 libgnome-keyring0:i386 libllvm3.1:i386 linux-image-generic
Use ā€˜apt-get autoremoveā€™ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
roland@steelers:~$

I get this after when I run the game from the Terminal

roland@steelers:~$ gamedevtycoon
gamedevtycoon: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
roland@steelers:~$

Roland

so youā€™re running a 32bit distro?

What distro? Ubuntu? Arch?

@GendoIkari @Gilligan94 Ubuntu 13.10 x64 Development Release.

Roland

that seems a little unwiseā€¦

I already have libnss3 installed

proof:

gilligan@ThinkPad-T430u:~$ sudo apt-get install libnss3
[sudo] password for gilligan: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libnss3 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Yeah sorry, i was a bit quick in replying. :smile:

See the post again, if you still have problem with gconf.

nope, still no luck. Maybe the game needs the 32bit versions of this file?

gilligan@ThinkPad-T430u:~$ sudo apt-get install libgconf2-4
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  libgconf2-4
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,046 B of archives.
After this operation, 386 kB of additional disk space will be used.
Get:1 http://au.archive.ubuntu.com/ubuntu/ raring/main libgconf2-4 amd64 3.2.6-0ubuntu1 [2,046 B]
Fetched 2,046 B in 1s (1,780 B/s)      
Selecting previously unselected package libgconf2-4:amd64.
(Reading database ... 196007 files and directories currently installed.)
Unpacking libgconf2-4:amd64 (from .../libgconf2-4_3.2.6-0ubuntu1_amd64.deb) ...
Setting up libgconf2-4:amd64 (3.2.6-0ubuntu1) ...
gilligan@ThinkPad-T430u:~$ gamedevtycoon
gamedevtycoon: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory

Iā€™ve ended up Installing the Windows version in Wine & it works fine apart from no sound.

Roland

gross, thatā€™s nasty.

Yeah probably, if youā€™re runnin x64bit, go ahead and try? (sudo apt-get install ligconf2-4:i386)

well that did do stuff, but it looks like thereā€™s still more to goā€¦

gilligan@ThinkPad-T430u:~$ sudo apt-get install libgconf2-4:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libdbus-glib-1-2:i386 libgconf-2-4:i386
The following NEW packages will be installed:
  libdbus-glib-1-2:i386 libgconf-2-4:i386 libgconf2-4:i386
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 155 kB of archives.
After this operation, 1,189 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://au.archive.ubuntu.com/ubuntu/ raring/main libdbus-glib-1-2 i386 0.100.2-1 [74.2 kB]
Get:2 http://au.archive.ubuntu.com/ubuntu/ raring/main libgconf-2-4 i386 3.2.6-0ubuntu1 [78.8 kB]
Get:3 http://au.archive.ubuntu.com/ubuntu/ raring/main libgconf2-4 i386 3.2.6-0ubuntu1 [2,046 B]
Fetched 155 kB in 2s (57.8 kB/s)       
Selecting previously unselected package libdbus-glib-1-2:i386.
(Reading database ... 196015 files and directories currently installed.)
Unpacking libdbus-glib-1-2:i386 (from .../libdbus-glib-1-2_0.100.2-1_i386.deb) ...
Selecting previously unselected package libgconf-2-4:i386.
Unpacking libgconf-2-4:i386 (from .../libgconf-2-4_3.2.6-0ubuntu1_i386.deb) ...
Selecting previously unselected package libgconf2-4:i386.
Unpacking libgconf2-4:i386 (from .../libgconf2-4_3.2.6-0ubuntu1_i386.deb) ...
Setting up libdbus-glib-1-2:i386 (0.100.2-1) ...
Setting up libgconf-2-4:i386 (3.2.6-0ubuntu1) ...
Setting up libgconf2-4:i386 (3.2.6-0ubuntu1) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
gilligan@ThinkPad-T430u:~$ gamedevtycoon
gamedevtycoon: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

@Gilligan94 If you are on 64bit try this:

sudo apt-get install ia32-libs

That should get you what all you need

I did as you said (I wont post the install output here because it will take up a lot of space) but I still get the following error

gilligan@ThinkPad-T430u:~$ gamedevtycoon
gamedevtycoon: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

Would this be the correct place to ask if the devs have any intention of maintaining a PPA?

tis a shame, PPAs are nice

i have tried EVERY suggested solution in this thread. none of them work (though thanks for all your efforts). the first game iā€™ve bought in my life that has refused to work despite all efforts. if i was getting paid by the hour then the devs owe me a fair bit of cash.
your first game greenheart games? iā€™d predict the company would never have moved out of the garage if linux was a major factor your plans. i donā€™t mean to be negativeā€¦just wasted far too much time on this. if anything improves (re: 64 bit debs) then i hope purchasers are notified via email.
goodnight.

Okay, Iā€™m going to post a thorough description of whatā€™s going on here in the hope that it will help all of you who are having issues on Linux. There are two ways of running the game on Linux, and you can do either.

  1. Run the binary provided by GHG (by installing the .deb or by extracting the .tar.gz).
  2. Extract the source code of the game and run it with node-webkit directly
  3. (Technically there is a third way - you can extract the source and open it directly in a browser, but Iā€™ll leave that for nowā€¦)

Both #1 and #2 require some fiddling to get everything to work. Letā€™s try #1 first. What GHG have done is ā€œcompiledā€ the game using an (old) 32-bit version of a program called node-webkit. Trying to run ./gamedevtycoon and getting errors are usually because of one of two issues (or both if youā€™re unlucky). On 32-bit systems, Iā€™d probably recommend #1, but on 64-bit systems, #2 is probably preferable.


First, if you are running a 64-bit OS (run ā€œuname -mā€ and look for x86_64), you will need 32-bit versions of several libraries. From what Iā€™ve been able to see, GDT requires libnss, libgconf and libudev, so go ahead and install the 32-bit versions of any of those that you get errors for when trying to run the game. ā€œapt-cache searchā€ is your friend.

Second, node-webkit uses an outdated version of libudev, namely libudev.so.0. When the game starts, it looks for that file in the systemā€™s library folder. Because it was compiled on a 32-bit system, it will look for the 32-bit version, so it will be looking in /usr/lib on 32-bit systems and /usr/lib32 on 64-bit systems. Thing is, libudev.so.0 will probably not be there, so we need to trick the system into using libudev.so.1 which works just as well. The ugly workaround is to run ln -s /usr/lib/libudev.so.1 /usr/lib/libudev.so.0 as root. Note that if you are on a 64-bit system, you need to use /usr/lib32 instead! If youā€™ve done all of this, the game should work correctly.


The ā€œbetterā€ way of running GDT on 64-bit systems is to do as Iā€™ve outlined in this blog post. First, you need to extract the game from the .tar.gz to some directory. Now, run unzip gamedevtycoon, and you should end up with lots of additional files in the current directory - those are the source files for the game. Now, we want to run it using an up-to-date, native (that is, 64-bit on a 64-bit system) version of node-webkit.

Download the appropriate binary from here and put the files inside in the same folder as GDT, overwriting any conflicting files. That is not the end of it, however, because node-webkit still has some dependencies. The advantage is that we can now use the native versions of them! So, make sure you have nss, gconf and udev installed before we continue. The last step now is to get over node-webkitā€™s old libudev version, so we have to do the same hack as we did for #1: ln -s /usr/lib/libudev.so.1 /usr/lib/libudev.so.0. Since weā€™re now using a 64-bit binary on 64-bit systems, use /usr/lib/ on all systems, not /usr/lib32/!

So, finally, to run the game with approach #2, go into the directory where all the files now are and run nw ./, and everything should be working perfectly.


Hope this is helpful to someone, and enjoy the game!