今回の記事はFedoraリナックスに静的ウェブサイトジェネレーターHugoのインストールについてです。Hugo(発音:ヒューゴ)はOctopressやJekyllと同様、コンテンツをMarkdownで記載し、タイトルなどの設定を決め、テーマを選ぶだけで簡単にウェブサイトを作れます。そしてWordpressなどと違って出来上がるサイトはデータベースを使わないため、サイトのセキュリティと速さが抜群。
Hugoは機能豊富で処理スピードが恐ろしく早い、本当に優れているツールです。ただ、現時点ではHugoのRPMがないので、FedoraなどのRPMディストリを使っている人にインストールが困難かもしれません。
私の場合は色んなインストールの仕方(非公式RPM、snap、ソースコードからコンパイル)を検討したけど、なかなか最新バージョンを簡単にインストールする方法はありませんでした。調べていたときは何度もUbuntuでできるsudo apt-get install hugo
を「いいな〜」と思いました。
でもありがたいことに、結局答えが簡単でした。
実はHugoには必要とするライブラリがなく、単独のバイナリでできています。そのため、ダウンロードしたらバイナリファイルのディレクトリをPATH環境変数に通したらそのまま使えます。
ステップ1:ダウンロード
最初はHugoのリリースページから自分のシステムのファイルの最新バージョンをダウンロードします。私は64ビットのシステムでFedoraを使っているのでhugo_0.19_Linux-64bit.tar.gz
をダンロードしました。
ステップ2:ファイルを展開
次はダウンロードしたファイルを実行するディレクトリに展開します。インストールする場所としては、Hugoのインストールガイドが「/usr/local/bin
などの、すでにPATHの通っているディレクトリ」を勧めるけど、私はこういう手動的なインストールをホームディレクトリにするほうがいいと思っています。なぜなら、もし間違いをしたら自分のシステムを壊してしまう可能性が低くなるからです。
ここではホームディレクトリに「bin」というディレクトリにインストールするとします。他の場所にインストールするときは以下のコードに~/bin
をインストールするパスに変換してください。
インストールディレクトリがまだ存在しない場合は新しく作ります。
$ mkdir ~/bin
次はダウンロードしたHugoのtar.gzファイルのディレクトリを作りましょう。このようにしておけば、ディレクトリ構成がきれいに保ち、違うHugoバージョンに簡単に切り替えることができます。ここではディレクトリ名に「hugo_0.19」を使いますが。ダウンロードしたバージョンに合うように変えてください。
$ cd ~/bin
$ mkdir hugo_0.19
そしたらHugoのtar.gzファイルを展開します。私の場合は~/Downloads
に保存されていました。
$ tar -xzf ~/Downloads/hugo_0.19_Linux-64bit.tar.gz --directory=hugo_0.19
ステップ3:シンボリックリンクを作る
ステップ2の「tar」コマンドの結果はこのようなディレクトリ構成:
.
└── hugo_0.19
├── hugo
├── LICENSE.md
└── README.md
現段階では~/software/hugo_0.19/hugo
でHugoを実行することができますが、Hugoバージョンを更新するたびにコマンドが変わってしまいます。毎回同じコマンドでHugoを実行できるように、インストールするディレクトリからバイナリファイルへのシンボリックリンクを作りましょう。リンク名はHugoを実行するために入力するコマンドになるので、「hugo」にします。
$ ln -s hugo_0.19/hugo hugo
ここでhugo_0.19/hugo
を展開したバイナリファイルへのパスを変換してください。
ステップ4:パスに通す
ステップ3が終わったら~/bin/hugo
でHugoを実行できますが、hugo
だけで実行できたら便利ですよね。そうするには~/bin
ディレクトリをPATH環境変数に通す作業が必要です。(~/bin
以外の場所を選んだ場合は以下のコードで$HOME/bin
を変換してください。PATH環境変数では~
記号が使えないけど、ホームディレクトリへのショートカットとしては$HOME
が使えます。)
まずはPATHの値に~/bin
ディレクトリを追加します。
$ PATH=$PATH:$HOME/bin
そしてシステムが新しいPATHを使うように「export」で登録します。
$ export PATH
これのコマンドは今のセッションに十分ですが、再起動したらPATHがリセットされてしまいます。いつでもHugoを使えるようには、新しいセッションが始まるときにPATHを更新しないといけません。
ここで「.bashrc」が登場します。他のPATH更新のやり方もありますが、「.bashrc」がもっとも一般的です。お好みのエディターで~/.bashrc
を開いて、以上の2つのコマンドを追加します。(~/.bashrc
がない場合は新しく作ってください。)
PATH=$PATH:$HOME/bin
export PATH
Hugoの動作を確認しましょう。
$ hugo --help
このコマンドの結果はHugoのヘルプ画面であれば、インストールが成功しました。次はHugoのクイックスタートガイドを確認してウェブサイトを作りましょう!
ステップ5:Pygments(任意)
[EDIT] Hugo v0.28以上ではシンタックスハイライトがHugo自体に組み込まれているため、このステップを行う必要がなくなりました。
ウェブサイトにコンピュータコードを表示することがあれば、PygmentsをインストールしておいたらHugoが自動的にシンタックスハイライトをしてくれます。Pythonの「pip」パッケージマネージャーでインストールできます。
$ pip3 install --user Pygments
このコマンドにある--user
は現在のユーザのホームディレクトリにインストールするための引数です。pipでパッケージをシステム全体でインストールしたらシステムのパッケージマネージャとの衝突もあるかもしれないので、控えたほうがいいでしょう。
Hugoの更新
ステップ3で作ったシンボリックリンクのおかげで、Hugoを更新するには新しいバージョンをダウンロードし、展開し、リンク先を更新するだけです。
ここでは64ビットのHugo v0.20に更新することを想定して、ダウンロードディレクトリを~/Downloads
とします。
$ cd ~/bin
$ mkdir hugo_0.20
$ tar -xzf ~/Downloads/hugo_0.20_Linux-64bit.tar.gz --directory=hugo_0.20
$ ln -sf hugo_0.20/hugo hugo
もし必要であれば、古いバージョンを削除します。古いバージョンがv0.19と想定します。
$ rm -r hugo_0.19
FedoraのパッケージマネージャーでHugoをインストールすることができたら一番だと思いますが、そうなるまでに以上の方法でインストールするといいでしょう。どうぞHugoでウェブサイト作成を楽しんでください!