beaker-browser-0.7.10-x86_64.AppImage doesn't work on Debian Jessie

Created on 22 Dec 2017  路  26Comments  路  Source: beakerbrowser/beaker

https://packages.debian.org/jessie/libstdc++6 is the "culprit", it's 4.9.2 in jessie (oldstable), but 6.3.0 in stretch (debian stable).

$ ./beaker-browser-0.7.10-x86_64.AppImage 
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.VjB6nh)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:598:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:187:18)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tmp/.mount_beakerYG4DAa/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/tmp/.mount_beakerYG4DAa/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)
bug linux

All 26 comments

Possible clues: https://github.com/mapnik/node-mapnik/issues/710#issuecomment-296837789

Yeah, I might just suggest you update Debian. Appreciate that you filed this though!

I have same issue on CentOS Linux release 7.4.1708

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

Probably no easy way to Fix it :

https://www.centos.org/forums/viewtopic.php?t=64860&p=272794

https://rpmfind.net/linux/rpm2html/search.php?query=libstdc%2B%2B.so.6%28GLIBCXX_3.4.21%29%2864bit%29&submit=Search+...&system=&arch=

Yeah, if you're getting that error, the simplest solution is to build from source.

Thanks a lot !
It worked like a charm.
Amazing project.

Thanks! 馃槃

FYI, Debian 8.10 still has this issue :-) .

Will try building from source...

Hmm! Noted

@elimisteve, Debian 8 (Jessie, oldstable) isn't supported by the current AppImage, but Debian 9 (Stretch, stable) is.

@pfrazee I'm getting almost identical issue, on Mint (Ubuntu-fork)
-- BUT I have some (potential) good news!

After doing some research, it seems this is a common issue when compiling on and for very different *nix platforms/environments.
Others' coding projects ALSO get error -- not when compiling, but when running executable AppImage.

I've found a clear culprit(s)...... incl reports of similar issues (on other GitHub projects)...
... as well as potential workarounds or solutions.

Similar end-user bug-reports (from other projects -- please read to understand the validity of this issue):
[1] https://github.com/typora/typora-issues/issues/504

Clear explanations of what's causing these symptoms -- and possible work-arounds
[2] https://stackoverflow.com/questions/36816570/glibcxx-3-4-21-not-defined-in-file-libstdc-so-6-with-link-time-reference
[3] https://github.com/conan-io/conan/issues/1684


For completeness, here are full details at my end:
Either one of two errors...
  • I got the first error /before/ doing a distro-upgrade;
    1st error (before upgrade):
    > A JavaScript error occurred in the main process
    > Uncaught Exception:
    > Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium....

.

  • then, a second _changed, different error_ -- /after/ doing a full up-to-date software/system upgrade (the first error vanished)
    2nd error (first above disappears, after upgrade):

GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference


further details of errors, and walkthrough:

I'm currently as up-to-date as can be!
What happened:
First -- on Mint 17.2, before distro & other upgrades -- was getting this error:

$ ./beaker-browser-0.8.0-prerelease.7-x86_64.AppImage --help

