世界を動かす技術を、日本語で。

Termuxの翻訳

概要

  • Termux はAndroid向けのターミナルアプリ兼Linux環境
  • パッケージ管理やインストール方法、注意点の解説
  • Android 12以降の動作不安定性とその対策
  • インストール元ごとの特徴やセキュリティ注意事項
  • アンインストール・デバッグ・関連リンク情報

Termuxアプリ概要

  • Termux はAndroid端末上で動作する ターミナルアプリ および Linux環境
  • アプリ自体(UIやターミナルエミュレーション)はこのリポジトリで管理
  • アプリ内でインストール可能なパッケージは termux/termux-packages で管理
  • パッケージ管理の詳細やリポジトリ障害時の対処法は Package Management に記載
  • Androidアプリの メンテナ 募集中

Android 12以降の注意点

  • Android 12以降 ではTermuxの安定性が低下
  • OSが32個以上のプロセスやCPU使用過多のプロセスを自動終了
  • ターミナルで「 Process completed (signal 9) - press Enter」と表示される場合あり
  • 詳細は issue #2366 や関連ドキュメント、TLDRコメント参照
  • Android 12L/13ではプロセス終了の無効化オプションが追加予定、アップグレードは注意

Termuxアプリとプラグイン

  • コアアプリに加え、以下の オプションプラグイン を提供
    • Termux:API
    • Termux:Boot
    • Termux:Float
    • Termux:Styling
    • Termux:Tasker
    • Termux:Widget

インストール方法

  • 最新バージョンは v0.118.3
  • v0.118.0 以降へのアップデート推奨(重大な脆弱性修正あり)
  • Android 7以降 がフルサポート対象
  • Android 5/6は2020年にサポート終了→2022年にアプリのみサポート再開(パッケージ更新不可)

署名キーとインストール元の注意

  • Termuxアプリと全プラグインは 同一署名キー で署名されたAPKを必要とする
  • 異なるインストール元(F-Droid・GitHub等)のAPK混在不可
  • 混在時は「 App not installed」や署名不一致エラー発生
  • 別ソースからインストールする場合は 全てアンインストール後、同一ソースから再インストール が必要
  • バックアップ推奨

F-Droid

  • F-Droidから直接APKダウンロード可能(F-Droidアプリ不要)
  • アップデート反映まで数日~1週間以上 かかる場合あり
  • メンテナはF-Droid版のビルド・公開に関与せず、署名キーも別
  • バッテリー最適化 は無効化推奨
  • universal APK のみ配布、インストールサイズ約180MB

GitHub

  • GitHub ReleasesBuild Action workflows から取得可能
  • Android 7以降は apt-android-7、5/6は apt-android-5 を利用
  • universal/アーキテクチャ別APK あり(universal:180MB、arch別:120MB)
  • GitHub配布APKは テストキー 署名、セキュリティ上のリスクあり
    • テストキーは公開済み、悪意ある改ざんの危険性
    • 正規GitHubリポジトリ以外からのダウンロードは非推奨
  • キーストア情報は詳細に公開

Google Play(実験的ブランチ)

  • Android 11以降向けにGoogle Play版を開発中
  • 機能制限やバグあり、F-Droid/GitHub版推奨
  • Playストア版とF-Droid版は 互換性なし
  • 自動アップデートは 無効化推奨
  • Playストア版の問題は 専用リポジトリ で報告

アンインストール方法

  • Termuxや全プラグインAPKを 完全アンインストール する必要
  • Android設定→アプリ一覧で確認・削除
  • バックアップも検討推奨

重要リンク

  • Termuxコミュニティ :Reddit, Matrix, X (Twitter), サポートメール
  • Wiki :Termux全般・アプリ・パッケージ
  • FAQ・ファイルシステム・リモートアクセス・バックアップ・設定解説
  • ターミナルリソース :XTerm, iTerm2, Konsole, hterm, xterm, Connectbot, Android Terminal Emulator

