Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing dependencies under Linux #197

Closed
oskay opened this issue Dec 11, 2014 · 27 comments
Closed

Missing dependencies under Linux #197

oskay opened this issue Dec 11, 2014 · 27 comments

Comments

@oskay
Copy link
Contributor

oskay commented Dec 11, 2014

Field report; requires verification:

https://plus.google.com/b/105395755735629417704/photos/+DaveLeCompte/albums/6091614580982285041?cfem=1

@tsmaster
Copy link

The difficulty I am having with RoboPaint is one of unsatisfied dependencies.

I unzipped the zip file, and ran ./robopaint, and it complained about missing libgtk-x11-x86.so (something roughly like that), which I was able to research on my own and install.

Running ./robopaint again at this point resulted in another unsatisfied dependency error (which I don't recall the details of, but can follow up later). I tried to install the library being complained about, but apt-get told me that I already had the latest version on my system. I looked around, and I did have multiple versions of that .so file. On a hunch, I copied one from Firefox's installation into the current directory - but this didn't make any difference.

I'm away from the machine in question at this moment, so I can't provide specifics, but it's a relatively recent Ubuntu machine, possibly one major release back on the OS.

@techninja
Copy link
Contributor

Hey there @tsmaster! Sorry for the troubles, we'll see what we can do. I actually develop the app on a 3yr old Lenovo running Ubuntu 14.04 LTS. It's got a bit of cobwebs around the edges, and likely more dependencies installed than I can recall. I'll check up on it and see if I can figure out what's up. Thanks for the report!

@tsmaster
Copy link

According to my WaterColorBot User Group post, libgtk2.0-0:i386.so and libnss3.so - with libnss3.so being the one that I'm currently stuck on.

@tsmaster
Copy link

Hi, @techninja - I was considering grabbing the sourcecode and trying to make a build myself. My theory was that the dependencies might be more obvious during the compile process, and I'd be able to figure out why libnss3 was giving me grief.

@techninja
Copy link
Contributor

Hopefully our instructions are pretty clear at the bottom of the readme, feel free and bug me if you're stuck. Though I suspect you could probably skip it and just try to run the v0.10.5 Node-webkit binary on its lonesome and get the same issues.

@tsmaster
Copy link

Nuts, I feel bad for not having read to the bottom.

I'm pretty sure I don't have node.js installed (yet) on that machine. I'll
doublecheck tonight.

On Thu, Dec 11, 2014 at 11:00 AM, James T notifications@github.com wrote:

Hopefully our instructions are pretty clear at the bottom of the readme
https://github.com/evil-mad/robopaint#contributing-to-the-project, feel
free and bug me if you're stuck. Though I suspect you could probably skip
it and just try to run the v0.10.5 Node-webkit binary on its lonesome
http://dl.node-webkit.org/v0.10.5/node-webkit-v0.10.5-linux-ia32.tar.gz
and get the same issues.


Reply to this email directly or view it on GitHub
#197 (comment).

@techninja
Copy link
Contributor

Also, just found this (though it's a little old), the binary RP sits on (Node-Webkit) apparently has some missing deps by default as Ubuntu always gets itself a little out of date. nwjs/nw.js#1646

@oskay
Copy link
Contributor Author

oskay commented Dec 11, 2014

Interesting on the missing deps by default-- If we could nail down exactly which, we should be able to make this not happen for people. :P

@techninja
Copy link
Contributor

I'm not 100% sure how much we could help on missing dependencies like this without #73, short of simply bundling more .so files with the zip. There's a chance if I can get a 32bit build of the missing deps (off my own machine perhaps) we can hand them with the zip and try? I don't have enough Linux machines to test on unfortunately.

@tsmaster
Copy link

I suspect that the problem may boil down to RTFM - I know I didn't read
(all of) the README - I'd hate for this to be solved by adding (old) binary
files to the ZIP if the problem was just me plunging ahead without
following the directions.

On Thu, Dec 11, 2014 at 11:31 AM, James T notifications@github.com wrote:

I'm not 100% sure how much we could help on missing dependencies like this
without #73 #73, short of
simply bundling more .so files with the zip. There's a chance if I can get
a 32bit build of the missing deps (off my own machine perhaps) we can hand
them with the zip and try? I don't have enough Linux machines to test on
unfortunately.


Reply to this email directly or view it on GitHub
#197 (comment).

@oskay
Copy link
Contributor Author

oskay commented Dec 11, 2014

@techninja Short of bundling, instructing the user to apt-get XYZ additional files might not be overly burdensome.

@tsmaster
Copy link

Re-reading the top of the README, I see this:

"

Simply copy folder from zip file to your desktop or other folder, then run
the executable inside."

That may have been where I stopped reading the README.

On Thu, Dec 11, 2014 at 11:40 AM, Windell Oskay notifications@github.com
wrote:

@techninja https://github.com/techninja Short of bundling, instructing
the user to apt-get XYZ additional files might not be overly burdensome.


Reply to this email directly or view it on GitHub
#197 (comment).

@techninja
Copy link
Contributor

@tsmaster Unless you're running from source, that should be all that's needed to run the release version. The instructions below that for contributing are only for running from source, though if you can't run the node-webkit binary, it's unlikely to help directly.

@oskay If we can verify that running a command like that will fix on machines that won't run the binary, I think that's certainly acceptable for Linux users until a package can be cobbled together. I may have to setup a clean VM to test this.

@tsmaster
Copy link

The linux machine I'm using is running Ubuntu 14.04LTS

The error I'm getting:
./robopaint: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

I've tried sudo apt-get install libnss3, and it says I already have the latest version, and indeed, I see several copies on my system:
/usr/lib/firefox/libnss3.so
/usr/lib/thunderbird/libnss3.so
/usr/lib/x86_64-linux-gnu/libnss3.so
/usr/lib/x86_64-linux-gnu/libnss3.so.1d

I tried running the 10.5 version of node-webkit (from above), and get the same libnss error. I tried running 11.2, and I get a different error, this time complaining about libudev.so.0. I saw a thread that suggested doing a hexedit of nw to refer to libudev.so.1, which seemed like a gross hack, but it actually allowed nw to run.

@oskay oskay changed the title RoboPaint "Not Working" under Linux Missing dependencies under Linux Dec 12, 2014
@techninja
Copy link
Contributor

AH, good. that title needed updating... I find it strange NW works on my Ubuntu machine. Possibly because it's been upgraded at least 4 times.

As far as actual solutions, the hex edit does prove to be technically workable. I could upgrade the NW binaries released with 0.9.4 to NW-0.11.2 and ensure the Linux one has the correctly hacked hex position... assuming that won't cause more issues. I suspect the issue here is that Linux is getting the short straw in the NW side of things. Does that sound nutty? Thing is I haven't seen any other complaints about this :/

@docprofsky
Copy link
Collaborator

Try running sudo ldconfig and then try running node-webkit or RoboPaint.

@tsmaster
Copy link

@docprofsky thanks for the suggestion, however I continue to get the same results.

@techninja
Copy link
Contributor

@tsmaster Fancy I find myself here! I just recently wiped and redid my laptop with Ubuntu 14.10 x64 (latest stable with all the toppings), and what do you know, NW does not work at all because of this specific issue! A quick googling brought me to this stackoverflow post about Chromium.

But, there is no libdev.0 package. Looking in the comments, I find the incantation that does work

sudo apt-get install libudev1:i386 -y
sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0

Though somewhat "hacky", this totally works and helps fill the hole, at least until NW fixes this issue (likely in NW 12).

@techninja
Copy link
Contributor

Another subtle issue: Ubuntu users by default are not part of the dialout group, and need to be otherwise you can't access serial ports without sudo. Here's the fix to add the current user to dialout:

sudo usermod -a -G dialout $USER

Then logout/back in, or reboot the machine, and everything is happy once again.

Also, as far as cleanliness, we should either append a Linux install.sh shell script to the linux package that does all this and close the ticket, and/or make sure we hear back from @tsmaster that these steps actually help him :)

@tsmaster
Copy link

now it's complaining about libnss3.so:

$ ./robopaint
./robopaint: error while loading shared libraries: libnss3.so: cannot open
shared object file: No such file or directory

On Sat, Feb 21, 2015 at 12:05 PM, James T notifications@github.com wrote:

Another subtle issue: Ubuntu users by default are not part of the dialout
group, and need to be otherwise you can't access serial ports without sudo.
Here's the fix to add the current user to dialout:

sudo usermod -a -G dialout $USER

Then logout/back in, or reboot the machine, and everything is happy once
again.

Also, as far as cleanliness, we should either append a Linux install.sh
shell script to the linuxpackage that does all this and close the ticket,
and/or make sure we hear back from @tsmaster https://github.com/tsmaster
that these steps actually help him :)


