HUGOとAcademicのバージョンアップ

本サイトのお引っ越し後1年以上経過しました。
とーぜんですが、ベースに使ってるHUGOはかなりバージョンが進んでおります。
なので、ここらで一気に最新化しよう!と思ったのが運の尽き。
ま、この手の作業の常として、“素直には動かない"ことが想定されてはいたものの、
結果、完全に環境ぶっ壊して、バージョンアップではなく、新規インストールになってしまったお話
環境はMacOS BigSurです。

■Homebrewの更新

結論から先に書いときますが、ここで横着したのが環境ぶっ壊した原因です。

  • 今のソースをバックアップ(これ大事)
    今のソースをまずはまるっとバックアップしておきます

  • 現在バージョン確認

brew --version

するとエラー・・・

Traceback (most recent call last):
	11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
	10: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
	 9: from /usr/local/Homebrew/Library/Homebrew/global.rb:37:in `<top (required)>'
	 8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 6: from /usr/local/Homebrew/Library/Homebrew/os.rb:3:in `<top (required)>'
	 5: from /usr/local/Homebrew/Library/Homebrew/os.rb:21:in `<module:OS>'
	 4: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:58:in `prerelease?'
	 3: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `version'
	 2: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `new'
	 1: from /usr/local/Homebrew/Library/Homebrew/os/mac/version.rb:26:in `initialize'
/usr/local/Homebrew/Library/Homebrew/version.rb:368:in `initialize': Version value must be a string; got a NilClass () (TypeError)

お?
調べるとMacOSをBig Surにすると動かなくなる問題があるらしい(参考1)
確かにかつて環境構築してからOSバージョンアップしましたわ。
しかも、Homebrewのupgradeはなんかめんどくさそうだから入れ直せばいいじゃん
<-これが過ちの始まり
このやり方はダメなので、みなさんはちゃんとupgradeしましょう。

  • Homebrewのアンインストール
    公式ページのアンインストールスクリプトを実行(参考2)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
  • Homebrewのインストール
    公式ページのインストールスクリプトを実行(参考3)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • バージョン確認
brew --version

今度はちゃんと表示されました。

Homebrew 3.2.6-39-g5ea678b
Homebrew/homebrew-core (git revision 39d8ed5cac; last commit 2021-08-09)
Homebrew/homebrew-cask (git revision 8e931b20db; last commit 2021-08-09)

■HUGOの更新

お次はHUGOの更新です。

  • アップグレード
brew upgrade hugo

すると・・・

Error: hugo not installed

おお?
そうかHomebrew再インストールしたときに全部消えたのか・・・
そうかそうか orz

これはHUGOインストールからやり直ししかないですね。

■改めてHUGOのインストール

  • 今のソースをバックアップ(再確認)
  • HUGOインストール
brew install hugo

するとエラー発生

Error: hugo: Calling `cellar` in a bottle block is disabled! Use `brew style --fix` on the formula to update the style or use `sha256` with a `cellar:` argument instead.
Please report this issue to the homebrew/core tap (not Homebrew/brew or Homebrew/core), or even better, submit a PR to fix it:
  /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/hugo.rb:9

ふう
brewの診断をしてみましょう。

brew doctor

結果は

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Your Command Line Tools are too outdated.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.
You should download the Command Line Tools for Xcode 12.5.

(省略)

Warning: You have uncommitted modifications to Homebrew/homebrew-core.
If this is a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
  cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core && git stash && git clean -d -f

Warning: Your Command Line Tools (CLT) does not support macOS 11.
It is either outdated or was modified.
Please update your Command Line Tools (CLT) or delete it if no updates are available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.
You should download the Command Line Tools for Xcode 12.5.


Warning: Broken symlinks were found. Remove them with `brew cleanup`:
  /usr/local/share/man/man1/brew-cask.1
  /usr/local/share/zsh/site-functions/_brew_cask
  • Homebrew関連の追加設定
    warningには複数パターンありますが、まずは
softwareupdate --all --install --force

を実行すると mocOS Big Sur 11.5.1のダウンロードが始まってしまった。
しょうがないので、Big Sur 11.5.1へのアップロードを実行
でも、状況変わらず。
なのでメッセージにあった次のコマンドを実行

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

