opamとfish
環境
問題
opam
が掃き出す素の状態の~/.opam/opam-init/init.fish
をfish
でsource
すると、死ぬ。
詳細を書くと、
~/.opam/opam-init/init.fish
の中で~/.opam/opam-init/variable.fish
をsource
してるんだけど、この中の
set -gx PATH "/home/foo/.opam/system/bin" "$PATH"
の部分が問題で、$PATH
にダブルクオーテーションが付いていることが原因。
なので、
set -gx PATH "/home/foo/.opam/system/bin" $PATH
としてあげる必要がある。 恐らく同じ理由で
set -gx MANPATH "$MANPAT" "/home/foo/.opam/system/man"
も
set -gx MANPATH "/home/foo/.opam/system/man" $MANPATH
としてあげると良い。
追記
この問題はバージョン2には修正されるっぽい。 `opam init` breaks fish shell with configuration · Issue #2255 · ocaml/opam · GitHub
もし、Macでopam2
+fish
を利用たい場合、issueにも書いてあるけど、
$ brew install ocaml/ocaml/opam@2
とすれば入る。