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-set
Chromeに戻って、クリップボードの内容を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のアカウントが必要です)