page_adsence

2019年8月20日火曜日

cargo newしたらエラーが出て困った(原因は全く別のことだった)件

会社で使っているMacにRustを入れて勉強しようと思ったら、cargo newで詰まったので、その時のメモ。
ちなみに会社のMacに入れる前に、自宅で使っているMacにも同じことをしたのですが、エラーが出たのは会社のMacだけでした。
Rustのインストールはrustupを使ってインストールしました。本件には関係ないのでインストール方法は割愛します。

  1. 適当なディレクトリへ移動
    $ cd /Users/your-username/example-dir
    
  2. cargo new コマンドを実行すると、下記の様なエラーが発生する
    $ cargo new sample
    error: Failed to create package `sample` at `/Users/your-username/example-dir/sample`
    
    Caused by:
      could not find '$HOME/.git_template/' to stat: No such file or directory; class=Os (2); code=NotFound (-3)
    

これでなぜエラーになるのか、全然分かりませんでした。
自宅のMacではうまく行っていたので、rustup自体のバグというのは考えにくい。
とりあえずエラーが出ているgit init.templatedirをコメントアウトしてみることにしました。

$ vi ~/.gitconfig

[init]
    # templatedir = $HOME/.git_template <- この行をコメントアウトした

この状態でcargo newしたら動いたー。
git_templateの設定周りの不備だということは分かったのですが、そこから先が長かったです・・・。
エラーメッセージをコピってググってもそれらしい記事が出てこず・・・。

ふと気づいたのが、そもそもgit_templateをはるか昔に設定してみたけど、一度も使っていない。
そして当時動作確認をしたかどうかすら記憶にない。

ということで、もう一回gitの設定を見直してみました。
ちょっとググると、$HOMEなんて設定している記事が一つも出てきませんでした。

早速 .gitconfig のファイルを編集してみた。

$ vi ~/.gitconfig

[init]
    templatedir = ~/.git_template

そして、cargo newコマンドを実行したら

$ cargo new sample
   Created binary (application) `sample` package

ちゃんと動きました!