多分こうだと思う
Androidの側が64bitじゃないとダメ
逆に64bitなら大丈夫らしい(64bitじゃなかったので知らない)
試行錯誤
TermuxArchインストール
TermuxArchをgitでダウンロードする。
ただcloneするだけならTermuxArch
ディレクトリができるが、ディレクトリ移動時に大文字を打つのがしんどいのでディレクトリ名をtermuxarch
にさせている。
$ git clone https://github.com/SDRausty/TermuxArch.git termuxarch/
作ったディレクトリに入って、setupファイルを実行する。
~/termuxarch $ bash setupTermuxArch.sh
なんか怒られる。
necessaryfunctions.sh: line 106: /data/data/com.termux/files/usr/bin/applets/uname: No such file or directory
TermuxArch WARNING: Generated script signal 201 near or at line number 600 by `trap`!
/data/data/com.termux/files/usr/bin/applets/
にuname
が無いぞ、と言われている。
直下のWARNINGは恐らくそれに起因する問題。
which uname
で場所を調べてみると/data/data/com.termux/files/usr/bin/uname
とあり、確かにbin直下のappletsディレクトリには存在しない。
仕方ないのでappletsにリンクを貼る。
ハードリンクにしてしまったが、-sオプションでシンボリックリンクにしても大丈夫。
$ ln /data/data/com.termux/files/usr/bin/uname /data/data/com.termux/files/usr/bin/applets/uname
もう一度setupTermuxArch.sh
を実行すると、ちゃんと動く。
しかしまた類似エラー。
necessaryfunctions.sh: line 298: /data/data/com.termux/files/usr/bin/applets/md5sum: No such file or directory
WARNING md5sum mismatch! The download failed and was removed! ...
同じく/data/data/com.termux/files/usr/bin/applets/
に、今度はmd5sum
が無いらしい。つらい。無の心でリンクを貼る。
$ ln -s /data/data/com.termux/files/usr/bin/md5sum /data/data/com.termux/files/usr/bin/applets/md5sum
これでインストールできた。終わると以下のように訊かれる。
Cleaning up installation files: DONE
Arch Linux in Termux is installed. Configuring and updating Arch Linux. Change the worldwide CMIRROR to a CMIRROR that is geographically nearby. Choose only ONE active CMIRROR in the CMIRRORs file that you are about to edit. Would you like to use nano or vi to edit the Arch Linux configuration files? Answer nano or vi [n|V]?
ArchLinuxの設定ファイルを編集するためのエディタはnano
とvim
どっちが良いか訊かれている。
僕はvimを使うのでv
を押してEnter(そのままEnterでも良い)。
nano使いならn
を押してEnter。
ArchLinuxの設定ファイルが開く。
ここでサーバを選択しておかないと詰む。TermuxArchは初期設定でエディタが無いので、「パッケージをインストールしたいがサーバが選択されていないのでできず、サーバを選択するためにファイルを書き換えたいがエディタが無い」となる。なぜエディタを入れないのか。
保存して終了するとArchLinuxが起動する。
TermuxArchを終了するには
$ exit
以下のメッセージと共にTermuxへ戻る。
Arch Linux in Termux PRoot is installed in /data/data/com.termux/files/home/arch.
...
Use ~/arch/startarch and startarch in a BASH shell to launch Arch Linux in Termux PRoot for future sessions. ...
要するに「ArchLinuxは/data/data/com.termux/files/home/arch
ディレクトリ下にインストールされたよ。起動するにはbashコマンドでstartarch
を実行してね」である。
(setupTermuxArch.sh
を実行しようとしても、既にインストール済みなのでエラーを吐かれる。)
TermuxArchをアンインストールするには
ここに書いてある => https://github.com/sdrausty/termux-archlinux/issues/3
Termuxで以下のコマンドを打てば良い。
$ bash setupTermuxArch.sh purge
DNSサーバを設定してネット接続できるようにする
初期設定ではなんとDNSサーバが設定されていない
。ネットに繋がらなければただの箱
なのでパッケージを更新しようとしてもCould not resolve host
と怒られる。
しかもエディタが無い
。もはや何もできない。ひどすぎる。
苦肉の策としてechoコマンドで無理やり編集する。/etc/resolv.conf
にネームサーバの設定を加える。
$ echo "nameserver 8.8.8.8" >> /etc/resolv.conf
ミラーサーバを設定してパッケージ管理できるようにする
DNS問題を解決しても、初期設定のサーバではThe requested URL returned error: 404 Not Found
とか言われる。ひどい。
正確なURLはたとえばこう。
core:
http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/core/os/x86_64/
extra: http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/extra/os/x86_64/
これらを/etc/pacman.d/mirrorlist
に追記する。
エディタが使えないのでechoコマンドでゴリ押しする。こんな感じで。
$ echo "Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/core/os/x86_64/" >> /etc/pacman.d/mirrorlist
これで一応パッケージ管理を使えるようになる。
ArchLinuxにエディタなどパッケージのインストール
TermuxArchでインストールしたArchLinuxでは、パッケージ管理にそれぞれ以下のような操作が必要。起動時に表示される。
Welcome to Arch Linux in Termux!
Install a package: pacman -S package
More information: pacman -[D|F|Q|R|S|T|U]h
Search packages: pacman -Ss query
Upgrade packages: pacman -Syu
しかしこれらは64bit用。jdk8-openjdk
のようなパッケージはあるが、インストールしようとしてもpackage xxx does not have a valid architecture
と言われる。
core
やextra
に加えてmultilib
を許可すると32bit版のライブラリを使えるらしいが、そこにjdkは見つからなかった。
まとめ
64bitじゃないとダメみたい。