HugoをGitHub Pagesで展開していたのですが、今回はGitHub Pagesではなく、Amazon EC2にHugoをインストールしてみたいと思います。
GO言語をCentOS7にインストール
Hugoを利用するためにGo言語をインストールするのですが、yumでインストールすると様々ななエラーが出る場合があるので、今回はtarファイルを解凍して配置します。
brewがすでにインストールされている場合はbrewでのインストールが早いです。
GO言語をインストール
まずは、GO言語のファイルをダウンロードして、解凍、インストールする場所に配置してやりましょう。
$ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz
$ sudo tar zxf go1.16.linux-amd64.tar.gz -C /usr/local/
$ export PATH=$PATH:/usr/local/go/bin
インストールされたGoのバージョンを確認します
$ go version
インストールが成功していれば、下記のようなバージョンが表示されます。
go version go1.15.14 linux/amd64
GOROOTも確認しておきます
$ go env|grep GOROOT
GOROOT="/usr/local/go"
Hugoをインストールする上で、GOPATHが必要なので設定しましょう。
GOPATHとGOROOTが同じ場所にならないようにすることに注意してください。
同じ場所に設定してしまうと、
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
といったワーニングが表示されてしまいます。
なので、GOPATHとGOROOTを別にしてやりましょう。
それではGOPATHを設定していきます。
vi ~/.bash_profile
上記のコマンドで、.bash_profileをひらいて、下記のコマンドを追加します。
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH:$HOME/bin
設定を反映させて、確認します。
$ source ~/.bash_profile
$ echo $GOPATH
/home/[user]/go
$ echo $PATH
/home/[user]/go/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/root/bin:/root/bin
無事追加できました。
以上がGo言語の設定になります。
HugoをCentOS7にインストール
それでは、いよいよHugoをインストールしましょう。
GitHubからHugoを取得します。
mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install --tags extended
インストールできたら hugo してみましょう
GitInfoを使っているとエラーになる場合がある
Gitのバージョンが古いと、hugo
した際に、情報を取得できないくてエラーになってしまうようです。
hugo v0.93.0-DEV+extended linux/amd64 BuildDate=unknown
ERROR 2022/01/27 Failed to read Git log: Unknown option: -C
usage: git [--version] [--help] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
私の環境ではGitのバージョンがgit version 1.8.3.1
となっていたため、これをアップデートして正しく動作するようにします。
まずはすでにインストールされているGitを削除します。
$ sudo yum -y remove git
次に、2系の配布がされているiusリポジトリを追加します。
私の環境はCentOS7だったので下記のコマンドでyumからインストールします。
$ sudo yum -y install https://repo.ius.io/ius-release-el7.rpm
iusはサードパーティのリポジトリのため、常に有効にならないように設定ファイルを確認しておきます。enabled = 0
となっていたら、常に有効にならない設定です。
[ius-debuginfo]
name = IUS for Enterprise Linux 7 - $basearch - Debug
baseurl = https://repo.ius.io/7/$basearch/debug/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7
[ius-source]
name = IUS for Enterprise Linux 7 - Source
baseurl = https://repo.ius.io/7/src/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7
それでは。インストール可能なGitを調べます。
yumでiusを使うときは、yumコマンドの際に、--enablerepo=ius
オプションをつけます。
$ sudo yum list --enablerepo=ius | grep git2
…
git224.x86_64 2.24.4-1.el7.ius ius
…
インストール可能なGitがあったので、インストールをします。
$ sudo yum -y install --enablerepo=ius git224
インストールが無事完了したことを確認しましょう
$ git --version
git version 2.24.3
バージョンが表示されていたら、正常にインストールが完了してます。
これで GitInfo 使ったhugoのサーバでもhugo
コマンドが実行できるようになりました。