Gemini PDAに記事更新のためのhugo環境をTermux上に構築しました。今回は、TermuxのインストールからGitでブログ記事のリポジトリをクローンするまで、です。参考にさせていただいたのは、こちらの記事です。
更新履歴
変更01: 2018/09/02
シンボリックリンクにリポジトリを配置して作業すると、権限の問題が発生したので、ローカルリポジトリの配置を変更。
変更02:2018/09/02
SSHキー(アクセスキー)をリポジトリに設定していると、Geminiでコミットした内容をBitbucketにプッシュできなかったので、SSHキー(アクセスキー)をユーザーアカウントのアクセスキーに設定するように変更。
Gemini PDAにTermuxを導入
Termuxの公式サイトと公式 Wiki。Wikiを漁れば、大概のことは分かります。
Termuxのインストール
本体とアドオンのインストールは、Google Playと F-Droidのどちらか好きな方からインストールできますが、互換性の問題があるので、混ぜるな危険です。ワタシは、いつも利用しているGoogle PlayからTermuxをインストール。
アドオン(Termux:API)のインストール
次に、後で使用するtermux-clipboard-setコマンドを含んだアドオンのTermux:APIをGoogle Playからインストールします。その後、Termuxを起動して、下記コマンドを実行し、Termux:APIを有効にします。
pkg install termux-api参考:Termux:API - Google Play のアプリ
Termuxの作業環境構築
アップデート
Termuxを最新の状態に更新します。
apt update
apt upgrade今回の作業に必要なパッケージのインストール
# Termuxで使えるすべてのパッケージ一覧を表示
apt list
# インストールされているパッケージ一覧を表示
apt list --installed
# パッケージのインストール
apt install git
apt install opensshストレージの連携
Termuxでは、Termuxのみがアクセス可能なsandbox内にHOMEフォルダを保存しているので、外部アプリとデータのやり取りをおこなうには、下記コマンドを実行してHOMEフォルダ内にストレージをマウントします。
termux-setup-storage
# 端末内へのアクセス許可を求められるので「許可」
cd ~/storage
ls -al
# 連携確認すると、以下の通り、~/storage/に各ディレクトリへのシンボリックリンクが作成されました。これを実行すると、実体の場所にあったファイルが消えたという報告もあるようです。ワタシの環境では問題ありませんでしたが、念のためバックアップは取っておいた方がいいかも。
| シンボリックリンク | 実体 | 
|---|---|
| ~/storage/dcim | /storage/emulated/0/DCIM | 
| ~/storage/downloads | /storage/emulated/0/Download | 
| ~/storage/external-1 | /storage/《外部ストレージ》/Android/data/com.termux/files | 
| ~/storage/movies | /storage/emulated/0/Movies | 
| ~/storage/music | /storage/emulated/0/Music | 
| ~/storage/pictures | /storage/emulated/0/Pictures | 
| ~/storage/shared | /storage/emulated/0 | 
BitbucketからリポジトリをGemini PDAにクローン
本サイトを構成するファイルは、Gitで管理していて、Bitbucketにリポジトリを置いてます。これをGemini PDAにクローンします。
Bitbucket用にSSHキーを設定
リモートリポジトリとしているBitbucketにSSHキーを設定します。
参考:Set up an SSH key - Atlassian Documentation
Githubの方は、下記を参照。
参考:Generating a new SSH key and adding it to the ssh-agent - User Documentation
鍵のペアを生成
ssh-keygen -t ecdsa -b 384 -C "GeminiPDA"
# 保存場所とファイル名を聞かれますが、変更の必要がなければ、そのまま [Enter]
# パスフレーズを入力して [Enter]
# 再度パスフレーズを入力して [Enter]
cd ~/.ssh
ls -al
# 鍵のペアを確認
id_ecdsa(秘密鍵) id_ecdsa.pub(公開鍵)秘密鍵をssh-agentに追加
# バックグラウンドでssh-agentを起動
eval `ssh-agent`
# Agent pid 《プロセスID》
ssh-add ~/.ssh/id_ecdsa
# パスフレーズ入力 [Enter]
# Identity added 《秘密鍵のフルパス》公開鍵をBitbucketに登録
ChromeでBitbucketにアクセスし、ログイン後、ユーザーアイコン -> Bitbucket settings -> SSH鍵 -> 鍵を追加をタップしたら、Labelに適当な名前を入力。
Termuxに戻って、下記を実行して、公開鍵の内容をクリップボードに格納。
cat ~/.ssh/id_ecdsa.pub | termux-clipboard-setChromeに戻って、クリップボードの内容をKeyに貼り付けて、鍵を追加をタップ。
ユーザ名と設定の確認
ssh -T git@bitbucket.org
# The authenticity of host 'bitbucket.org (xxx.xxx.xxx.xxx)' can't be established.
# RSA key fingerprint is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
# Are you sure you want to continue connecting (yes/no)? 初めて接続する場合、yesで [Enter]
#
# (中略)
#
#《リモートリポジトリ》: 《公開鍵のラベル》 -- 《鍵のコメント》リポジトリのクローン
ChromeでBitbucketにアクセスし、ログイン後、リポジトリ選択 -> クローンの作成をタップしたら、サブウインドウ右上のリストでSSHを選択して、コマンドをコピー。
cd ~/storage
# コピーしたコマンドを Ctrl + Alt + V で貼り付けて [Enter]
# クローンが終わるまで待つ
# リポジトリの中身の確認
cd 《ローカルリポジトリ》
ls -la次は、hugoの環境構築をご紹介します。
おしまい
    
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)