installed: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174 image: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174
_A JavaScript error occurred in the main process_
_Uncaught Exception:_
_Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.vEeo0S)_
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
at Object.Module._extensions..node (module.js:671:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at Object. (/tmp/.mount_beakeraMS36U/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
at Object. (/tmp/.mount_beakeraMS36U/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)


#

But now -- AFTER the distro 17.2 -> 17.3... and other software upgrades...
... here is my current system:

$ uname -a
Linux freekbox 4.4.0-135-generic #161~14.04.1-Ubuntu SMP Tue Aug 28 11:17:49 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$
$ cat /etc/*-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.3
DISTRIB_CODENAME=rosa
DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"

... and now the error has changed:

$ ./beaker-browser-0.8.0-prerelease.7-x86_64.AppImage --help
installed: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174 image: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174
Logfile: /home/joseph/.config/Beaker Browser/debug.log

/tmp/.mount_beakerlCIsXO/app/beaker-browser --help: relocation error: /tmp/.org.chromium.Chromium.Jza1Ay: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference


Note that in both of the above cases, the errors are basically saying,
"We're looking within your existing libstdc++.so.6 ... to try to find glibcxx_3.4.21 ... but we're not finding it!"

...
So.... (per advice from another websearch forum result)...
... I ran this, to check what I /do/ have!

# strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep -i glibcxx
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGTH

As you can see... It should totally be recognizing the GLIBCXX versions I do have!
Both in the first error (before upgrade, when it says 'not found')
AND in the second error (after upgrade, when it says 'symbol not defined...').

Both of the strings libstdc++.so.6 command outputs -- prior and post upgrade -- gave the exact same GLIBCXX_* info.
Yet, after a full systems upgrade, the error changed.
...
There's a clue -- after the upgrade, it says 'there are /symbols/ which are not defined //with a link time reference.//'
.

The best two or three answers seem to be here:
PLEASE READ THIS CAREFULLY! Many relevant nuggets here:
[2] https://stackoverflow.com/questions/36816570/glibcxx-3-4-21-not-defined-in-file-libstdc-so-6-with-link-time-reference
(read all of the comments on this Q&A!)
Other highly relevant(?) useful sources:
[3] https://github.com/conan-io/conan/issues/1684
and this last one really gets into details...
[4] https://stackoverflow.com/questions/34571583/understanding-gcc-5s-glibcxx-use-cxx11-abi-or-the-new-abi

... Without
a) refining a little code in the build instructions,
or
b) recompiling from scratch in an environment like those of us having issues, I don't know of any way for me to fix this.

Nevertheless...
... I'll see whether I can successfully compile & run from source -- just to see whether it resolves the issue for me or not.
.
I hope this comment is helpful!
P.S.
I am absolutely on the latest version of Linux Mint available.
There's no more upgrading to be done.

P.P.S. I just used binaries .8 and .9 -- still same exact issue; not fix.
So this hasn't been resolved in newer versions.
~
$ ./beaker-browser-0.8.0-prerelease.9-x86_64.AppImage
installed: X-AppImage-BuildId=51aa4c70-b1f1-11a8-049c-adf2b6174326 image: X-AppImage-BuildId=e12df640-b3ad-11a8-2561-43b21886f10d
(node:7241) Warning: N-API is an experimental feature and could change at any time.
Logfile: /home/joseph/.config/Beaker Browser/debug.log
/tmp/.mount_beakern7thQR/app/beaker-browser: relocation error: /tmp/.org.chromium.Chromium.4kBHBX: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
~
(BTW... the debug.log is always empty, 0-byte file.)

.
.
Can we change the title of this bug, to e.g.:
_"beaker-browser AppImage won't work -- errors referencing GLIBCXX_3.4.21"_
?

p.p.p.s.
<3
all the work y'all are doing is amazing.
thank you.
<3

Got a similar bug with Debian 8:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.0WiPR5)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
    at Object.Module._extensions..node (module.js:671:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
    at Function.Module._load (module.js:496:3)
    at Module.require (module.js:586:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tmp/.mount_beakerGA0iI4/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/tmp/.mount_beakerGA0iI4/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)

Hi.. Only know to ask this because it's been mentioned a few times in my own *nix'ing lately.. Does $PATH play any part in this where it might not be (properly) defined or something?

Or maybe there's something about relative linking or something where it's not pointing in the right direction maybe? Like maybe it's pointing up too high or not pointing up high enough into the parent directory tree while seeking what's alleged to be missing?

It's that part about "can't find" AND yet at least that one instance reports it IS there on that computer that brought those to mind. :smile:

I just updated my linux build machine to Ubuntu 16.x, which is one of the suggestions in the linked stackoverflow.

I created a new build, would somebody with this issue try it for me? https://drive.google.com/file/d/1jqZyPRki8nAfsZdH5HHUXVteM7PCeq7o/view?usp=sharing

I'm still running Debian Jessie but thought I'd give it a try. That what happens:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.dtorfm)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20)
    at Object.Module._extensions..node (module.js:671:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
    at Function.Module._load (module.js:496:3)
    at Module.require (module.js:586:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tmp/.mount_beakerbWCJhv/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/tmp/.mount_beakerbWCJhv/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)

Yeah this new build should only help recent versions.

Also, I don't think supporting Jessie matters at this point. I should definately upgrade my OS :-)

I will try it with Debian 9 too and see if that works better.

I couldn't run Beaker >= 0.8.0 AppImage on NixOS. It looks like a missing lib in the package:

installed: X-AppImage-BuildId=1d7f2c70-e9bb-11a8-3317-8344e09c9cf4 image: X-AppImage-BuildId=1d7f2c70-e9bb-11a8-3317-8344e09c9cf4
/home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/beaker-browser: error while loading shared libraries: libatk-bridge-2.0.so.0: cannot open shared object file: No such file or directory

0.8.0-prerelease.9 works fine

@kamilchm while I think, this should be a separate ticket, I can confirm the same issue on NixOS for both the 0.8.0 and the 0.8.1 appimage. When I have the time, I will crosscheck on NixOS IRC if this could be a problem with appimage-run.

@mkroehnert it looks like appimage-run issue. I've fixed it with https://github.com/NixOS/nixpkgs/pull/51060

@TheAssassin pointed me to the list of libraries excluded from AppImages https://github.com/AppImage/AppImages/blob/master/excludelist
It looks like there's no libatk-bridge so it could be a potential error in the Beaker Browser packaging.

@kamilchm can you check with lddtree which library pulls it in? It doesn't seem like a direct dependency at a first glance, so possibly one of the libraries within NixOS is built differently (i.e., w/o that dependency), leading to this bug.

I don't know how to interpret this:

$ lddtree /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/beaker-browser
beaker-browser => /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/beaker-browser (interpreter => /lib64/ld-linux-x86-64.so.2)
    libnode.so => /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/libnode.so
    libpthread.so.0 => not found
    libgtk-3.so.0 => not found
    libgdk-3.so.0 => not found
    libpangocairo-1.0.so.0 => not found
    libpango-1.0.so.0 => not found
    libatk-1.0.so.0 => not found
    libcairo.so.2 => not found
    libgdk_pixbuf-2.0.so.0 => not found
    libgio-2.0.so.0 => not found
    libgobject-2.0.so.0 => not found
    libatk-bridge-2.0.so.0 => not found
    libdbus-1.so.3 => not found
    libX11-xcb.so.1 => not found
    libxcb.so.1 => not found
    libXi.so.6 => not found
    libXcursor.so.1 => not found
    libXdamage.so.1 => not found
    libXrandr.so.2 => not found
    libXcomposite.so.1 => not found
    libXext.so.6 => not found
    libXfixes.so.3 => not found
    libXrender.so.1 => not found
    libX11.so.6 => not found
    libXtst.so.6 => not found
    libXss.so.1 => not found
    libglib-2.0.so.0 => not found
    libnss3.so => not found
    libnssutil3.so => not found
    libsmime3.so => not found
    libnspr4.so => not found
    libffmpeg.so => /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/libffmpeg.so
    libasound.so.2 => not found
    libcups.so.2 => not found
    librt.so.1 => not found
    libdl.so.2 => not found
    libfontconfig.so.1 => not found
    libexpat.so.1 => not found
    libm.so.6 => not found
    libgcc_s.so.1 => not found
    libc.so.6 => not found
    ld-linux-x86-64.so.2 => not found

Not sure what this means either, it looks strange.

Does appimage-run _really_ extract all AppImages? What a crappy design -- that degrades AppImages to self-extracting-archives!

Checked locally, this output seems right (the libs _are_ direct dependendencies, we can just not see their dependencies because of the not found issues).

An analysis of this issue on NixOS doesn't make sense, as they have some weird organization of their OS files.

Update at my end:
Using a newer version of Mint (18.3, instead of 17.3):

  • the binary runs fine(!).
  • I've /not/ tried building from source again (presumably that would work as well).

So, yes:
Older versions (even by a couple years) of distros.... ain't gonna cut it w this browser (for now).

Was this page helpful?
0 / 5 - 0 ratings