ラベル Termux の投稿を表示しています。 すべての投稿を表示
ラベル Termux の投稿を表示しています。 すべての投稿を表示

2022/11/07

Termuxがリポジトリのエラーで起動できない場合の直し方

久々にTermuxを起動したら

と起動できなくなってたので直し方。

TermuxはF-Droid https://f-droid.org/packages/com.termux/ のバージョン0.118.0(118) です。

手順は

1. Failsafeで起動

2. 環境変数PATHに /data/data/com.termux/files/usr/bin を設定

3. 必要なら sources.list を編集

4. termux-change-repo を実行

5. パッケージの更新

6. Failsafeで起動したTermuxを終了

になります。


以下細々した説明。

Termuxのアイコンを長押ししてFailsafeで起動します。


Failsafeで起動した場合、/data/data/com.termux/files/usr/bin へのPATHが設定されていないので設定し直します。(termux-change-repoから呼ばれるコマンドが /data/data/com.termux/files/usr/bin にあるので)

Failsafeから起動すると /data/data/com.termux/files/home にいるので

$ cd ../usr/bin

で /data/data/com.termux/files/usr/bin に移動してから

$ export PATH=`pwd`

で現在いるディレクトリ(/data/data/com.termux/files/usr/bin)をPATHに設定し直します。


termux-change-repoを実行しリポジトリの再設定をしたのですが、署名のベリファイでエラーが出たので https://github.com/termux/termux-packages/wiki/Mirrors#primary-host に書かれているエントリーに直します。

/data/data/com.termux/files/usr/bin にいるので

$ cd ../etc/apt

で /data/data/com.termux/files/usr/etc/apt に移動してから

$ nano sources.list

で sources.list を編集します。エントリーは

deb https://packages-cf.termux.dev/apt/termux-main stable main

とCloudFlareのが設定されていたのですがベリファイでエラーが出てるので

deb https://packages.termux.dev/apt/termux-main stable main

に変更し保存。

termux-change-repoを実行します。

$ termux-change-repo

使用するリポジトリを選択します。



リポジトリのエントリーが変更されるとそのままパッケージのアップグレードに進むのでアップグレードします。アップグレードが終了したらFailsafeで起動したTermuxを終了します。

これでTermuxが起動するようになりました。

2018/06/14

Termux上でFDcloneを動かす

2019/05/25 追記

Android 9に対応したFDclone 3.01iがリリースされました。
pkgコマンドでclang, make, ncurses-dev (2019/09/16 statさんの指摘により修正。2019/07の終わりに*-devなパッケージは無くなりました。)とそれらが依存する必要なパッケージをインストール後、makeコマンドでコンパイルできます。

2019/09/16 追記

ncurses-devに含まれているヘッダーファイルなどはncursesのパッケージに含まれるようになりました。
また、ncursesはTermuxの初回起動時にインストールされるので、FDcloneのコンパイルに追加で必要になるパッケージはclang, make (とこれらが依存するbinutils libffi libllvm ndk-sysroot) になります。

2019/09/16 追記ここまで

以下は古い情報です。

2019/05/25 追記ここまで


Termux上でFDcloneを動かそうとした場合、TermuxのAPTリポジトリにFDcloneは無いので自前でコンパイルする必要があります。
makeコマンド一発でコンパイルできればよかったのですが、FDcloneのInstallにもある通り、FDcloneはAndroid 4.xまでの対応となっており、Android 5.0からのサポートされた64bit環境でのコンパイルには対応していません。
ソースを修正してみたところ、少しの修正で済んだのでパッチを上げておきます。

Termuxのバージョン: 0.60
FDcloneのバージョン: 3.01g
端末は
Xperia X Compact (Android 8.0.0 (CPU ABI: arm64-v8a))
Android エミュレータ (Google Play Inten x86 Atom_64 System Image API Level 28 Revision 3)
でコンパイルし、FDcloneが起動するところまで確認しています。

パッチ FD-3.01g-android-termux.patch

FDclone コンパイル手順

コンパイルに必要なパッケージをインストールします。

$ pkg install clang make ncurses-dev

clangを動かすにあたり必要なパッケージ (binutils, libandroid-support-dev, libffi, libllvm, ndk-stl, ndk-sysroot) もインストールされます。

FDcloneのページからダウンロードしたFD-3.01g.tar.gzを展開し、

