個人的Termuxのセットアップメモ
Termuxとは
AndroidやChrome OS上でLinuxを動かすことができるターミナルエミュレータ
のひとつ。
Androidのスマホやタブレットでターミナルを触るなら第一候補に上がるであろうアプリ。
Termux Wiki
OSのルートを取得(root化)しなくても、いい感じにLinuxをいじることができる(これ大事)
OSがファイルへのフルアクセスを許可しないため、ファイルは以下のディレクトリ内で管理される。
/data/data/com.termux/files/usr
他にもLinuxとは違いが多くあるが詳しくは以下のドキュメントを参照。
インストール直後から最低限のパッケージとパッケージマネージャーが用意されているため、簡単に始めることができる。
スマートフォンやタブレットからターミナルを触れるので勉強にもなる。なにより手軽なのが嬉しい。
今回、環境を最初から改めて構築するのでメモ。
パッケージを最新にアップグレードする
Termuxにはデフォルトで最小限のパッケージとパッケージ管理マネージャーであるpkg コマンド
が付属する。このコマンドはapt
のラッパーとなっている。
アップグレード
$ pkg upgrade
上記コマンドでパッケージが最新の状態に更新される。
公式でも定期的にパッケージを最新に更新することを推奨している。
Termuxではpkgコマンド以外にaptコマンドも通常通りに使用できます。
内部ストレージにリンクさせる
デフォルトでは内部ストレージにアクセスすることはできない。
以下のコマンドで内部ストレージにリンクを貼ることができる。
$ termux-setup-storage
コマンドを実行するとストレージへのアクセス許可を求められるため、許可する。
許可したあとは以下のようになる。
$ ls
storage
コマンドの実行で ~/storage/
の下に内部ディレクトリへのシンボリックリンクが作成される。
必要なツールとパッケージのインストール
pkg install wget git curl proot yarn vim
上のコマンドで、Wget・Crul・Git ・Yarn・proot・Node.jsがインストールされる。
最初pkgコマンドでNode.jsをインストールしようとしたがエラーで上手くインストールできなかった。
Yarnをインストールすると依存関係としてNode.js v14.15.4がインストールされたのでこちらを採用。
$ node -v
v14.15.4
シェルのカスタマイズ
Termux のデフォルトのシェルはbashになっている。
個人的にZshが好みなので、Zshをインストールして設定する。
$ pkg install zsh
インストールが終わったら、Zshを起動する。
$ zsh
Zshに切り替わる。次回起動時もZshを使いたいためデフォルトのシェルを変更する。
$ chsh -s zsh
【活用編】Ubuntuの導入
TermuxはLinuxとファイル構造が異なり、プログラムによってはうまく動かないものもある。
そこでUbuntuを入れることで Linuxの操作感にかなり近づけることが可能。
ubuntu-in-termux
というプロジェクトでシェルスクリプト作成されているためインストール。
以下ガイドに沿ってコマンドを実行。
# パッケージの更新
$ apt-get update && apt-get upgrade -y
# wget・proot・Gitのインストール
#すでにpkgでインストールしている場合はスキップ可
$ apt-get install wget proot git -y
# ホームディレクトリに移動
$ cd
# スクリプトをクローン
$ git clone https://github.com/MFDGaming/ubuntu-in-termux.git
# 作成されたディレクトリへ移動
$ cd ubuntu-in-termux
# スクリプトに実行権限を付与
$ chmod +x ubuntu.sh
# インストールスクリプトを実行
$ ./ubuntu.sh -y
# Ubuntu を起動
$ ./startubuntu.sh
# Ubuntu が起動
root@localhost:~#
インストールが完了するとすぐに使用することができる。バージョンはこちらで確認。
$ cat etc/etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
またexit
でTermuxに戻れる。
Termuxを起動したときに毎回 cd ./ubuntu-in-termux
、./startubuntu.sh
とするのは大変なので Termux側に.zshrc
を作成し先頭に以下を記述する。
cd ./ubuntu-in-termux
./startubuntu.sh
これで次回以降Termuxの起動と同時にUbuntuが起動するようになる。便利。
Ubuntuをセットアップする
パッケージを最新に更新する
apt update && apt upgrade -y
必要なパッケージをインストール
apt install wget git curl vim nano -y
Ubuntuを日本ロケールに切り替える
デフォルトの状態だと日本語を扱えないため、ロケールを変更する。
# 使用可能なロケールの確認(デフォルトだと日本語対応のロケールなし)
$ local -a
C
C.UTF-8
POSIX
# 日本語の言語パックをインストール
$ apt install language-pack-ja -y
# 使用可能なロケールの確認
$ local -a
C
C.UTF-8
POSIX
ja_JP.utf8 # 追加されたロケール
# ロケールをja_JP.utf8に変更する
echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LANGUAGE="ja_JP:ja"' >> ~/.bashrc
# ここで再起動 再起動後に日本語化される
Ubuntuな環境にZshを導入
aptを使ってZshをインストール。
apt install zsh -y
インストール完了後にzsh
と入力することでシェルがZshに切り替わる。
Zshのカスタマイズ【Prezto】
ZshのフレームワークであるPreztoをインストールしてテーマやコマンドを使いやすくカスタマイズする。
リポジトリはこちら。
# zsh の起動
$ zsh
# GitHubからクローン
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
# 設定ファイルの構成
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
ここまで設定ができたら再起動する。
再起動するとシェルがPreztoに切り替わる。
しかし再起動するたびにbashに戻りZsh
と入力して起動するのは面倒なので自動的に起動するようにする。
起動時にZshを起動させる
# ファイルの先頭に追記して保存
zsh
これでUbuntuの起動時にPreztoが起動するようになる。
Happy Hacking!!
2022年2月 補足と現状
今まではパッケージをアップグレードする際にpkg update && pkg upgrade
できていたのですが、リポジトリの形式に変更があったため、以下のようなWarningがでるようになった。
上のエラーはパッケージのリポジトリの仕様変更に伴うアナウンス。
Google Playで配布されていたTermuxも使用非推奨になりTermux | F-Droidからインストールしたものを使うようになった模様。公式サイトからPlay Storeのリンクの削除確認済み。
F-Droidでのインストール注意点
F-DroidはGoogle Playとは異なり、外部ストアになるため、権限設定がデフォルトだとうまくインストールできない可能性がある。通称 野良アプリと呼ばれる類。
Androidの端末設定から「提供元不明のアプリを許可」をONにすることでインストールできるようになる。
Google PlayからインストールしたTermuxがインストールされているとF-Droid版をうまくインストールできないため、APKファイルをインストールする前に削除してから行うようにする。
Google Play版からF-Droid版に移行する際にデータをバックアップして引き継ぐには以下のWikiを参考に作業することで安全に引き継ぐことが可能。