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 libX11.so.6 #1566

Closed
Mithgol opened this issue Feb 13, 2014 · 5 comments
Closed

missing libX11.so.6 #1566

Mithgol opened this issue Feb 13, 2014 · 5 comments

Comments

@Mithgol
Copy link
Contributor

Mithgol commented Feb 13, 2014

The purpose is to build and test node-sqlite3 for node-webkit on Travis CI (TryGhost/node-sqlite3#252).

For that purpose I download https://s3.amazonaws.com/node-webkit/v0.8.4/node-webkit-v0.8.4-linux-ia32.tar.gz and unpack it, and then run nw, but it says:

nw: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

(see that Travis CI log, line 1736).

On the same system, when I download https://s3.amazonaws.com/node-webkit/v0.8.4/node-webkit-v0.8.4-linux-x64.tar.gz and unpack it, and then run nw, it runs happily without errors.

Does it mean that 32-bit node-webkit won't run on a 64-bit Linux system, or there's still hope?

@Mithgol
Copy link
Contributor Author

Mithgol commented Feb 13, 2014

Having run ldd nw, I've got the following on my log (lines 1727—1763):

linux-gate.so.1 => (0xb77bf000)
libX11.so.6 => not found
libXrender.so.1 => not found
librt.so.1 => /lib32/librt.so.1 (0xb7798000)
libdl.so.2 => /lib32/libdl.so.2 (0xb7790000)
libgobject-2.0.so.0 => not found
libglib-2.0.so.0 => not found
libgtk-x11-2.0.so.0 => not found
libgdk-x11-2.0.so.0 => not found
libatk-1.0.so.0 => not found
libpangocairo-1.0.so.0 => not found
libgdk_pixbuf-2.0.so.0 => not found
libcairo.so.2 => not found
libpango-1.0.so.0 => not found
libfreetype.so.6 => not found
libfontconfig.so.1 => not found
libXcomposite.so.1 => not found
libasound.so.2 => not found
libXdamage.so.1 => not found
libXext.so.6 => not found
libXfixes.so.3 => not found
libnss3.so => not found
libnssutil3.so => not found
libsmime3.so => not found
libplc4.so => not found
libnspr4.so => not found
libgconf-2.so.4 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xb7770000)
libexpat.so.1 => not found
libdbus-1.so.3 => not found
libudev.so.0 => not found
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xb7688000)
libm.so.6 => /lib32/libm.so.6 (0xb7658000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xb7638000)
libc.so.6 => /lib32/libc.so.6 (0xb7490000)
/lib/ld-linux.so.2 (0xb77c0000)

What's the next step?

@Mithgol
Copy link
Contributor Author

Mithgol commented Feb 13, 2014

For reference, here's ldd nw results for 64-bit nw on the same system (a newer Travis CI log, lines 1264—1321):

linux-vdso.so.1 => (0x00007fff81c00000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f8c10c78000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f8c10a68000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8c10860000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8c10658000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f8c10408000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f8c10110000)
libgtk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (0x00007f8c0fad0000)
libgdk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 (0x00007f8c0f818000)
libatk-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007f8c0f5f0000)
libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f8c0f3e0000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f8c0f1c0000)
libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f8c0ef00000)
libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f8c0ecb0000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f8c0ea10000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f8c0e7d8000)
libXcomposite.so.1 => /usr/lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007f8c0e5d0000)
libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f8c0e2e0000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f8c0e0d8000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f8c0dec0000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f8c0dcb8000)
libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so (0x00007f8c0d9a8000)
libnssutil3.so => /usr/lib/x86_64-linux-gnu/libnssutil3.so (0x00007f8c0d780000)
libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so (0x00007f8c0d558000)
libplc4.so => /usr/lib/x86_64-linux-gnu/libplc4.so (0x00007f8c0d350000)
libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so (0x00007f8c0d110000)
libgconf-2.so.4 => /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 (0x00007f8c0cee0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8c0ccc0000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f8c0ca90000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f8c0c848000)
libudev.so.0 => /lib/x86_64-linux-gnu/libudev.so.0 (0x00007f8c0c638000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8c0c338000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8c0c038000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8c0be20000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8c0ba60000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f8c0b840000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8c10fc0000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f8c0b638000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f8c0b3f8000)
libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f8c0b0a8000)
libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f8c0ae78000)
libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f8c0ac70000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f8c0aa60000)
libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f8c0a858000)
libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f8c0a648000)
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f8c0a440000)
libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f8c0a1a8000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f8c09f80000)
libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f8c09d78000)
libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f8c09b68000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8c09950000)
libplds4.so => /usr/lib/x86_64-linux-gnu/libplds4.so (0x00007f8c09748000)
libdbus-glib-1.so.2 => /usr/lib/x86_64-linux-gnu/libdbus-glib-1.so.2 (0x00007f8c09520000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f8c09318000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f8c09110000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f8c08ef0000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f8c08cd0000)

@Mithgol
Copy link
Contributor Author

Mithgol commented Feb 13, 2014

I have used “Search the contents of packages” at http://packages.ubuntu.com/ and discovered (through a trial-and-error process) the following commands which, if run before node-webkit, make it possible to run 32bit node-webkit on 64bit Travis CI Linux:

sudo apt-get -y install libx11-6:i386
sudo apt-get -y install libglib2.0-0:i386
sudo apt-get -y install libgtk2.0-0:i386
sudo apt-get -y install libatk1.0-0:i386
sudo apt-get -y install libgdk-pixbuf2.0-0:i386
sudo apt-get -y install libcairo2:i386
sudo apt-get -y install libfreetype6:i386
sudo apt-get -y install libfontconfig1:i386
sudo apt-get -y install libxcomposite1:i386
sudo apt-get -y install libasound2:i386
sudo apt-get -y install libxdamage1:i386
sudo apt-get -y install libxext6:i386
sudo apt-get -y install libxfixes3:i386
sudo apt-get -y install libnss3:i386
sudo apt-get -y install libnspr4:i386
sudo apt-get -y install libgconf-2-4:i386
sudo apt-get -y install libexpat1:i386
sudo apt-get -y install libdbus-1-3:i386
sudo apt-get -y install libudev0:i386

Here's an example of a Travis CI job that could run node-webkit 32bit successfully:

https://travis-ci.org/mapbox/node-sqlite3/builds/18827549

@katanacrimson
Copy link

@Mithgol pretty sure you can combine that all onto one line. apt-get install [packages, space delimited] should work

@Mithgol
Copy link
Contributor Author

Mithgol commented Feb 14, 2014

Yes.

But if Travis CI configuration changes (providing a different set of available packages) then one line would be harder to debug (it would stop the whole installation on the first unknown package it encountered).

Having several lines means you may identify all lines that were successful and all lines that failed, even if failures are multiple. For example, in that log I could identify two missing packages at once (line 2106, line 2132) and remove them (TryGhost/node-sqlite3@9c555c3). If I were to remove them one-by-one, I'd have to spend at least ten more minutes between errors (as you may see in that log's header, Travis job's duration was 9 minutes 9 seconds).

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

No branches or pull requests

2 participants