$ tar xf FD-3.01g.tar.gz

パッチを当てます。

$ patch -p1 < FD-3.01g-android-termux.patch

FDcloneのソースのあるディレクトリに移動してコンパイルして

$ cd FD-3.01g
$ make CC=clang PREFIX=$PREFIX CONFDIR=$PREFIX/etc

インストール。マニュアルは不要なので、バイナリのみインストールしています。マニュアルもインストールする場合は install-bin を install にします。(2019/05/08訂正)

$ make LN="ln -s" install-bin

2019/05/08 訂正
マニュアルもインストールする場合はMANTOPの場所を指定し、install-manを追加します。

$ make LN="ln -s" MANTOP=$PREFIX/share/man install-bin install-man

2019/05/08 訂正ここまで

Android 6.0からハードリンクの作成はできなくなっているのでlnコマンドにオプション "-s" を追加してシンボリックリンクを作成するようにします。
これでFDcloneを動かすのに必要なファイル(fd, fd-cat.C, fd-cat.ja, fd-dict.tbl, fd-unicd.tbl, fdsh)が /data/data/com.termux/files/usr/bin/ にインストールされます。


2018/06/15 追記
FDcloneを起動した状態での上下のスワイプはカーソルの上下になるので、Google 日本語入力のように左右のカーソルキーがあるソフトウェアキーボードを使用すれば、ハードウェアキーボードが無くても結構使えます。

2018/08/29 追記
Google 日本語入力の場合、カーソルキーのフリックでカーソルの上下もできることを教えていただきました。


2018/08/15 追記
2018/08/11にリリースされたFDclone 3.01hですが、FD-3.01h.tar.gzを展開したディレクトリに移動後、patchコマンドのオプションを "-p2" に変更しパッチを適用すればコンパイルできます。

$ tar xf FD-3.01h.tar.gz
$ cd FD-3.01h
$ patch -p2 < ../FD-3.01g-android-termux.patch
$ make CC=clang PREFIX=$PREFIX CONFDIR=$PREFIX/etc
$ make LN="ln -s" install-bin

2017/11/20

Termuxの備忘録

昔書いた、
Android上で動くgccの導入
WgetをAndroid NDKでコンパイル
Android用のnkfをコンパイル
Android用のnkfをコンパイル その2
がたまにアクセスがあるので、自分の備忘録も兼ねて。

Android 5.0以上ならターミナルエミュレーターはTermuxの使用をお勧めします。


インストールと初期設定など


まずGoogle Playからインストール → Termux

使い方はTermuxのThe Termux Wikiを見ればOK

忘れがちなキーの割り当て(Touch Keyboardより)
・Volume Up + W → Up arrow key
・Volume Up + A → Left arrow key
・Volume Up + S → Down arrow key
・Volume Up + D → Right arrow key

ボリュームダウンが[Ctrl]キーに割り当てられてるけど、操作し辛いのでナビゲーションドロワーから「KEYBOARD」を長押しして、「Extra keys view」を表示しておく。(Touch Keyboardより)
バージョン 0.62から Extra keys view は Volume UP + Q で表示/非表示可能 (2018/06/24 追記)
Volume UP + Q での Extra keys view の表示/非表示は以前からあったようです(2018/06/27 追記)


Termux-setup-storage にある通り、ストレージの初期設定を行う。

あとはDebian系のディストリビューションと同じ感覚で、

$ apt update

で利用できるパッケージリストの更新。

$ apt upgrade

で新しいパッケージに更新。

以上で、Termuxの準備は完了。


パッケージのインストール


・Clang
以前はgccのパッケージがあったのですが、現在ではClangになっています。(clangのパッケージに含まれるgccはclangへのリンクになっています。)

$ apt install clang

でインストールされます。

・Wget
Termuxはbusyboxがインストールされているので、busyboxで機能が足りているならそのまま使用、機能が足りないようであれば、パッケージのインストール。

$ apt install wget

でインストールされます。

・nkf
Termuxのパッケージにはないので、コンパイルします。
nkf Network Kanji Filterからソースをダウンロードして、ファイルの展開後、config.h の

#define DEFAULT_CODE_UTF8

を有効にして

$ make

で実行ファイルが作成されます。

2018/06/16 追記
FDcloneのコンパイル、インストール方法は Termux上でFDcloneを動かす に書きました。