コマンドラインツールのアップデートは成功
でも、状況変わらず。
なのでメッセージにあった次のコマンドも実行

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core && git stash && git clean -d -f

ここまでやるとHUGOインストールできました。

  • HUGOインストール
brew install hugo

公式サイト見ると(参考4)、コマンド違ってたんでもう一度実行

brew install git golang hugo

■Wowchemy(旧Academic)インストール

私が使っているテンプレートAcademicはWowchemyって名前が変わるほどの大幅アップデートがおこなわれていました。

  • テンプレートダウンロード
    公式サイト(参考4)からテンプレートのzipファイルをダウンロード
  • 解凍したフォルダを然るべき場所に移動
    以降の作業はターミナルでこのフォルダへ移動してから色々実行していきます。

■コンテンツ更新

バックアップしておいた元のコンテンツをコピーしていきます。
以下の編集が必要でした。

  • configファイル
    config/_default以下の4ファイルは新しいファイルに元の設定を移す形で編集
    ほとんど設定項目は一緒ですが、TOML形式からYAML形式に変更が必要でした。
  • homeフォルダ
    このフォルダ内のファイルの設定も、新しいファイルに元の設定を移す形で編集
  • ディレクトリ変更
    ファビコンとトップページの背景に使っている画像の置き場所
    assets/images -> assets/media
    コンテンツ内のPDFファイルと画像の置き場所
    static/files -> static/media/files
    static/img -> static/media/img
  • ディレクトリ変更に伴うコンテンツ修正
    static以下のディレクトリを参照している部分を全て検索置換

そして、なぜか前と設定を変えないとダメだった部分

  • 背景画像
    homeフォルダ内の一部コンテンツ(背景画像を使っているもの)
    背景画像設定で以下の部分は元々0.7でしたが、
    暗くなりすぎで、0.3にすることで元と同じになりました。
 image_darken = 0.3  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.
  • eventフォルダ
    eventフォルダを追加して使っていましたが、
    なぜかそれがtalkフォルダ内にあるかのような挙動
    意味がわからないのでeventフォルダをmyeventフォルダに名称変更して問題回避
    もしかしたら似たようなことが起きてるかもしれない例を一つ発見(参考5)
  • スタイルシートのflow
    custom.scssを使って画像の横に説明文がつくようにしていましたが、
    うまく動作しなくなってしまったため、HTMLに直接スタイル指定する方法に変更。

■デプロイ方法変更

HUGOから直接S3にデプロイできるようになっていたので、それを利用することに変更。
これでAWSのデプロイに使っているサービス利用料が節約できるはず。

  • AWS CLIを最新版にアップデート
    コマンドでアップデート(参考6)
sudo installer -pkg AWSCLIV2.pkg -target /
  • AWS IAMユーザー作成
    デプロイを実行するためのIAMユーザを作成
    とりあえず以下のポリシーをアタッチ
    ・AmazonS3FullAccess
    ・CloudFrontFullAccess

  • 設定ファイル編集
    config/_default/config.yaml に以下を追記

deployment:
  targets:
    - name: mydeployment
      URL: "s3://<バケット名>?region=<リージョン>"
      cloudFrontDistributionID: <id>

■新デプロイ方法

今回からは次のコマンドを利用

  • プレビュー
hugo server -F
  • デプロイ
hugo --buildFuture --environment production
hugo deploy

コマンドオプションについてはこちら

■参考URL

Homebrew>
(参考1)
macOSをMojaveからBig SurにアップデートしたらHomebrewが起動しなくなった
https://qiita.com/nagative/items/9027dc10a7b2c5b197b5

(参考2)
How do I uninstall Homebrew?
https://docs.brew.sh/FAQ#how-do-i-uninstall-homebrew

(参考3)
Homebrew
https://brew.sh/index_ja

Wowchemy>
(参考4) Edit on your PC with Hugo Extended
https://wowchemy.com/docs/getting-started/install-hugo-extended/

(参考5)
Academic Theme: Events and Talks get mixed up on home
https://discourse.gohugo.io/t/academic-theme-events-and-talks-get-mixed-up-on-home/29322

AWS>
(参考6) macOS での AWS CLI バージョン 2 のインストール、更新、アンインストール https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html#cliv2-mac-install-cmd-all-users

新規作成:2021/08/09
最終更新:2021/08/09