超個人的な備忘録。
スパコン等(といっても千差万別なのでなんともですが)のrootがない環境でjuliaのreplとかを起動すると
ERROR: IOError: mkdir("XXX/.julia"; mode=0o777): permission denied (EACCES)
と出る場合があります。このときのXXX
は$HOME
であり、ここに権限がない状態で発生すると思われます。
この状態だとパッケージのインストールも出来ません。
どうやらjuliaではreplの立ち上げやパッケージインストール時に(デフォルトでは)$HOME/.julia
を参照するらしく、これがないと勝手に作ろうとするようです。
これがおそらくエラーの正体。
最も(雑だが)単純な回避方法はexport HOME=YYY
みたい自分の権限のある場所に変えてしまうことです(ただし、その結果$HOME
を参照している他のソフトに影響を与える可能性があります)。
もう少し「お行儀のよい」方法はhttps://docs.julialang.org/en/v1/manual/environment-variables/ を参考にjulia関係の環境変数を書き換えることです。
例えば
export JULIA_DEPOT_PATH=YYY
と指定すればこちらの環境では動きました(https://stackoverflow.com/questions/67794194/permissions-for-installing-packages-on-julia-in-slurm-cluster も見てみてください)。
replを起動するだけならjulia --startup-file=no --history-file=no
とすればエラーは出ません(がパッケージのインストールは依然として出来ません)。
とくにスパコン等ではログイン時の環境と計算の環境が異なる場合があることを忘れているとハマります(恥ずかしながら実体験)......
もちろん個人の環境に大きく依存する話なので、上記が当てはまらないケースもあるでしょうが、参考までに。