====== 📘 Linux で Hugo を snap からインストールする手順 ======
Hugo は高速な静的サイトジェネレーターで、Linux では **snap パッケージ**として提供されています。snap 版 Hugo は **strict confinement(厳密な隔離)**で動作するため、サイトの生成・ビルドは **ホームディレクトリまたはリムーバブルメディア上**で行う必要があります。 [[https://gohugo.io/installation/linux/|Hugo]]
----
===== 🧩 1. snapd の準備 =====
多くの Linux ディストリビューションでは snapd が標準で利用可能です。\\
未導入の場合は以下でインストールします:
sudo apt update
sudo apt install snapd
----
===== 🧩 2. Hugo(拡張版)を snap でインストール =====
Hugo の **extended edition(拡張版)**をインストールするには次を実行します: [[https://gohugo.io/installation/linux/|Hugo]]
sudo snap install hugo
> snap 版 Hugo は自動更新されます。
----
==== 📘 Hugo の snap インストールで stable が存在しない場合の推奨対応 ====
Raspberry Pi OS で出たエラー:
error: snap "hugo" is not available on stable
これは **Hugo の stable チャンネルが未提供**であることを示しています。\\
snap info を確認すると、現在利用可能なのは以下の 3 つです:
* candidate
* beta
* edge
公式ドキュメントでも **snap install hugo** は内部的に extended 版を指しますが、\\
stable が無い場合は **candidate が最も安定度が高い**扱いになります。
----
===== 🧩 推奨されるインストール方法(candidate) =====
sudo snap install --candidate hugo
----
===== 🧩 他のチャンネルを使う場合 =====
* **beta**:新機能が入る可能性があるが、安定性は candidate より低い
* **edge**:開発版。日常利用には非推奨
sudo snap install --beta hugo
sudo snap install --edge hugo
----
===== 🧩 snap info でチャンネル状況を確認 =====
snap info hugo
これで、現在のチャンネルの更新状況やバージョンが確認できます。
----
===== 🧩 3. 自動更新の制御(任意) =====
snap の自動更新を一時停止・再開できます: [[https://gohugo.io/installation/linux/|Hugo]]
# 自動更新を停止
sudo snap refresh --hold hugo
# 自動更新を再開
sudo snap refresh --unhold hugo
----
===== 🧩 4. リムーバブルメディアへのアクセス制御(任意) =====
サイトを USB メディアなどに配置する場合は、Hugo にアクセス権を付与します: [[https://gohugo.io/installation/linux/|Hugo]]
# アクセスを許可
sudo snap connect hugo:removable-media
# アクセスを取り消し
sudo snap disconnect hugo:removable-media
----
===== 🧩 5. SSH鍵へのアクセス制御(任意) =====
GitHub Pages や CI/CD で SSH 鍵を利用する場合: [[https://gohugo.io/installation/linux/|Hugo]]
# アクセスを許可
sudo snap connect hugo:ssh-keys
# アクセスを取り消し
sudo snap disconnect hugo:ssh-keys
----
===== 📌 まとめ =====
^項目 ^内容 ^
|インストール方法|''%%sudo snap install hugo%%'' |
|エディション |snap 版は **extended edition** |
|隔離モデル |strict confinement(ホーム or リムーバブルメディアで作業) |
|自動更新 |''%%snap refresh --hold%%'' / ''%%--unhold%%''|
|追加権限 |''%%removable-media%%'', ''%%ssh-keys%%'' |