2014-03-03 43 views
5

我在Google Compute Engine上运行Debian 7.2(尽管我怀疑Centos,Red Hat和Amazon Linux AMI都有同样的问题)。从下载this page 64位Linux版本的飞镖的SDK,任何镖命令我运行,例如,dart --version后,将输出以下错误:在Linux上掷飞镖的错误:GLIBC_2.14 GLIBC_2.15找不到

./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) 

回答

6

更新:2014年10月:现在可以安装达特在Debian上用apt-get的:

说明从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 

说明构建仓ary你自己:

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

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

相反,最好的解决方案是从源头构建飞镖。尽管二进制文件的GLIBC版本要求,但是源代码本身没有这样的要求。有从debian,centos/fedora/red hat/amazon,ubuntuother linux versions从源安装的wiki页面。

下面是这些步骤的概述,我可以确认这些步骤适用于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. 下载镖来源于所需的分支。

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

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

    cd dart 
    
  5. 只做A或B如下:

    • 注:对于32位,可使用--arch=ia32 flag i nstead。

    • A.构建整个飞镖SDK,包括酒吧,dart2js,飞镖等:

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

      tools/build.py --mode=release --arch=x64 runtime 
      
  6. dart可执行文件现在位于/ ReleaseX64/d艺术或出/ ReleaseX64 /镖-SDK /斌/镖,你可以打印版本

    dart/out/ReleaseX64/dart --version 
    

    输出应该是这样的Dart VM version: 1.2.0 (Mon Mar 3 03:06:20 2014) on "linux_x64"做冒烟测试。

如何帮助解决这个问题

这是更痛苦比它需要的是,因为二进制显然并不需要使用GLIBC> = 2.15之上。如果你想提请注意这个问题,请明星this dart bug.

+0

听起来好像有计划为Dart发布Debian软件包。请参阅此[线索](https://groups.google.com/a/dartlang.org/forum/#!msg/misc/9OvRhEOKw40/j8w13LqqOxYJ)。他们可能会将此回溯到7.2。这将是理想的解决方案。 –