Help us understand the problem. What is going on with this article?

CentOS6系にanrdoid-ndk-10eをインストール(ビルドは未検証)

More than 5 years have passed since last update.

anrdoid-ndk-10e(64bit)をCentOS6系にインストールする必要があったがその場合に色々はまったのでメモ。

あくまでインストールまでの確認。そのあと実際に利用できるかまではまだ未検証なので注意

そもそも可能ならば

後述するがandroid-ndk-r10eではglibc2.14以上が要求される。
色々面倒なことをしたくないのであれば(というか可能だったら極力)OSのglibcのバージョンが2.14より大きいものを使えば良い。

RedHat系でのglibcの脆弱性(GHOST)への対応方法

上記に記載されている様にCentOS7やAmazonLinux、新しいUbuntuであればglibcが新しいので本当はそれを使ったほうが良さそう。ビルドしたりするとインストール後も色々はまりそう。。。(あとのメンテなども大変)

やってみる

$./android-ndk-r10e-linux-x86_64.bin
./android-ndk-r10e-linux-x86_64.bin: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./android-ndk-r10e-linux-x86_64.bin)

なるほど。GLIBCのバージョンが古いのでだめだと。

GLIBCのバージョンを確認

$ /lib64/libc.so.6
GNU C Library stable release version 2.12, by Roland McGrath et al.
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-11).
Compiled on a Linux 2.6.32 system on 2015-05-27.
Available extensions:
    The C stubs add-on version 2.1.2.
    crypt add-on version 2.1 by Michael Glad and others
    GNU Libidn by Simon Josefsson
    Native POSIX Threads Library by Ulrich Drepper et al
    BIND-8.2.3-T5B
    RT using linux kernel aio
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

GLIBCで2.14以上が必要だけど実際には2.12なのでエラーだと

GLIBCをビルドしてみる

事前準備。ビルド時に必要なものをまとめてインストール。

$sudo yum groupinstall "Development Tools"

chroot 環境に glibc を突っ込むメモ

本当はやりたくないけど、しょうがないのでビルド。

$wget https://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
$tar -zxvf glibc-2.14
$cd glibc-2.14
$mkdir BUILD
$cd BUILD
$../configure --prefix=${HOME}/local/glibc
$make
$make check
$make install

確認してみる。

~/local/glibc/lib/libc.so.6
GNU C Library stable release version 2.14, by Roland McGrath et al.
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-11).
Compiled on a Linux 2.6.32 system on 2015-08-06.
Available extensions:
    crypt add-on version 2.1 by Michael Glad and others
    GNU Libidn by Simon Josefsson
    Native POSIX Threads Library by Ulrich Drepper et al
    BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

2.14として認識しているので良さそう。

ndkの再インストール

まずは環境変数を設定。

$export LD_LIBRARY_PATH=~/local/glibc/lib/

ダウンロードして、実行してみる

$wget http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin
$chmod a+x android-ndk-r10e-linux-x86_64.bin
$./android-ndk-r10e-linux-x86_64.bin
・・・
Sub items Errors: 1332

Archive Errors: 1

Sub items Errors: 1332

実行(解凍)ができるようになったけどエラーが出てしまった。。。

Error encountered installing Android NDK

同じことが起きている人がいるっぽい。
色々試行錯誤してみてもしかしてと思ってmd5sumしてみたら全然違ったので再度取得。。。

$wget http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin
$chmod a+x android-ndk-r10e-linux-x86_64.bin
$md5sum android-ndk-r10e-linux-x86_64.bin
19af543b068bdb7f27787c2bc69aba7f  android-ndk-r10e-linux-x86_64.bin
$./android-ndk-r10e-linux-x86_64.bin
・・・
Everything is Ok

よさそう。

$android-ndk-r10e/ndk-build -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

認識できた。ビルドできるかの確認はできていないが、恐らく$export LD_LIBRARY_PATH=~/local/glibc/lib/を事前に設定してからビルドしないとダメだと思われる。

参考

ちなみにCentOS5系でも同じようにやってみたが、何かしらが足りずglibcのビルドに失敗。

$../configure --prefix=${HOME}/local/glibc
・・・
checking for symlinks in /home/vagrant/local/glibc/include... ok
running configure fragment for nptl/sysdeps/x86_64
checking for .cfi_personality and .cfi_lsda pseudo-ops... no
configure: error: assembler too old, .cfi_personality support missing

同じ問題になっている人もいた

[SOLVED] Problem with the configuration step of the Glibc 2.11

上記も最終的にOSのバージョンあげてるっぽいし、やはり可能ならば最新のOS使ったほうが手っ取り早いし、余計なトラブルとか発生しなさそうだし、その方が絶対いい。

toshihirock
こちらは個人の意見で会社とは関係ありません。お約束です。
http://toshihirock.blogspot.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away