デバッグ方法

  • Termuxアプリ設定 →Debugging→Log Levelでログレベル設定
  • 詳細ログ取得時は Verbose 推奨、終了後は Normal に戻す
  • プラグインも同様に個別設定が必要
  • ログレベル設定後、問題解析が容易

必要に応じて各セクションをさらに分割・詳細化できます。ご要望があればお知らせください。

Hackerたちの意見

新しいAndroidフォンにはフルLinuxが使えるようになったけど、Termuxはまだ必要なのかな?https://www.reddit.com/r/androidterminal/でのユーザー体験をよく読むけど、すごく良さそうだね。

あなたが言う通り、古い電話にはまだまだ役立つよね。最新のハイエンドモデルだけが本物を手に入れた感じ。

OEMがそれをサポートしなきゃいけないみたいだね(AVF仮想化)。

両方試したけど、Termuxの方が全然いいよ。数ヶ月前に試した時、Linuxターミナルは普通のAndroidディレクトリから隔離されたサンドボックスにあったんだ。確かに「安全」かもしれないけど、コマンドラインでファイルを移動できないのが僕の主な使い方なんだよね(GUIでファイルを整理したり名前を変えたりするのは耐えられない)。

面白いね、初めて聞いたよ。それはAndroid 16以上らしい。俺のGalaxy S21 FEはAndroid 16なんだけど、設定で「Linux」って検索したら、この実験的な「AndroidでLinuxターミナルを実行」ってトグルが見つかったんだ。でも、全然動かない。タップしてもオンにならないし。まあ、仕方ないか。

前にVMでLinuxターミナルを試したときは、バグだらけで遅かったな。

おお、これを教えてくれてありがとう。これが導入されたのを完全に見逃してた。

ハードウェアアクセラレーションの面ではゴミだね。一方、TermuxにはVulkan LinuxからVulkan Androidのラッパーがあって、将来的にはハードウェアエンコードやデコードもできるようになるかも。

Termuxはただのターミナルエミュレーターなんだ。Termuxでプログラムを実行すると、それはAndroidシステム内の通常のAndroidサンドボックスでネイティブに動く。いくつか制限があって、たとえばソフトウェアはTermux環境のパスを使うようにコンパイルしなきゃいけない。Termuxは/binにソフトウェアをインストールできないし、/etcに書き込むこともできない。だから、Termuxがインストールした依存関係など、基本的なAndroidシステム以上のものに依存するものは、Termux環境のパス用に特別にコンパイルしなきゃいけない。でも、Androidシステムの一部として実際にターミナルが欲しい時には便利だよ。Termuxが許可されている共有ストレージにネイティブにアクセスできるし、TermuxからAndroid APIも使える。いくつかの機能にはTermux:API Addonアプリをインストールする必要があるけど、GPSやSMS、連絡先の情報も取得できる。AndroidのターミナルアプリはフルVMへのビューに過ぎない。もしAndroidの隣にもっと伝統的なLinuxシステムを持ちたいなら、それがいいかも。ただ、ストレージは多く使うけどね。

僕のお気に入りのソフトウェアの一つは、Termuxを使ってる人が作ったやつなんだよね[0]、ほんとにすごいよ。https://github.com/9001/copyparty 0、https://www.youtube.com/watch?v=15_-hgsX2V0&t=885s

それは面白いね、私はいくつかの場所でCopypartyを使ってるけど、その起源は知らなかった。

Termux大好き!普通のターミナル環境、tmuxやfish、just、git、zoxide、yaziなんかを動かせるし、Rustアプリも作れるんだ。自動補完やファジー検索がしっかりしてて、少ないキー操作で作業ができるのがすごく快適。yaziやnnnみたいなTUIアプリがタッチに反応するのも感動的。興味本位で聞くけど、iOSにも同じくらいのサポートがあるアプリってあるの?

iOSでは、ish.appみたいなx86をエミュレートしてフルLinuxディストリビューションを動かすアプリしか使えないんだ。Termuxよりパフォーマンスはかなり低いけど(iOSアプリではJITが禁止されてるから)、Androidの実行ファイルに関する制限はないよ。

