Mono Works

チラシのすきま

Gemini PDAにhugoの環境構築(その1)

Gemini PDAに記事更新のためのhugo環境をTermux上に構築しました。今回は、TermuxのインストールからGitでブログ記事のリポジトリをクローンするまで、です。参考にさせていただいたのは、こちらの記事です。

参考:Hugo on Kindle Fire Hd

更新履歴

変更01: 2018/09/02

シンボリックリンクにリポジトリを配置して作業すると、権限の問題が発生したので、ローカルリポジトリの配置を変更

変更02:2018/09/02

SSHキー(アクセスキー)をリポジトリに設定していると、Geminiでコミットした内容をBitbucketにプッシュできなかったので、SSHキー(アクセスキー)をユーザーアカウントのアクセスキーに設定するように変更

Gemini PDAにTermuxを導入

Termuxの公式サイト公式 Wiki。Wikiを漁れば、大概のことは分かります。

Termuxのインストール

本体とアドオンのインストールは、Google PlayF-Droidのどちらか好きな方からインストールできますが、互換性の問題があるので、混ぜるな危険です。ワタシは、いつも利用しているGoogle PlayからTermuxをインストール。

参考:Termux - Google Play のアプリ

アドオン(Termux:API)のインストール

次に、後で使用するtermux-clipboard-setコマンドを含んだアドオンのTermux:APIGoogle 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のアカウントが必要です)
執筆者
"ぽぽろんち" @pporoch
pporoch120
Mono Worksの中の人。好きなことをつらつらと書き留めてます。
ギターを始めてから 練習動画をYouTubeにアップしてます。ご笑納ください。
"DQX@ぬここ(UD487-754)、コツメ(NO078-818)"
採用案内