GitHub Actionsでperl: warning: Setting locale failed対策

みんな大好きGithub Actions。

当ブログでも、記事をアップすると自動でActionsがHUGOでビルドして、それをサーバにプッシュしているわけだが。

ある日、何気なくデプロイを見守っていると、ふと見慣れないエラーが出ていることを発見したのでメモ。

 

xserverでは問題無いのだが、conoha wingやmixhostにrsyncしていると表示される。

こういうやつ。

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

まぁ要はアップ先と言語ロケールが違うやんけ!って怒られているわけだが、エラーではなく単なるwarningなので、rsync自体はそのまま正常に終わる。

 

実際何かブログ上で問題が起きているかっていうと、特に不具合は無いように見えるんだが、このままにしておくのも気持ち悪いので、ちょっと調べてみる。

 

んで、大体は下記のいずれかで直るようだ。

sudo apt install locales-all

https://qiita.com/suzuki-navi/items/b5f066db181092543854

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

http://fukuzawalab.com/blog/archives/18

PERL_BADLANG=0
export PERL_BADLANG

https://blog.kuruten.jp/php/125598

 

なお、上記のうち最後のはあまり推奨されない様子。

 

最初はUbuntuのセットアップがされた後に、コマンドをrun設定に記述してみたのだが、なぜかワーニングが消えない。というか上記どれも効かない。

どうも試してみるに、rsyncが走る時に同時に実行されている必要がある感じ。

 

ってことでぶっちゃけこの辺りの挙動はあまり詳しくないので、しゃらくせぇ!ってことで上記を全部アンパサンドでrsyncのコマンドに繋いで実行してみたら、無事(?)warningがキレイに消えた。

 

それにしてもなんでxserverは平気なんだろう。nginx+apache構成に起因しているんだろうか。

 

***
comments powered by Disqus