飞镖在linux上抛出错误:未找到GLIBC_2.14 GLIBC_2.15

时间:2014-03-03 20:35:05

标签: linux dart

我在Google Compute Engine上运行Debian 7.2(虽然我怀疑Centos,Red Hat和Amazon Linux AMI都有同样的问题)。从this page下载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)

1 个答案:

答案 0 :(得分:6)

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

the dart website汇总的说明:

# 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针对边缘版本的GLIBC(> = 2.15)进行编译引起的,而在Ubuntu 12(Precise Pangolin)之外的Linux上通常不支持这种版本。

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

相反,最好的解决方案是从源代码构建dart。尽管二进制的GLIBC版本要求,源本身没有这样的要求。有来自debiancentos/fedora/red hat/amazonubuntuother linux versions的来源安装的Wiki页面。

以下是对这些步骤的概述,我可以在Debian 7.2上确认这些步骤。 centos / fedora / redhat步骤似乎是相同的,除非他们使用yum而不是apt-get。

  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. 查看Google的软件仓库工具并将gclient添加到您的路径中

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

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

      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。构建整个Dart SDK,包括pub,dart2js,dart等:

      tools/build.py --mode=release --arch=x64 create_sdk
      
    • B。只构建dart可执行文件:

      tools/build.py --mode=release --arch=x64 runtime
      
  6. dart可执行文件现在处于out / 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"

  7. 如何帮助解决此问题

    这比它需要的更痛苦,因为二进制显然不需要使用GLIBC> = 2.15来构建。如果您想提请注意此问题,请标注this dart bug.