Android: Termuxのインストール

AndroidのTermuxのインストールについて説明します。
TermuxはAndroidLinuxエミュレータです。Androidスマホタブレット上に、サーバやプログラミング開発環境を構築することができます。

以降の操作はAndroid上で行います。
Fire HD 10 Plus(第11世代)でも同様の方法でインストールできています。

Android環境

  • 機種:OPPO A5 2020 (CPH1943)
  • OS:ColorOS V7.1 (Android10)
  • プロセッサ:Qualcomm(R) Snapdragon(TM) 665
  • RAM:4GB

Termuxのインストール手順

1. F-Droidのインストール

Google Playで公開されているTermuxは、更新されていない古いバージョンです。そのためF-Droidで公開されている最新版をインストールします。
下記記事を参考にしてください。
ikuyani.hateblo.jp

2. Termuxのインストール

2-1. F-Droidで「termux」と入力し、表示された一覧から「Termux Terminul」を選択します。

2-2. [インストール]を押します。

2-3. ダウンロードが始まるので完了するまで待ちます。

2-4. [設定]を押します。

2-5. アプリの許可をアクティブに変更します。

2-6. [インストール]を押します。

2-7. インストールが始まるので完了するまで待ちます。

2-8. [開く]を押します。

3. Termuxの起動

インストールしたTermuxを起動します。

こんな感じでLinuxのターミナルのような画面が起動します。

Termuxの初期設定

4. ソフトウェアの最新化

Termuxのソフトウェアの管理(追加・更新・削除)は、pkgコマンドを使うと容易に行なえます。Termuxのインストール後は、下記コマンドを実行し、プリインストールされているソフトウェアの最新化をします。

~ $ pkg update
~ $ pkg upgrade -y

更新中に設定ファイルの更新の有無など聞かれますが、そのままEnterを押しデフォルトのまま進めます。

なおpkgコマンドの実行でエラーとなる場合、ソフトウェアを配布するリポジトリの情報が古く変更されている場合があります。下記コマンドを実行するとリポジトリの変更ができます。いろいろと試してみてください。
※変更せずそのまま「OK」で進めても最新化してくれます。

~ $ termux-change-repo



5. Androidのファイルへのアクセス

termux-setup-storageコマンドを実行することで、Androidのファイルへアクセスすることができます。

~ $ pwd
/data/data/com.termux/files/home
~ $ ls
~ $ termux-setup-storage
~ $ ls
storage
~ $ ls storage/shared/
.dev           Android/       Music/
.ext4          ColorOS/       Notifications/
.mcs/          DCIM/          Pictures/
.sstmp         Download/      Podcasts/
Alarms/        Movies/        Ringtones/

初回はファイルへのアクセス権限の設定が必要です。

6. ターミナル操作で必要となるソフトのインストール

ターミナル上での操作をするため、Vimwgetをインストールしておいたほうが便利です。

~ $ pkg install -y vim wget

7. SSHで接続する

スマホでターミナル操作をするのは困難なので、SSHで接続できるようにします。

~ $ pkg install -y openssh

接続アカウントの確認(whoamiコマンド)と、パスワードの設定(passwdコマンド)をします。

~ $ whoami
u0_a123 ← アカウント名
~ $ passwd
New password: 新規パスワード
Retype new password: 新規パスワード(再入力)
New password was successfully set.

SSHサーバはsshdコマンドで起動します。

~ $ sshd

デフォルトでポート番号は8022に指定されています。

スマホIPアドレスifconfigコマンドなどで確認できます。通常は接続先Androidとクライアントを同一LAN内やテザリングに配置し、ローカルIPアドレス(inet xx.xx.xx.xx)で接続します。
下記の場合、192.168.1.11となります。

~ $ ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1460
        inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 3000  (UNSPEC)

Windowsコマンドプロンプトからの接続例

~ $ ssh -p 8022 u0_a123@192.168.1.11
The authenticity of host '[192.168.1.11]:8022 ([192.168.1.11]:8022)' can't be established.
ECDSA key fingerprint is SHA256:Rrnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes を入力
Warning: Permanently added '[192.168.1.11]:8022' (ECDSA) to the list of known hosts.
u0_a123@192.168.1.11's password: パスワード を入力

Termuxの初期化

Termuxの初期化は、Termuxのストレージ使用状況画面でデータの消去をします。