Hugo を yum で Amazon Linux にインストール

Hugo を yum で Amazon Linux にインストールする方法をメモしておきます。

イントロ

AWS CodeComit から git clone して、Hugo でビルドして、S3 にデプロイしたいなと考えだしたのですが、これやりたければ CodePipeline でやるのが普通ですが、これだけのことに CodeBuild やら CodePipeline とか使うの面倒くさいなと思いました。CodeCommit Pull をトリガーに Lambda で git clone して、Hugoでビルドして S3 にデプロイすれば割と簡単でコストほとんどかからず、デプロイ時間も極短時間ではと考えたわけです。

ただし、Hugo を Lambdaで動かすのが結構面倒臭そうなのと、CodeCommit の clone は CLI や SDK で実行可能な API が無く、Git そのものが無いと難しそう。Hugo も Git も Amazon Linux でビルドしてバイナリやら依存のある Shared Object やらを Lambda持っていくのはそれはそれで面倒臭いと思っていたら、Lambda っていつの間にかコンテナ動くようになったんですね。

AWS Lambda の新機能 – コンテナイメージのサポート

というわけで、Lambda Run Time コンテナイメージをベースに Hugo とGit が追加したコンテナイメージを作成して Lambda で動かそう、と思ったわけです。ググったりしましたが、Hugo を yum で簡単にインストールする方法が見つからなかったのでメモしておきます。

Amazon Linux に Hugoをインストール

Hugo のドキュメントでは Fedora 系の Distribution では dnf でインストールが必要です。

Fedora maintains an official package for Hugo which may be installed with:

sudo dnf install hugo

Install Hugo | Hugo

ところがAmazon Linuxには dnf が入っておらず、これだけのために dnf 入れるのもあれなので、yum で入れたいところです。

先ほどの Hugo のドキュメントを見ると Fedora Copr のリポジトリにあることがわかります。

For the latest version, the Hugo package maintained by @daftaupe at Fedora Copr is recommended: - Install Hugo | Hugo

Fedora Copr のリポジトリにあれば、yum でリポジトリを有効化すると入れることができます。

インストール手順

How to enable repo — COPR documentationに沿って、Hugo を yum でインストールします。

  1. Amazon Linuxバージョン確認

    cat /etc/system-release
    Amazon Linux release 2 (Karoo)
  2. yum-plugin-copr をインストール

    sudo yum install -y yum-plugin-copr
  3. Hugo ドキュメントに記載されていた daftaupe/hugo リポジトリ有効化

    sudo yum copr enable -y daftaupe/hugo
  4. Hugo をインストール

    sudo yum install -y hugo
  5. Hugo インストール確認

    hugo version
    hugo v0.81.0 linux/amd64 BuildDate=2021-03-20T16:40:03Z

あとがき

無事に Amazon Linux に yum で Hugo をインストールできました。あんまりニーズなさそうですが。