CentOS7上のhugoでGCCエラー

gccエラーでhugoが起動しない

* 本ページはプロモーションが含まれています

最新版のHugoをCentOS7へインストールしたところ、下記のエラーで起動不可になった

./hugo version
./hugo: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by ./hugo) ./hugo: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21’ not found (required by ./hugo)

GCCのバージョン確認 

# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19

CentOSのGCCバージョンは古いままのようです

解決方法 

  • 新しいGCCをソースからインストールすれば動作するかと思いますが、CentOS上のgcc依存関係が壊れる可能性もあるので、よほど詳しい方でない限りお勧めしません。
  • Hugoをソースからコンパイルビルド(こちらが安全)
    予め、CentOS7上に、golang+ gcc-c++ をインストールしておきます
    以前は、ソースからダウンロードする方式を明記してましたが、gitからそのまま持ってきたほうが楽そうです
$ vim from-gh.sh
mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install --tags extended

$ sh from-gh.sh

ビルドが無事終了したら、GOPATHで指定したフォルダ(指定しなければ、~/go/)内にhugoが生成されるので、

$ ~/go/bin/hugo version
hugo v0.82.0-DEV+extended linux/amd64 BuildDate=unknown

extendedの表記がある事が確認できればOKです。
ビルドに失敗するようであれば、CentOS7上でhugoのソースビルドエラー も参考にしてみてください。

  • 上記2項目でも不可の場合
    素直に、extendedが付いてないHugoをインストールしましょう。
    ただし、SASS/SCSS対応のテーマだと動作はしません。

ちなみに、最新版のubuntuやdebianでは何の手を入れることなくextended版で動作確認しました。

参考までに、Extended版の違いは、SASS/SCSSがサポートされているかの違いだけです。


See also