15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Termux】AndroidにVSCode ServerとDenoを導入する

Last updated at Posted at 2022-09-26

もうソフトウェア開発はスマートフォンで完結する時代が近くまで来ているかも知れません。

Termux

ここでTermuxのおさらいです。

Androidは Linux Kernel を基礎とした Android Kernel で動いているため、基本的にはLinuxバイナリがそのまま動きます。

TermuxはLinuxターミナルのようにAndroidをコマンドラインターミナルで操作するための端末アプリです。

Root権限は必要ありません。

検証環境

私が正常動作を確認した端末です。
割と最近の端末でも問題なく動作します。

端末名 型番 OS Root権限
GALAXY S 9+ SM-G9650 Android 8
GALAXY S 22 SCG13 Android 13
AQUOS Sense 8 SH-54D Android 14

インストール

まずはTermuxをインストールします。

リポジトリのリリースから最新版のAPKをダウンロードして、ファイルエクスプローラーなどからインストールしましょう。

インストールが完了しアプリを起動したら、とりあえず最低限の作業環境を整えておきます。

# ストレージへのアクセス許可
termux-setup-storage

# パッケージを更新
apt update -y && apt upgrade -y && apt autoclean -y && apt autoremove -y

# 基礎ツールをインストール
apt install -y busybox curl openssh proot-distro termux-services

# Termux起動時にsshdを自動起動
sv-enable sshd

# SSHでログインする際のパスワードを登録
passwd

# Ubuntuをインストール
proot-distro install ubuntu

これで作業が捗るようになりました。

今回導入するVSCode ServerやDenoは、そのままTermuxからは実行できません。
必ず先ほどインストールしたUbuntuから実行する必要があります。

パッケージマネージャ経由でインストールするツールについては、UbuntuでインストールしたものはTermuxからは実行できませんが、TermuxでインストールしたものはUbuntuから実行できます。

主な理由としては、一部の共有ライブラリがAndroidと一般的なLinuxディストリビューションで異なるためです。

# Ubuntuにログイン
proot-distro login ubuntu --fix-low-ports --shared-tmp --termux-home

# パッケージを更新
apt update -y && apt upgrade -y && apt autoclean -y && apt autoremove -y

# 実行ファイルをダウンロード
curl -L 'https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-arm64' | busybox tar x -zO 'code' > /usr/local/bin/code
curl -L 'https://github.com/denoland/deno/releases/latest/download/deno-aarch64-unknown-linux-gnu.zip' | busybox unzip -p - 'deno' > /usr/local/bin/deno

# パーミッションを変更
chmod 755 /usr/local/bin/*

# 動作確認
code -v
deno -v

ちなみに、Ubuntuにログインするとスーパーユーザーとなりますが、これは PRoot という技術を使用しているためです。
実際にAndroid本体のRoot権限を取得しているわけではありません。

VSCode Serverを起動するときは serve-web サブコマンドを使用します。
Android内のローカルホストにVSCode Serverが構築されます。

# 127.0.0.1:8000をリッスン
code serve-web --without-connection-token --host 127.0.0.1 --port 8000

後は、見慣れた画面で思うがまま開発を進められます!

ネットワーク内の他のPCなどからアクセスしたい場合は、リッスンアドレスを 0.0.0.0 にしてください。

SSH接続

SSHを使用して、外部からTermuxを操作することも可能です。
実際に僕も、自宅ではLAN経由でPCからアクセスして作業することがあります。

接続する際のパラメータを参考に載せておきます。
Termuxのsshdはデフォルトのリッスンポートが 8022 に変更されているので注意です。

IPアドレスは適宜読み替えてください。

# 普通にログインする場合
ssh -p 8022 termux@192.168.0.1

# 直接Ubuntuにログインする場合
ssh -t -p 8022 termux@192.168.0.1 proot-distro login ubuntu --fix-low-ports --shared-tmp --termux-home

ギャラリー

15
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?