LoginSignup
1
0

More than 3 years have passed since last update.

`~/.stack`のシンボリックリンク先を変えたらおかしくなった

Last updated at Posted at 2020-06-05

環境

~/.stackをdotfileで管理しており、それをGithubで管理しています。
gitレポジトリの管理にはghqを使用しています。

問題

ghqのアップデートによって、デフォルトのパスが~/.ghqから~/ghqに変わりました(隠しディレクトリではなくなった)。
それに応じてdotfileから出しているシンボリックリンクもパスを変更したのですが、その後stackがうまく動かなくなりました。

$ stack build
Found an invalid compiler at "/Users/me/ghq/github.com/Cj-bc/dotfiles/dotfiles/stack/programs/x86_64-osx/ghc-8.6.5/bin/ghc-8.6.5": Received ExitFailure 126 when running
Raw command: /Users/me/ghq/github.com/Cj-bc/dotfiles/dotfiles/stack/programs/x86_64-osx/ghc-8.6.5/bin/ghc-8.6.5 --info
Standard error:

/Users/me/ghq/github.com/Cj-bc/dotfiles/dotfiles/stack/programs/x86_64-osx/ghc-8.6.5/bin/ghc-8.6.5: line 9: /Users/me/.ghq/github.com/Cj-bc/dotfiles/dotfiles/stack/programs/x86_64-osx/ghc-8.6.5/lib/ghc-8.6.5/bin/ghc: No such file or directory
/Users/me/ghq/github.com/Cj-bc/dotfiles/dotfiles/stack/programs/x86_64-osx/ghc-8.6.5/bin/ghc-8.6.5: line 9: exec: /Users/me/.ghq/github.com/Cj-bc/dotfiles/dotfiles/stack/programs/x86_64-osx/ghc-8.6.5/lib/ghc-8.6.5/bin/ghc: cannot execute: No such file or directory

解決策

パスは変えたはずなのですが、依然どこかで~/.ghq以下を参照しているようです。

1. ghcを再ビルドさせる

$ rm -rf ~/.stack/programs/x86_64-osx/*

2. snapshotsを削除する

パッケージのファイルが足りないと言われるので、~/.stack/snapshots/を削除します。

There are files missing in the 'lens-4.17.1' package,
try running 'ghc-pkg check'.

この時、ghc-pkg checkをしても何も出力されません。stack exec ghc-pkg checkを実行してください。

ack -l '.ghq' | xargs -L1 gsed -i "s/\.ghq/ghq/g"等で置換をこころみましたが、別の問題が発生したので素直にsnapshot消しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0