Reply to this email directly or view it on GitHub
#197 (comment).

@tsmaster
Copy link

... which is already installed, or at least the latest version of it is.

On Sun, Feb 22, 2015 at 11:39 AM, Dave LeCompte tsmaster@gmail.com wrote:

now it's complaining about libnss3.so:

$ ./robopaint
./robopaint: error while loading shared libraries: libnss3.so: cannot open
shared object file: No such file or directory

On Sat, Feb 21, 2015 at 12:05 PM, James T notifications@github.com
wrote:

Another subtle issue: Ubuntu users by default are not part of the dialout
group, and need to be otherwise you can't access serial ports without
sudo. Here's the fix to add the current user to dialout:

sudo usermod -a -G dialout $USER

Then logout/back in, or reboot the machine, and everything is happy once
again.

Also, as far as cleanliness, we should either append a Linux install.sh
shell script to the linuxpackage that does all this and close the ticket,
and/or make sure we hear back from @tsmaster
https://github.com/tsmaster that these steps actually help him :)


Reply to this email directly or view it on GitHub
#197 (comment).

@techninja
Copy link
Contributor

Poo! Well, we're not out of the common territory yet, this pulled up numerous results, and this link which seems promising. Glad chrome is so popular :)

http://superuser.com/questions/709524/google-chrome-dependency-error-libnss3

@techninja
Copy link
Contributor

I have not had this issue with Electron (at least not yet). I'm guessing they've done a better job of bundling Chromium. Closing this as the next release will be on Electron.

@tim-taylor
Copy link

I just bought a watercolorbot and I'm struggling to get robopaint working on my Linux machine (running the latest Kubuntu 15.10), getting the same issues with libudev, then libgtk-x11 etc. Is the new Electron release coming out soon? Should I keep struggling to get the current version working, or wait for the new release?

@tim-taylor
Copy link

Okay, I've just got this running. I've posted details of my solution on the discussion group at https://groups.google.com/forum/#!forum/wcb-discuss

@techninja
Copy link
Contributor

@tim-taylor Sorry again for your issues. Follow the beta release ticket here: #237, we'll be getting it out quite soon. I dev nearly exclusively on Linux, and I have to say my experiences running on Electron have been lightyears ahead of node-webkit's current problems. Unfortunately we won't have a nice installer/.deb file yet for Linux, but it's in the works.

@tim-taylor
Copy link

Sounds good! Looking forward to the new release, but in the meantime I've now started producing my first paintings :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants