Search code examples
dartcentos6.5

Dart on CentOS 6.5


I'm trying to get dart up and running on a CentOS 6.5 machine. The furthest I got so far was getting Dart Editor 64 bit up and running. When clicking run in Dartium, I get the following error: "Could not start pub serve or connect to pub"

When running Dart from command line, I can see the following error in the command line:

!ENTRY com.google.dart.tools.core 4 0 2014-12-12 12:22:51.067 !MESSAGE Pub list failed, /home/grim/Apps/dart/dart-sdk/bin/dart: /lib64/libc.so.6: version GLIBC_2.15' not found (required by /home/grim/Apps/dart/dart-sdk/bin/dart) /home/grim/Apps/dart/dart-sdk/bin/dart: /lib64/libc.so.6: version GLIBC_2.14' not found (required by /home/grim/Apps/dart/dart-sdk/bin/dart)

Doing a ldd -v /bin/sh I can see that I'm running version 2.3 which is newer than 2.14:

libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003d3c600000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2943db3000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2943a1f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2943802000)
/lib64/ld-linux-x86-64.so.2 (0x0000003134e00000)

Version information:
/bin/sh:
        libdl.so.2 (GLIBC_2.2.5) => /lib64/libdl.so.2
        libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.11) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.3.4) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
/usr/lib64/libesets_pac.so:
        libdl.so.2 (GLIBC_2.2.5) => /lib64/libdl.so.2
        ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
        libpthread.so.0 (GLIBC_2.2.5) => /lib64/libpthread.so.0
        libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.3.2) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.3.3) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
/lib64/libtinfo.so.5:
        libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.3.4) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
/lib64/libdl.so.2:
        ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
        libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
/lib64/libc.so.6:
        ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
        ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
/lib64/libpthread.so.0:
        ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
        ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2
        ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
        libc.so.6 (GLIBC_2.3.2) => /lib64/libc.so.6
        libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
        libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

Do I need to downgrade GLIBC (I'm guessing not recommended?) or would a simlink to the newer version be sufficient to fix it?

Update: Looking at the simlink, I can see I'm actually on 2.12:

lrwxrwxrwx 1 root root 12 Dec  9 11:03 /lib64/libc.so.6 -> libc-2.12.so

Solution

  • There is an open issue for this (not CentOS specific) https://code.google.com/p/dart/issues/detail?id=11880 The discussion contains some workarounds.

    https://github.com/sestegra/patch-dartsdk-linux contains a patch for the source.

    https://askubuntu.com/questions/161284 provides some generic background info.
    See also
    - How to upgrade glibc from version 2.13 to 2.15 on Debian? (the workaround I used on Debian)
    - http://japhr.blogspot.co.at/2014/09/dart-content-shell-on-debian.html