飞镖扔在linux上的错误:GLIBC_2.14 GLIBC_2.15找不到

我在Google Compute Engine上运行Debian 7.2(尽pipe我怀疑Centos,Red Hat和Amazon Linux AMI都有相同的问题)。 在从这个页面下载64位Linux版本的Dart SDK之后,我运行的任何dart命令(例如dart --version )将会输出以下错误:

 ./editor/dart/dart-sdk/bin/dart: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by ./editor/dart/dart-sdk/bin/dart) ./editor/dart/dart-sdk/bin/dart: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./editor/dart/dart-sdk/bin/dart) 

Solutions Collecting From Web of "飞镖扔在linux上的错误:GLIBC_2.14 GLIBC_2.15找不到"

更新:2014年10月:Dart现在可以通过apt-get安装在Debian上:

从飞镖网站上总结的说明:

 # Enable HTTPS for apt. sudo apt-get update sudo apt-get install apt-transport-https # Get the Google Linux package signing key. sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' # Set up the location of the stable repository. sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list' sudo apt-get update # Finally, install the dart package! sudo apt-get install dart 

自己构建二进制文件的说明:

这个问题似乎是由Google针对GNIBC(> = 2.15)的边缘版本进行编译而引起的,这个版本在Ubuntu 12(Precise Pangolin)以外的Linux上通常不受支持。

首先, 不要尝试下载GLIBC或EGLIBC的实验版本 。 我能够使用这种方法使飞镖工作,但是我的机器的其余部分分崩离析。 更新GLIBC是一个疯狂的秘诀。

相反,最好的解决方案是从源头上构建飞镖。 尽管二进制的GLIBC版本要求,源本身没有这样的要求。 有一些wiki页面可以在debian , centos / fedora / red hat / amazon , ubuntu和其他linux版本上从源代码安装。

以下是这些步骤的概述,我可以在Debian 7.2上确认这些步骤。 除了使用yum而不是apt-get之外,centos / fedora / redhat步骤看起来是一样的。

  1. 安装Subversion和所需的构建工具:

     sudo apt-get -y update sudo apt-get -y install subversion sudo apt-get -y install make sudo apt-get -y install g++ sudo apt-get -y install openjdk-6-jdk 
  2. 检查谷歌的仓库工具,并添加gclient到你的路径

     svn co http://src.chromium.org/svn/trunk/tools/depot_tools export PATH=$PATH:`pwd`/depot_tools 
  3. 在所需的分支下载Dart源代码。

    • 将1.2替换为您希望构建的任何分支。 您可以在这里看到可用版本的列表。 一般来说,最新编号的分支是最好的。

       gclient config http://dart.googlecode.com/svn/branches/1.2/deps/all.deps gclient sync gclient runhooks 
  4. 进入新的dart目录

     cd dart 
  5. 只做下面的A或B:

    • 注意:对于32位,请使用--arch=ia32标志。

    • A.构建包括pub,dart2js,dart等在内的整个Dart SDK:

       tools/build.py --mode=release --arch=x64 create_sdk 
    • B.建立镖可执行文件:

       tools/build.py --mode=release --arch=x64 runtime 
  6. dart可执行文件现在位于/ ReleaseX64 / dart或out / ReleaseX64 / dart-sdk / bin / dart中,您可以通过打印版本来进行冒烟测试

     dart/out/ReleaseX64/dart --version 

    输出应该是“ Dart VM version: 1.2.0 (Mon Mar 3 03:06:20 2014) on "linux_x64"

如何帮助解决这个问题

这比需要的更痛苦,因为二进制显然不需要使用GLIBC> = 2.15来构建。 如果你想提请注意这个问题,请出现这个镖bug。