Termuxは、手に入れたAndroidデバイスには必ず最初にインストールするアプリだよ。驚くほど機能が豊富なんだ。Androidタブレット用にBluetoothキーボードケースも持ってるし、いつもTermuxを使って自宅ネットワーク経由でLinuxマシンにSSH接続して、ソファからNeovimでコーディングしてる。デフォルトのメモアプリは全然使わないよ。TermuxとNeovimでvimwikiを動かして、プライベートのGitHubリポジトリに同期する方がずっといい。CLIで欲しいものはほとんどTermuxのパッケージリポジトリにあるし、ない時はclangやmake、cmake、ninja、必要なライブラリをインストールしてソースからビルドできるから、ほとんどのものがちゃんと動く。Termuxはすごいし、これのおかげでAndroidを使い続けてるよ。

どのキーボードケース使ってるの?俺のAndroidフォンはPixel 8なんだけど、それいいね :-)

Android 16には、開発者設定メニューから有効にできるTermuxのようなLinux環境があるらしいよ。

正直な質問なんだけど、長年Termuxを使ってるデスクトップTUIユーザーとして、みんなはどうやって小さいタッチスクリーンでこれを使ってるの?

セッションは俺にとっては短めだけど、持ってると便利だね。

だから、新しいキーボード付きのAndroidデバイスが楽しみなんだ。タッチスクリーンでは生産的なことができないからね。

ポータブルBluetoothキーボード。

TermuxではよくBluetoothキーボードを使ってるけど、メカニカルキーボードが大好きで、エルゴノミックやメカニカルキーボードの博物館みたいなのを持ってるから、SamsungのS-Penでもターミナル作業には十分だよ。SSHやVIM、最近はTermuxでOrg modeも使ってる。デスクにいるときはBluetoothキーボードを使うけど、外にいるときはS-Penで代用してる。今はS24 Ultraを使ってて、その前はNote 10 Lite、さらにその前もNote 10 Liteだったよ。

PentiKeyboardを使ってるんだけど、基本的に自分が慣れてるバイトシーケンスを全部送れるし、tmuxにctrl+bを送るショートカットもあるよ。https://play.google.com/store/apps/details?id=de.software_la... それか、ワイヤレスの物理キーボードを接続するかな。編集: Pentiのキラー機能は透明で、指先を置きやすい場所に「ボタン」を配置できることだね。普通のソフトウェアキーボードは画面の半分を隠しちゃって、ほとんど親指専用の「ボタン」になってるから。コードを書くことが多いから、主流の次の単語予測にはあまり興味がないんだ。

Unexpected Keyboardを使ってるんだけど、AltやCtrl、Esc、Fキーを含むほとんどのキーが使えるよ。https://github.com/Julow/Unexpected-Keyboard

デフォルトのソフトウェアキーボードよりも良いものがインストールできるよ。私はUnexpected Keyboardを使ってるんだけど、Unix作業に必要なctrl、alt、tabなどのキーをサポートしてるんだ。

まず第一に、小さいタッチスクリーンでシェルコマンドを打つのはそんなに面倒じゃないよ。注意点:ヘビーターミナルユーザーの人たちにはね ;-) それにBluetoothキーボードを接続できるし、他のデバイスからssh経由でスクリプト(Perl、Python、Shellなど)をインポートできる。最後に、デバイスでsshサーバーを立ち上げて、デスクトップやノートパソコンからTermuxを使うこともできるし、ウェブサーバーを立ててデバイスのメディアファイルにアクセスすることもできるよ。

画面をすごく近くで見つめてる。

僕にとっては、Vimを学ぶきっかけになった。変なキーボードのおかげで、もっと効率的なキー操作を学ぶようになったから、今ではVimがすごく得意になった。バスの中で学んでたんだけど、その時はデータプランがなかったから、ダウンロード済みのものしか見れなかった。:helpのドキュメントはすごく詳しいよ。

Androidで最高のターミナルエミュレーターだよ。普段はメモ取り(fzf、Neovim、Git)とSSH(パソコンを開くのが面倒なとき)に使ってる。あと、Goを使ってCLIやTUIを作って、Android NDKでコンパイルしてTermuxで実行することもできるよ。

