AndroidにF-Droid版TermuxとPython3.10を再インストールした(2021年12月
この投稿で行う事
- Googleプレイ版Termuxのアンインストール
- F-Droidのインストール
- F-Droid版Termuxのインストール
- Python3.10のインストール
- Numpy、Pandas、lxml、Pillow、Jupyter Notebook、Scipy(失敗)、その他、依存ライブラリのインストール
実行環境
TermuxをGoogleプレイ版からF-Droid版に変更する
AndroidスマホにGoogleプレイからTermuxというターミナルアプリを入れて使っていたのですが、pkg update
などでパッケージの更新をしたら起動時に以下のような警告が出るようになった。
You are likely using a very old version of Termux, probably installed from the Google Play Store. There are plans in the near future to remove the Termux apps from the Play Store so that new users cannot install them and to disable them for existing users with app updates to prevent the use of outdated app versions. Instead, you are encouraged to move to F-Droid or Github sources (see [1]). You can backup all your current Termux data before uninstallation and then restore it later by following instructions in the wiki [2]. Check the changelog [3] for all the new features and fixes that you are currently missing. Check [4] for why this is being done.
[1] https://github.com/termux/termux-app#installation [2] https://wiki.termux.com/wiki/Backing_up_Termux [3] https://github.com/termux/termux-app/releases [4] https://github.com/termux/termux-app#google-play-store-deprecated
Google翻訳)
非常に古いバージョンのTermuxを使用している可能性があります。
おそらくGooglePlayストアからインストールされます。
近い将来、削除する計画があります
PlayストアのTermuxアプリで、新しいユーザーが
それらをインストールして無効化することはできません
使用を防ぐためにアプリを更新している既存のユーザー
古いアプリのバージョンの。 代わりに、あなたは
F-DroidまたはGithubソースに移動することをお勧めします
([1]を参照)。 現在のすべてのTermuxをバックアップできます
アンインストール前のデータを後で復元する
wiki [2]の指示に従ってください。 チェック
すべての新機能と修正の変更ログ[3]
あなたが現在行方不明であること。 理由については[4]を確認してください
これは行われています。
[1] https://github.com/termux/termux-app#installation
[2] https://wiki.termux.com/wiki/Backing_up_Termux
[3] https://github.com/termux/termux-app/releases
[4] https://github.com/termux/termux-app#google-play-store-deprecated
2021年12月現在、Googleプレイにはまだ「Termux」アプリは置いてありますが、訳あって近々置かなくなる予定のようです。前々から告知されてはいましたけど。
Googleプレイから無くなる換わりに、F-Droid
かgithub
からダウンロードして使うのをオススメされている。
そういう訳ですので、Installing from F-Droid - Termux Wikiに従い、
↑のリンクにあるように、GoogleプレイからとF-DroidからとのTermuxは互換性の問題があり、混ぜるなキケンだそうです。
それらのTermuxのバージョンは異なります。
Termuxのバージョン確認方法は
# Termuxのバージョン確認コマンド $ termux-info
このコマンドか、またはAndroidのアプリの設定の所で確認できる。F-Droid版Termuxをインストールするとversion0.117になる。Googleプレイ版はversion0.101で、2020年9月から更新されていない。
混ぜるなキケンということで、GoogleプレイからインストールしたTermuxをアンインストールすると、
は全部失くなります。SDcard等にバックアップすることも可能です。だが、私はやりませんでした。元々入っていたAndroidアプリ等は消えませんので、そこは大丈夫です。
ところで、F-Droidって何ですの?
Androidアプリは通常Googleプレイストアのアプリを使ってダウンロード・インストールするかと思いますが、F-Droid
というアプリを使って(または直接)そのサイトに置いてあるアプリ(野良アプリなどと呼ばれる)をダウンロード・インストールする事もできるようです。
F-DroidはAndroidに対応したソフトウェアリポジトリおよびアプリケーションストアである。Google Playと機能は類似するが、扱っているのはフリーかつオープンソースのソフトウェアのみである。配信アプリケーションはF-Droidのウェブサイトで見ながらインストールできるが、クライアントアプリケーション(Google Playストアからは入手できない)から直接インストールする方法もある。クライアントアプリケーションはインストールしたF-Droid配信アプリケーションを自動的に更新することも出来る。また、ウェブサイトでは全配信アプリケーションのソースコードがダウンロードできるようになっている wikipedia F-Droid - Wikipedia
F-Droid公式
F-Droid - Free and Open Source Android App Repository
F-Droidアプリはここからブラウザでダウンロード・インストールする。
Androidのアプリの設定⚙️項目に「不明なアプリのインストール」というのがあります。Googleプレイ以外からインストールするアプリ(自作アプリも含む)を「不明なアプリ(野良アプリ)」という。
ダウンロード・インストールする際に使用するブラウザの「不明なアプリのインストール」設定を「許可する」に変更しておく。方法の詳細はInstalling from F-Droid - Termux Wikiを参照下さい。
行った手順
- TermuxアプリとTermuxAPIアプリを「Googleプレイ・ストア」アプリでアンインストール
F-Droid
アプリをインストールした。81.8MB。ブラウザの不明なインストールを許可して行う事。インストールが完了するとアイコンが作られる。F-Droid
を開くと、リポジトリ更新が始まる(データのダウンロード等で1~2分)F-Droid
アプリの「開発」ジャンルから「Termux」と「TermuxAPI」をインストール。不明なアプリインストール可で行う。F-Droidの公式サイトからF-Droidアプリをインストール
- F-Droidのリポジトリ更新中
- F-Droidのリポジトリ
ここまでの手順で無事にF-DroidからTermuxアプリのインストールが完了すると、Googleプレイストア版と同じアイコンが作られる。
ここから後はTermuxのセットアップをしていく。
Termuxのセットアップ
まずはパッケージを更新する
# パッケージの更新 $ pkg update $ pkg upgrade
内部ストレージへのアクセス準備
この時点ではAndroidの内部ストレージにアクセスできない状態です。試しに$ ls
コマンドなどで見てもファイルやフォルダが表示されません。
次のコマンドでアクセス可能にする。
~$ termux-setup-storage #内部ストレージにリンク
許可する。これで内部ストレージにアクセス可能になったはず。確認してみよう。
~$ ls storage dcim movies pictures downloads music shared
$ ls storage/shared/
を見ればAndroidのファイル管理アプリで見えるフォルダが表示される。これでアクセス可能になりました。
必要なパッケージやソフトウェアをpkg install
適当にインストールしていきます。
- tree : ディレクトリ構成表示ソフト
- wget : ダウンロード用
- curl : ダウンロード用
- vim : 高機能エディタ
- git : gitコマンド用
- termux-api : Termuxの拡張機能
- proot : termux-chrootでpermissionを変更する時に必要らしい
とりあえずこれだけやってみる。
~$ pkg install tree wget curl vim git termux-api proot
termux-api
はTermuxの拡張機能を使う時に必要。たとえばtermux-clipboard-set
コマンドなどクリップボードを使う時。重宝する。F-Droidアプリ
から「Termux:API」アプリをインストールしておく。
インストール済みのパッケージ確認
Termuxで何のパッケージをインストールしたか確認したい時は
$ pkg list-installed
パッケージ名 バージョン [installed]
の一覧がズラリと表示される。
インストール済み以外も表示
まだインストールしていないパッケージも表示できる。
$ apt list # または $ pkg list-all
大量に表示される。インストール済みは右側に[installed]
と表示。
Termuxでインストールできないソフトも別のLinux(Ubuntuなど)をインストールする事で可能になったりするようです。
参考
【随時更新】個人的 Termuxセットアップメモ
Pythonのインストール
2021年12月現在の最新版はPython3.10です。
TermuxでUbuntuやDebianなどのLinuxを入れて使っておられる方が結構いるようですが、Androidスマホの容量的に厳しそうなので直接入れました。
Python本体のインストール
$ pkg install python
66.6MBのダウンロード、Python3.10.1がインストールされた。
Pythonの外部ライブラリのインストール
pandasやscipy、matplotlibなどはサクッとpipインストール出来ない。機種によってもどうやら反応が違う。鬼門であります。
まずはpipの最新版へアップデート
$ pip install -U pip
Jupyter Notebookをインストール
$ pip install wheel jupyter notebook
wheel
は自動的にインストールされないのか分からないが「wheel not installed」と警告が出るので先にインストールした。
しかしpyzmq
がインストール失敗と出た。その為Jupyter Notebookもインストール失敗。
検索すると次の手順で行けると。
$ pkg install libzmq # 先にインストール $ pip install pyzmq # 次にインストール
無事インストールできたようなので、再び
$ pip install jupyter notebook
無事、インストール成功。
Numpyのインストール
$ pip install numpy
すんなりインストール成功。
scipyのインストール
$ pip install scipy
これではインストール出来ない。前回成功した方法を試す。
# curlコマンドでコンパイル用のシェルスクリプトをダウンロード $ curl -LO https://its-pointless.github.io/setup-pointless-repo.sh # シェルスクリプトを実行 $ bash setup-pointless-repo.sh
何か色々インストールされる。その後に、
$ pkg install scipy # pip installの打ち間違いではありません。
前回はこれでscipy
が動くようになった。インストールされたか確認する。
$ pkg list-installed |grep scipy scipy/termux,now 1.6.3 aarch64 [installed]
インストールできている。
しかし、 Pythonを起動させてインポートしても「No Module named 'scipy'」と言われた。
$ python Python 3.10.1 (main, Dec 9 2021, 15:28:13) [Clang 12.0.8(略) >>> import scipy ModuleNotFoundError: No module named 'scipy'
ありゃ、前回はこれで動いたんだけどなぁ。分からないのでscipyは一旦諦めて次に進みます。
追記 2021.12.17
インストール失敗の原因として、Error installing scipy in Python 3.10 on Windows10 - Stack Overflowによると、scipyがまだPython3.10に対応できていない為らしい。Windowsでもインストールできないと書いてある。
追記以上。
Pillowのインストール
グラフ描画ライブラリmatplotlib
をインストールする際に同時にPillowもインストールされますが、大抵Pillowは失敗する。
よって、次の手順でPillow単体のインストールを行いました。
$ pkg install libjpeg-turbo #先にインストール $ LDFLAGS="-L/system/lib64/" CFLAGS="-I/data/data/com.termux/files/usr/include/" pip install Pillow
これで上手く行った。
参考 python - How to install Pillow on termux? - Stack Overflow
lxmlのインストール
先に依存パッケージをインストールしてから。
$ pkg install libxml2 libxslt $ pip install lxml
成功。
matplotlibのインストール
先に依存パッケージのインストールから。
$ pkg install freetype libjpeg-turbo libpng $ pip install matplotlib
これで失敗したので、次のようにした。
$ git clone https://github.com/matplotlib/matplotlib $ cd matplotlib $ sed 's@#enable_lto = True@enable_lto = False@g' setup.cfg.template > setup.cfg $ pip install .
さらに失敗した。コンパイルが上手く行っていないんだろう。検索しても方法が出てこないが、とりあえずgcc関連をインストールしまくれば行けるんじゃね?と思い、
# 先にインストール $ pkg install gcc-10 gcc-11 # 上がインストールできたので、改めて $ pip install matplotlib
なんと、インストール出来た!!やったね👌
上のgit clone
コマンドでダウンロードして作られたmatplotlibフォルダは必要ないので削除して構いません。
# git cloneしたmatplotlibフォルダの存在確認 $ ls matplotlib # あれば、フォルダごと削除 rm -rf ./matplotlib # 削除できたか確認 $ ls # matplotlibフォルダが無くなっていればOK
Pandasのインストール
インストールに時間がかなり掛かる。15分以上。
$ export CFLAGS="-Wno-deprecated-declarations -Wno-unreachable-code" $ pip install pandas
これで上手く行った。
参考リンク
- F-Droidについて
- 失敗しやすいPythonライブラリのインストール方法
情報が古いかも。
以上です。