我正在尝试在 RHEL6 机器上运行最新版本的 Android SDK。我收到错误消息,指出我需要 GLIBC 2.14。所以我在/opt/glibc-2.14中安装了GLIBC 2.14。
我已经设置了LD_LIBRARY_PATH=/opt/glibc-2.14/lib
.我现在可以运行 Android SDK 工具,而不会收到未安装 GLIBC 2.14 的提示。但是当我尝试运行 Gradle 构建来构建 Android APK 时,它只是挂起。
如果我删除LD_LIBRARY_PATH
Gradle 作业运行并失败,则表明未安装 GLIBC 2.14。java --version
当LD_LIBRARY_PATH
设置为 GLIBC 2.14时,我在运行诸如 之类的命令时也遇到相同的悬而未决的问题。
有办法解决这个问题吗?
答案1
我们通过 jenkins build-pipeline 使用 gradle 时遇到同样的问题。
我在/opt/glibc-2.14下手动编译了glibc 2.14。如果我设置 LD_LIBRARY_PATH,android sdk 工作正常,但调用 gradle 构建失败,并显示“futex”错误消息(在 strace 上看到)。
即使使用 stacktrace 选项运行 gradle 也没有输出。
我让 gradle 运行的唯一方法是从 redsleeve.org 安装以下 RPM:
wget http://ftp.redsleeve.org/pub/steam/glibc-2.15-60.el6.x86_64.rpm
wget http://ftp.redsleeve.org/pub/steam/glibc-common-2.15-60.el6.x86_64.rpm
wget http://ftp.redsleeve.org/pub/steam/glibc-devel-2.15-60.el6.x86_64.rpm
wget http://ftp.redsleeve.org/pub/steam/glibc-headers-2.15-60.el6.x86_64.rpm
rpm -Uvh glibc-2.15-60.el6.x86_64.rpm glibc-common-2.15-60.el6.x86_64.rpm glibc-devel-2.15-60.el6.x86_64.rpm glibc-headers-2.15-60.el6.x86_64.rpm
安装更新的 glibc-packages 后,gradle 构建在 CentOS 6.9 (x64) 机器上运行良好。
这对于测试环境来说很有用,但在系统更新的情况下,这可能会破坏您的整个更新过程。我正在尝试使用手动编译的版本找到更好的方法。
〜干杯