Debian 7.6でApp Inventor 2を動かすメモ

# Debian 7.6でApp Inventor 2を動かすメモ

## 結論

- `appinventor2には`バージョン`2.15`以上の`libc6`を使う`python2.7`が必要だが`wheezy`では`2.13-*`だ。
    - `jessie (testing)`の`python2.7`なら`libc6`のバージョンは`2.19`だ。
      - `jessie (testing)`のパッケージをちょい借りしてインストールしたら動いた。

## 手順

公式のインストールマニュアルは http://appinventor.mit.edu/explore/ai2/linux.html にある。

```bash:Debianのバージョン
$ cat /etc/debian_version 
7.6
```

```bash:ダウンロード
$ wget http://dl.google.com/dl/appinventor/installers/linux/appinventor2-setup_1.1_all.deb
```

```bash:インストール
dpkg --install appinventor2-setup_1.1_all.deb 
```

```bash:aiStarterを起動
$ /usr/google/appinventor/commands-for-Appinventor/aiStarter
Error loading Python lib '/tmp/_MEI8NLJBE/libpython2.7.so.1.0': /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /tmp/_MEI8NLJBE/libpython2.7.so.1.0)
```

`libpython2.7`と`GLIBC_2.15`まわりでエラーがでた。インストールされているパッケージを調べる。

```bash
$ aptitude show libpython2.7
Package: libpython2.7                    
State: installed
Automatically installed: yes
Version: 2.7.3-6+deb7u2
Priority: optional
Section: libs
Maintainer: Matthias Klose <doko@debian.org>
Architecture: i386
Uncompressed Size: 2926 k
Depends: python2.7 (= 2.7.3-6+deb7u2), libc6 (>= 2.7), libgcc1 (>= 1:4.1.1), zlib1g (>= 1:1.2.0)
Replaces: python2.7 (< 2.6)
Description: Shared Python runtime library (version 2.7)
 Version 2.7 of the high-level, interactive object oriented language, includes an extensive class library
 with lots of goodies for network programming, system administration, sounds and graphics. 
 
 This package contains the shared runtime library, normally not needed for programs using the statically
 linked interpreter.
```

`libc6`を使っているようだ。`libc6`のバージョンを調べる。

```bash
$ aptitude show libc6
Package: libc6                           
State: installed
Automatically installed: no
Multi-Arch: same
Version: 2.13-38+deb7u4
Priority: required
Section: libs
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Architecture: i386
Uncompressed Size: 8696 k
Depends: libc-bin (= 2.13-38+deb7u4), libgcc1
Recommends: libc6-i686
Suggests: glibc-doc, debconf | debconf-2.0, locales
Conflicts: prelink (<= 0.0.20090311-1), tzdata (< 2007k-1), tzdata-etch
Breaks: locales (< 2.13), locales-all (< 2.13), nscd (< 2.13)
Replaces: libc6-i386
Provides: glibc-2.13-1
Description: Embedded GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs on the system. This package includes
 shared versions of the standard C library and the standard math library, as well as many others.
Homepage: http://www.eglibc.org
```

`2.13-38+deb7u4`らしい。先のエラーでは`GLIBC_2.15`とあったので、バージョンが古い。バージョンを`2.15`かそれ以上にしてやると良さそう。

jessie(testing)ではバージョンが`2.19-13`らしい。 https://packages.debian.org/jessie/libc6

ついでにjessie(testing)のpython2.7の依存関係を調べてみる。 https://packages.debian.org/jessie/python2.7

以下一部抜粋。なるほど`libc6 (>= 2.15)`らしい。

- python2.7 (2.7.8-11)
    -  libpython2.7-stdlib (= 2.7.8-11)
        - libc6 (>= 2.15)

ということで、jessie (testing)のpython2.7をインストールしよう。

```/etc/apt/sources.listに以下を追加
deb http://ftp.jp.debian.org/debian testing main contrib non-free
deb-src http://ftp.jp.debian.org/debian testing main contrib non-free 
```

```bash:アップデート
$ aptitude update
```

```bash:インストール
$ aptitude install python2.7/testing
```

```bash:バージョンの確認
$ aptitude versions python2.7
Package idle-python2.7:                   
p   2.7.3-6+deb7u2                     stable         500
p   2.7.8-11                           testing        500
```

完。