Termux(ubuntuも含む)メモ
Termux(ubuntuも含む)メモ
TermuxはAndroidアプリとして動作して、パッケージのインストールが可能なlinuxのコンソールである。
ここでは、パッケージのインストールとsshによる接続について、まとめたものである。
0.SSH公開鍵の作成
HOST_PC(linux)で以下を実行する:
$ ssh-keygen -t ed25519
パスワード(パラフレーズ)を聞いてくるので任意のパスワードを入力する。
以下に公開鍵が作成される:
/home/USER-ID/.ssh/id_ed25519.pub
SD経由でAndroidのDownloadsのフォルダに上で作った公開鍵をコピーしておく。
1.Termuxのインストール
以下のURLからAndroidアプリとしてTermuxをインストールする。
https://play.google.com/store/apps/details?id=com.termux
#Android 要件5.0 以上
2.Termux側での設定
インストール後の実行で以下のコマンドを
Androidのキーボード(仮想やbluetooth)で入力する:
pkg update
pkg upgrade
termux-setup-storage
pkg install openssh
#該当の公開鍵にアクセスできることの確認
ls -l ~/storage/downloads/id_ed25519.pub
#公開鍵のコピー
cd ~/.ssh
cat ~/storage/downloads/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
#Termuxが動作しているAndroidのIPアドレスの確認(アドレスをメモっておく)
ip -4 a
#ssh-serverの起動
sshd
#常駐しないので?毎回、起動する必要あり
3.HOST\PC(linux)側での設定
#SSHでログインする
ssh -p 8022 192.168.0.18
#ここでは例としてIPアドレスを「192.168.0.18」としたが
#上で確認したアドレスを入力する。
#Termuxでは1024以下のポートが使えないため、8022番ポートを使うよう設定されている。
パスワードを聞いてくるので、公開鍵を生成した時のパスワードを入力する。
以下、必要なもののインストール:
#エディタ関連(必要なものをインストール)
pkg install nano
pkg install vim
pkg install emacs
#ネットワーク関連
pkg install wget
pkg install git
pkg install net-tools
#プログラミング言語関連(必要なものをインストール)
pkg install nodejs
pkg install ruby
pkg install picolisp
pkg install python
pkg install golang
pkg install valac
#その他もろもろ
pkg install autoconf bison clang coreutils curl findutils git apr apr-util libffi-dev \
libgmp-dev libpcap-dev postgresql-dev readline-dev libsqlite-dev openssl-dev libtool \
libxml2-dev libxslt-dev ncurses-dev pkg-config make ruby-dev libgrpc-dev termux-tools \
ncurses ncurses-utils libsodium-dev termux-exec gdb
4.prootでubuntuとして動かす
Termuxはファイル構成がAndroidのものなので標準的なlinuxのものと異なっており、
アプリによってはTermux(Android)のファイル構成では動作しない場合がある。
この場合、prootでubuntuのファイルシステムをマウントすることによって動かないアプリを動作させることができる。
pkg install wget
pkg install proot
mkdir -p ~/jails/ubuntu
cd ~/jails/ubuntu
wget https://raw.githubusercontent.com/Neo-Oli/termux-ubuntu/master/ubuntu.sh
bash ubuntu.sh
./start-ubuntu.sh
#以下、実行例:
$ ./start-ubuntu.sh
groups: cannot find name for group ID 3003
groups: cannot find name for group ID 9997
groups: cannot find name for group ID 50111
#上のようなエラーが出るが無視できる
#この時点でubuntuのファイルシステムがマウントされているので
#ますは、ホームディレクトリを作成する。
mkdir /home/USERNAME
cd /home/USERNAME
export HOME=/home/USERNAME
以下の必要なものをapt-getでインストールする
#sudoは使用できない(擬似的なrootとして動作している)
#以下、インストール&実行例
#オリジナルのTermunxと異なり、UTCになっているのでJSTに変更する
apt-get install tzdata
dpkg-reconfigure tzdata
apt-get install nodejs
apt-get install npm
npm install -g yarn
npm install -g create-react-app
create-react-app my-react
cd my-react
yarn start
yarn build
cd build
#httpサーバーのインストールと実行
npm install -g http-server
hs
# localhost:8080でウェブを開く
# VNC serverを動かしてみる
apt-get install vnc4server
vncserver :1
vncserver -kill :1
# 日本語入力のインストール
apt-get install uim-fep uim-mozc
5.AndroidのSSHアプリからの接続
HOST_PC(linux)ではなく、Termuxが動作しているAndroid自身のSSHアプリで接続することができる。
その際、上で作った鍵の秘密鍵のほうを使用するSSHアプリにインポートする必要がある。
(1)Androidの「JuiceSSH」では、ed25519に未対応なようで上で作った秘密鍵は使用できない。
以下のようなコマンドで鍵を作り直す必要がある:
ssh-keygen -t rsa -b 2048
(2)Androidの「ConnectBot」のほうは、秘密鍵をインポートすればSSH接続できる。
ポート番号が8022であることを忘れずに!
以上
| 固定リンク
「linux」カテゴリの記事
- platfomioを使ってnaitive(linux/windows)のプログラムをビルドする方法(2021.03.10)
- micro:bit Yotta開発ツール(linux版)(2021.01.09)
- PlatformIOをRaspberryPi4で動かしてみる(実験)(2020.10.20)
- headless RaspberryPiインストール方法(v2)(2020.10.20)
- wio-terminalのファームウェア・アップデートについて(linux版)(2020.10.15)
コメント