Termuxの使い方についてなんだけど、ほとんどの写真はちゃんとホームNASにバックアップされるんだけど、同期プロセスが時々いくつかをスキップしちゃうんだよね。これがイライラするんだけど、まだImmichには移行してないから仕方ない。だから、NASにあるPythonスクリプトで、全ての写真と動画のMD5チェックサムを計算して、シェルスクリプトを生成してるんだ。それを電話で実行すると、ローカルデバイスのMD5を計算して、NASと同じだったら削除するって感じ。生成したシェルスクリプトを電話に送って、TermuxのウィンドウからDCIMフォルダを指定して実行するんだ。こうすることで、同期アルゴリズムがうまくいかない時でも、数十GBのメモリを確実に空けられるよ。

なんでシェルスクリプトじゃなくて、削除するmd5を送らないの?

Termuxを使えばrsyncが手元にあって、チェックサムを計算したり、転送後にファイルを削除したりできるんだ。だから、バックアップは全部Termuxでやってるよ。画像は同期する前に日付ごとのサブフォルダに整理してるし、exiftoolやffmpeg、ImageMagickみたいなツールがTermuxで使えるのは素晴らしいね。

Nextcloudの問題はちょっと変だね。Playストア以外からダウンロードした同期アプリの方がうまくいってる人が多いみたい。もし私がそんなことになったら、そのアプリには全く信頼を置けなくなるから、全く別の方法で同期するかな。実際、少し前にPCでNextcloudクライアントを使ったことがあるけど、他の面でもちょっと不安定だったから、使うのをやめたんだ。

AIベースの開発が進む中で、もっと多くの人がTermuxやtmuxを発見して使い始めると思う。スマホでのタイピングは最悪だけど、少なくともモーダルモード(vim)やUnexpected Keyboardがあるから、なんとか耐えられるかな。

このリンクで朝が変わったって言っても過言じゃないよ(笑)。このキーボード大好き。

もうハードウェアキーボード付きのAndroidデバイスを作る人がいないから、こういうソフトウェアはほとんど使わなくなったな。Kickstarterで買ったスマホが中途半端なソフトウェアと更新の欠如で失敗した経験から、Androidは生産性プラットフォームとしてはもうダメだって結論に至った。Androidが新しかった頃は、最初のモトローラDroidでTermuxやConnectBotを頻繁に使ってた。ほんの一瞬だけど、素晴らしいデザインの電話があって、古いチップセットとPlanet Computersの放置されたソフトに縛られてた。ポケットに入るデバイスで80 WPMでタッチタイピングできたんだ!Termuxはそこで輝いてた。Androidの多くのことは、新しい時代には単に可能性があるだけじゃなくて、実際に良くなってた:ハードウェアのバリエーションが豊富で、ブートローダーが広くアンロックされてて、リモート認証もなかったり。Termuxは、残念ながらそのことを痛感させる存在だね。

これからレビューが楽しみな2つがある: https://www.androidauthority.com/unihertz-titan-2-elite-qwer... https://www.engadget.com/mobile/smartphones/clicks-is-bringi...

Termuxは、ずっと素晴らしくて欠かせない存在だったけど、今はさらに面白くなってる。Androidがフルデスクトップモードを手に入れるのと同時に、XRグラス(xrealやvitureなど)が主流になってきてるからね。ルート化やハッキング、いじることなく、ポケットにLinuxデスクトップを持ち歩ける。TermuxとX11サーバーをインストールするだけでOK。すべてのパッケージが動くわけじゃないけど、LLMsはどんどん強力になってる。例えば、デビアンパッケージからTermuxにDeskflowを移植するのに最大4時間かかったけど、4ヶ月前にはどう始めればいいかもわからなかったことだよ。

人気の理由はコーディングエージェントだと思う。初めて、あまりタイピングせずに作業を続けられて、出力を確認しながら短いメッセージで指示を出せるようになったから。