CentOSにAndroidのCI環境を作ろうとして失敗した

# 要件
## ハードウェア要件
- CentOS-6.4
- CPU: 6core, 64bit
- MEM: 12GB
- HDD: 80GB

## ソフトウェア要件
- Jenkins
- Androidの各バージョンのエミュレータを複数搭載


# 失敗した理由
- エミュレータが64bitCPUだとdevice offlineの状態のままになる？
	- http://stackoverflow.com/questions/23699433/android-emulator-jenkins-plugin-not-working


# 諦めた理由
- CircleCIを使ったほうが早くて確実な稼働実績があったため
	- ソースコードの機密性保持は権限管理をすることである程度妥協した


# 作業手順
## android-sdk インストール
### android-sdk 設置
- ここからダウンロード (sdk only)
	- http://developer.android.com/sdk/index.html

```
$ ll /usr/local/share/downloaded/android-sdk
合計 164180
-rwxr-xr-x 1 root root 168119905  5月  8 10:55 2015 android-sdk_r24.2-linux.tgz
```

### tgz解凍
```
sudo tar -zxvf /usr/local/share/downloaded/android-sdk/android-sdk_r24.2-linux.tgz -C /usr/local/lib/
```

### android-sdk インストール
```
sudo /usr/local/lib/android-sdk-linux/tools/android update sdk -u -a -t 1,2,3,22,23,24,25,26,27,28,126,127,61,62,63,68,69,70,73,74,75,76,77,78,80,81
```

### 環境変数のセット
```
export ANDROID_HOME=/usr/local/lib/android-sdk-linux/
```

## 32bit glibc のインストール
### rpmのダウンロード
```
wget http://ftp.riken.jp/Linux/centos/6/updates/x86_64/Packages/glibc-2.12-1.149.el6_6.5.i686.rpm -P /usr/local/share/downloaded/glibc/
wget ftp://195.220.108.108/linux/opensuse/distribution/11.4/repo/oss/suse/i586/libfreebl3-3.12.9-4.3.i586.rpm -P /usr/local/share/downloaded/libfreebl3/
wget ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.4/x86_64/os/Packages/libstdc++-4.4.7-3.el6.i686.rpm -P /usr/local/share/downloaded/libstdc++/
wget ftp://ftp.okhysing.is/redhat/6.4/os/x86_64/Packages/libgcc-4.4.7-3.el6.i686.rpm -P /usr/local/share/downloaded/libgcc/
wget ftp://rpmfind.net/linux/centos/6.6/os/i386/Packages/zlib-1.2.3-29.el6.i686.rpm -P /usr/local/share/downloaded/zlib/
```

### chown
```
sudo chown root:root ¥
/usr/local/share/downloaded/glibc/glibc-2.12-1.149.el6_6.5.i686.rpm ¥
/usr/local/share/downloaded/libfreebl3/libfreebl3-3.12.9-4.3.i586.rpm ¥
/usr/local/share/downloaded/libstdc++/libstdc++-4.4.7-3.el6.i686.rpm ¥
/usr/local/share/downloaded/libgcc/libgcc-4.4.7-3.el6.i686.rpm ¥
 
/usr/local/share/downloaded/zlib/zlib-1.2.3-29.el6.i686.rpm
```

### インストール
```
sudo rpm -ivh ¥
/usr/local/share/downloaded/glibc/glibc-2.12-1.149.el6_6.5.i686.rpm ¥
/usr/local/share/downloaded/libfreebl3/libfreebl3-3.12.9-4.3.i586.rpm ¥
/usr/local/share/downloaded/libstdc++/libstdc++-4.4.7-3.el6.i686.rpm ¥
/usr/local/share/downloaded/libgcc/libgcc-4.4.7-3.el6.i686.rpm ¥
/usr/local/share/downloaded/zlib/zlib-1.2.3-29.el6.i686.rpm
```

## javaのインストール
### jdkの設置
- 以下からダウンロード
	- http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

```
$ ll /usr/local/share/downloaded/jdk/
合計 169216
-rw-r--r-- 1 root root 173271626  5月 11 11:21 2015 jdk-8u45-linux-x64.gz
```

### gz解凍
```
sudo tar -zvvf /usr/local/share/downloaded/jdk/jdk-8u45-linux-x64.gz -C /usr/local/lib/
```

### javaの優先度を変更する
```
sudo /usr/sbin/alternatives --install /usr/bin/java java /usr/local/lib/jdk1.8.0_45/bin/java 180000
```

### javaの優先度を確認する
```
$ sudo /usr/sbin/alternatives --config java
3 プログラムがあり 'java' を提供します。
  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
*+ 3           /usr/local/lib/jdk1.8.0_45/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
```

## jenkinsのインストール
### yumリポジトリ追加
```
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
```

### jenkinsインストール
```
sudo yum install jenkins
```

### サービス起動
```
sudo service jenkins start
```

### OS起動時に自動的にjenkinsが起動するように設定
```
sudo chkconfig jenkins on
```

## VirtualBoxをインストールする
### dkmsをインストール
```
sudo yum install dkms
```

###  yumリポジトリ追加
```
sudo wget http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -P /etc/yum.repos.d/
```

### VirtualBoxのインストール
```
sudo yum install VirtualBox-4.3
```

### VirtualBoxのセットアップ
```
sudo  /etc/init.d/vboxdrv setup
```

### 共有ライブラリのsymlinkを貼る
```
sudo ln -s /usr/lib64/nvidia-graphics-310.19/libGL.so.1 /usr/lib/virtualbox/libGL.so.1
sudo ln -s /usr/lib64/nvidia-graphics-310.19/libnvidia-tls.so.310.19 /usr/lib/virtualbox/libnvidia-tls.so.310.19
sudo ln -s /usr/lib64/nvidia-graphics-310.19/libnvidia-glcore.so.310.19 /usr/lib/virtualbox/libnvidia-glcore.so.310.19
```