Termux は、Android ターミナル アプリケーションおよび Linux 環境です。
このリポジトリはアプリ自体 (ユーザー インターフェイスとターミナル エミュレーション) 用であることに注意してください。アプリ内にインストールできるパッケージについては、termux/termux-packages を参照してください。
Termux パッケージ管理の簡単な使い方については、「パッケージ管理」を参照してください。また、 apt
またはpkg
コマンドの実行時にrepository is under maintenance or down
エラーを修正する方法に関する情報も含まれています。
Termux Android アプリケーションのメンテナーを募集しています。
注意: Termux は Android 12 以降では不安定になる可能性があります。 Android OS は、32 を超える (ファントム) プロセスを強制終了し (制限はすべてのアプリを合わせたものです)、また過剰な CPU を使用しているプロセスも強制終了します。実際にシェル プロセスを終了しなくても、ターミナルに[Process completed (signal 9) - press Enter]
メッセージが表示される場合があります。関連する問題 #2366、問題トラッカー、ファントム キャッシュおよび空のプロセスのドキュメント、およびファントムおよび過剰な CPU 使用率プロセスのトリミングを無効にする方法に関するこの TLDR コメントを確認してください。適切なドキュメント ページは後で追加されます。強制終了を無効にするオプションは Android 12L または 13 で利用できるはずです。そのため、Android 11 を使用している場合、特に root 権限を持っていない場合は、自己責任でアップグレードしてください。
コア Termux アプリには、次のオプションのプラグイン アプリが付属しています。
最新バージョンはv0.118.1
です。
注意: ここで報告されている世界中で読み取り可能な重大な脆弱性を含む、さまざまなバグ修正のために、できるだけ早くv0.118.0
以降に更新することを強くお勧めします。 Google Play の Termux に関する情報については、以下を参照してください。
Termux は、アプリとパッケージを完全にサポートする Android >= 7
以上の場合のみ、以下にリストされているさまざまなソースから入手できます。
アプリとパッケージの両方のサポートは、2020 年 1 月 1 日にv0.83
で Android 5
および6
で削除されましたが、2022 年 5 月 24 日に GitHub ソース経由でパッケージ更新のサポートなしでアプリのみに再追加されました。 。詳細はこちらをご確認ください。
異なるソースの APK ファイルは、異なる署名キーで署名されます。 Termux
アプリとそのすべてのプラグインは同じsharedUserId
com.termux
使用するため、デバイスにインストールされているすべての APK が連携するには同じ署名キーで署名されている必要があり、すべて同じソースからインストールする必要があります。これらを混合しないでください。つまり、アプリやプラグインをF-Droid
からインストールし、別のアプリやプラグインをGitHub
などの別のソースからインストールしようとしないでください。また、Android パッケージ マネージャーでは通常、異なる署名を持つ APK のインストールが許可されず、インストール時に「 App not installed
、 Failed to install due to an unknown error
」、 INSTALL_FAILED_UPDATE_INCOMPATIBLE
」、 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
」、 signatures do not match previously installed version
」などのエラーが表示されます。この制限は、root またはカスタム rom を使用して回避できます。
別のソースからインストールする場合は、まず既存の Termux またはそのプラグイン アプリ APK をすべてデバイスからアンインストールしてから、同じ新しいソースからすべての新しい APK をインストールする必要があります。詳細については、「アンインストール」セクションを確認してください。 Termux を別のソースから再インストールした後に復元できるように、アンインストール前に Termux をバックアップすることも検討してください。
以下の段落では、 「ブートストラップ」とは、作業シェル環境を開始するためにtermux-app
自体に同梱される最小限のパッケージを指します。その zip はここで構築およびリリースされます。
Termux アプリケーションはF-Droid
からここから入手できます。
Termux をインストールするために、( Download F-Droid
リンクから) F-Droid
アプリをダウンロードする必要はありません。各バージョン セクションの下部にあるDownload APK
リンクをクリックすると、サイトから Termux APK を直接ダウンロードできます。
通常、 GitHub
でアップデートがリリースされてからF-Droid
でアップデートが利用できるようになるまでに数日 (場合によっては 1 週間以上) かかります。 F-Droid
リリースは、新しいGitHub
リリースを検出すると、 F-Droid
によってビルドおよび公開されます。 Termux の管理者は、 F-Droid
での Termux アプリの構築と公開を制御できません。さらに、Termux のメンテナはF-Droid
リリースの APK 署名キーにもアクセスできないため、 F-Droid
リリースと互換性のある APK を自分でGitHub
上にリリースすることはできません。
F-Droid
アプリはアップデートを通知しないことが多く、アップデートを確認するにはアプリのUpdates
タブでプルダウン スワイプ アクションを手動で実行する必要があります。アプリのバッテリー最適化が無効になっていることを確認してください。その方法の詳細については、https://dontkillmyapp.com/ を確認してください。
サポートされているすべてのアーキテクチャで動作するユニバーサル APK のみがリリースされます。 APK とブートストラップのインストール サイズは~180MB
になります。 F-Droid
アーキテクチャ固有の APK をサポートしていません。
Termux アプリケーションはGitHub
でバージョン>= 0.118.0
以上のGitHub Releases
、またはGitHub Build Action
ワークフローから入手できます。 android >= 7
の場合は、 apt-android-7
バリアントのみをインストールします。 Android 5
および6
場合は、 apt-android-5
バリアントのみをインストールします。
GitHub Releases
の APK は、リリースのAssets
ドロップダウンにリストされます。これらは、新しいバージョンがリリースされると自動的に添付されます。
GitHub Build
アクション ワークフローの APK は、ワークフロー実行のArtifacts
セクションにリストされます。これらは、リポジトリへのコミット/プッシュが行われるたびに作成され、リリースを待ちたくない、最新の機能をすぐに試したい、またはプル リクエストをテストしたいユーザーが使用できます。アクション ワークフローの場合、 Artifacts
リンクを有効/クリック可能にするには、 GitHub
アカウントにログインする必要があることに注意してください。 GitHub
アプリを使用している場合は、アプリ内ブラウザがログインしていない可能性があるため、GitHub アカウントにログインしている Chrome や Firefox などのブラウザでワークフロー リンクを開くようにしてください。
これら両方の APK はdebuggable
であり、相互に互換性がありますが、他のソースとは互換性がありません。
ユニバーサル APK とアーキテクチャ固有の APK の両方がリリースされています。 APK とブートストラップのインストール サイズは、ユニバーサルを使用する場合は~180MB
、アーキテクチャ固有を使用する場合は~120MB
になります。詳細はこちらをご確認ください。
セキュリティ警告: GitHub 上の APK ファイルは、コミュニティと共有されているテスト キーで署名されています。これは公式の開発者キーではなく、誰でもこれを使用して独自のテスト用のリリースを生成できます。 https://github.com/termux/termux-app 以外の場所で入手した Termux GitHub ビルドを使用する場合は、十分に注意してください。誰もがこれを使用して、GitHub ビルド上にインストール可能な悪意のある Termux アップデートを偽造することができます。 Telegram やその他のソーシャル メディア経由で配布された Termux ビルドをインストールすることについてはよく考えてください。デバイスがマルウェアに感染した場合、私たちはあなたを助けることができません。
テスト キーは @termux を偽装するために使用しないでください。また、この目的で使用することもできません。このキーは当社によって信頼されておらず、ユーザーが生成したコンテンツでの使用は非常に簡単に検出されます。
Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
現在、Android 11 以降のデバイス向けに Google Play で利用可能な Termux のビルドがあり、そこでのポリシー要件に合格するために広範な調整が行われています。これは開発中であり、安定した F-Droid ビルドと比較して欠落している機能とバグがあります (ステータス更新についてはこちらを参照)。そのため、使用できるほとんどのユーザーは上記のように F-Droid または GitHub ビルドを使用する必要があります。
現在、Google Play は F-Droid のものから離れてインストールを更新しようとします。 sharedUserId が削除されているため、更新は引き続き失敗します。計画されている 0.118.1 F-Droid リリースでは、PlayStore アプリで使用されるものよりも高いバージョン コードを設定することでこの問題が修正されます。一方、Google Play が既存のインストール上に Google Play リリースをダウンロードしようとして失敗しないようにするには、Google Play で Termux アプリのページを開き、右上にある 3 つの点のオプション ボタンをクリックして、自動更新の切り替えを有効にします。ただし、Termux アプリのアップデートは引き続き PlayStore アプリのアップデート リストに表示されます。
Google Play ビルドのテストを手伝いたい場合 (または他のソースから Termux をインストールできない場合)、Termux は別のリポジトリ (https://github.com/termux-play-store/) からビルドされていることにご注意ください。発生した問題はそのリポジトリに固有のものである可能性が高いため、そこで問題を報告する必要があります。
ユーザーが端末に Termux をインストールしたくない場合、または別のインストール ソースに切り替える場合は、アンインストールが必要になる場合があります。アンインストールする前に、Termux をバックアップすることも検討してください。
Termux を完全にアンインストールするには、「Termux アプリとプラグイン」にリストされている既存の Termux またはそのプラグイン アプリ APK をすべてアンインストールする必要があります。
Android Settings
-> Applications
に移動し、それらのアプリを探します。デバイスで検索機能が利用可能な場合は、それを使用し、アプリケーション リストでtermux
検索することもできます。
どのプラグインもインストールしていないと思われる場合でも、Android 設定のアプリケーション リストに目を通し、再確認することを強くお勧めします。
すべてのコミュニティ リンクはここから利用できます。
主なものは以下のとおりです。
RUN_COMMAND
インテントを介して他のアプリから Termux でコマンドを実行するVTE (libvte): GTK+ 用のターミナル エミュレータ ウィジェット。主に gnome ターミナルで使用されます。ソース、未解決の問題、およびすべて (クローズされた問題を含む) の問題。
iTerm 2: OS X ターミナル アプリケーション。ソース、問題点、およびドキュメント (iTerm2 独自のエスケープ コードを含む)。
Konsole: KDE ターミナル アプリケーション。ソース、特にテスト、バグと要望。
hterm: Chromium からの JavaScript ターミナル実装。ソース(テストを含む)、および Google グループ。
xterm: 端末エミュレータの祖。ソース。
Connectbot: Android SSH クライアント。ソース
Android ターミナル エミュレータ: Termux ターミナル処理のベースとなる Android ターミナル アプリ。非アクティブ。ソース。
Termux
アプリの設定 ->
-> Debugging
-> Log Level
( Termux
アプリのバージョン>= 0.118.0
が必要) で適切なlogcat
Log Level
を設定すると、 Termux
アプリとそのプラグインの問題のデバッグに役立ちます。 Log Level
デフォルトはNormal
で、現在のログ レベルはVerbose
追加情報をログに記録します。デバッグの終了後、ログ レベルをNormal
に戻すのが最善です。通常の操作中にプライベート データがlogcat
に渡される可能性があり、さらに追加のログにより実行時間が増加するためです。
プラグイン アプリはコマンド自体を実行しませんが、実行インテントをTermux
アプリに送信します。Termux アプリには独自のログ レベルがあり、そのログ レベルはTermux
アプリの設定 -> Termux
-> Debugging
-> Log Level
で設定できます。したがって、すべての情報を取得するには、 Termux
とそれぞれのプラグイン アプリ設定の両方のログ レベルを設定する必要があります。
ログ レベルを設定したら、 Termux
アプリのターミナルでlogcat
コマンドを実行してログをリアルタイムで表示したり ( Ctrl+c
で停止)、 logcat -d > logcat.txt
を使用してログのダンプを取得したりできます。 ADB
を介して PC からログを表示することもできます。詳細については、ここで公式 Android logcat
ガイドを確認してください。
さらに、ユーザーはターミナルの長期保留オプション メニューMore
-> Report Issue
オプションを選択し、表示されるプロンプトでYES
を選択logcat
てデバッグ情報を追加することで、termux ファイルのstat
情報と logcat ダンプを自動的に生成することもできます。これは、他の問題のレポートやデバッグに役立ちます。生成されたレポートが大きすぎる場合は、 ReportActivity
のコンテキスト メニュー (右上の 3 つのドット) にあるSave To File
オプションを使用して、代わりにファイルを表示/共有できます。
ユーザーは問題を報告する場合、完全なレポート (機密情報を除く) を投稿する必要があります。テキストではなくエラー レポートの (部分的な) スクリーンショットで開かれた問題は、自動的にクローズ/削除される可能性があります。
Off
- 何も記録しません。Normal
- エラー、警告、情報メッセージ、スタックトレースのログ記録を開始します。Debug
- デバッグ メッセージのログ記録を開始します。Verbose
- 詳細メッセージのログ記録を開始します。 termux 共有ライブラリはv0.109
で追加されました。 Termux アプリとそのプラグインの共有定数とユーティリティを定義します。これは、Termux アプリ内のすべてのハードコーディングされたパスを削除できるようにするために作成されました。一部の termux プラグインもこれを使用しており、残りは将来的に使用される予定です。共有される可能性のある定数またはユーティリティを使用するコードを提供する場合、現在存在しない場合はtermux-shared
ライブラリにそれを定義し、そこから参照します。関連する変更ログも更新します。ハードコードされた値を使用したプル リクエストは受け入れられます/受け入れられません。 Termux アプリとプラグイン固有のクラスはcom.termux.shared.termux
パッケージの下に追加し、一般クラスはその外側に追加する必要があります。コードを提供する際には、必要に応じてtermux-shared
LICENSE
もチェックして更新する必要があります。外部ライブラリまたはコードのライセンスは尊重される必要があります。
主要な Termux 定数はTermuxConstants
クラスによって定義されます。 Termux をフォークする方法、または独自のパッケージ名でビルドする方法に関する情報も含まれています。パッケージ名を変更するには、新しい$PREFIX
を使用してブートストラップ zip パッケージとその他のパッケージをビルドする必要があります。詳細については、「パッケージのビルド」を確認してください。
プラグイン アプリに termux ライブラリをインポートする方法については Termux ライブラリを、プラグインの termux ライブラリを更新する方法についてはフォークとローカル開発を確認してください。
Termux とそのプラグイン アプリのbuild.gradle
ファイル内のversionName
major.minor.patch(-prerelease)(+buildmetadata)
形式のセマンティック バージョン2.0.0
仕様に従う必要があります。 build.gradle
ファイルでversionName
バンプする場合、および GitHub で新しいリリースのタグを作成する場合は、 v0.1
だけではなくv0.1.0
のように、必ずパッチ番号も含めてください。 build.gradle
ファイルとattach_debug_apks_to_release
ワークフローではバージョンも検証され、 versionName
仕様に従っていない場合、ビルド/添付は失敗します。
Keep a Changelog 仕様に従った変更ログがcreate-conventional-changelog
スクリプトによって自動的に生成されるように、コミット メッセージは従来のコミット仕様を使用する必要があります。仕様の詳細については、そのリポジトリを確認してください。 type
とdescription
の最初の文字は大文字にする必要があり、説明は現在形である必要があります。コロン:
後のスペースは必須です。重大な変更の場合は、感嘆符!
を追加します。コロン:
の前に追加すると、chagelog 内で自動的に強調表示されます。
[optional scope]:
[optional body]
[optional footer(s)]
以下にリストされているtypes
のみを、変更ログの見出しで使用されているとおりに使用する必要があります。たとえば、 Added: Add foo
、 Added|Fixed: Add foo and fix bar
、 Changed!: Change baz as a breaking change
などです。必要に応じて、 Fixed(terminal): Fix some bug
のようにスコープを追加することもできます。 Added
代わりにadd
など、他のものをタイプとして使用しないでください。
TermuxConstants
javadoc を確認してください。termux-shared
ライブラリのTermuxConstants
使用しているわけではなく、 com.termux
値がハードコードされているため、手動でパッチを適用する必要があります。