前提
- JuliaのProject環境で開発しているパッケージがある
- そのパッケージのコード管理をGitHubのprivate repositoryで行っている
方法
環境変数の設定
- JuliaのPkg環境でgitのcliを使用するための設定
shell
export JULIA_PKG_USE_CLI_GIT=true
- GitHubのsshキーをJuliaの環境変数に登録
shell
export SSH_PUB_KEY_PATH=~/.ssh/key.pub export SSH_KEY_PATH=~/.ssh/key
この設定はシェルを立ち上る度に行わなくてはいけないため,以下のようにJuliaのstartupで設定するといいと思います.
-
~/.julia/config/startup.jl
が無ければ作成するshellmkdir ~/.julia/config touch ~/.julia/config/startup.jl
-
startup.jl
内で環境変数を設定startup.jlfunction set_env() ENV["JULIA_PKG_USE_CLI_GIT"] = true ENV["SSH_PUB_KEY_PATH"] = "~/.ssh/key.pub" ENV["SSH_KEY_PATH"] = "~/.ssh/key" end set_env()
こうすることで,シェルでJuliaを起動する際にstartup.jl
が実行され,環境変数が設定されるようになります.
自作パッケージを読み込む
環境変数が設定できればあとは動かすだけです.
試しにサンプルのProject環境を用意して自作パッケージを追加してみましょう.
- Juliaを起動しProject環境を用意
julia REPL
julia> ] pkg> generate sample_prj pkg> activate sample_prj
- Project環境に自作パッケージを追加
julia REPL
pkg> add git@github.com:<Username>/<repository_name>.git
これでProject環境にGitHubから自作パッケージを追加できます.
うまくいかない場合
- 環境変数が設定できていない
- JuliaのREPLにて
ENV
で環境変数の一覧を出力して確認
- JuliaのREPLにて
- GitHubとのssh接続がうまくいっていない
- Juliaの環境変数に指定したパスが正しいか確認
- 指定したキーがGitHubのものか確認
- そもそもgit cloneできるか確認
- GitHubのrepositoryの中身がJuliaのProject環境と対応する形でない
- repositoryの1層目に
Project.toml
があるか確認 -
src/<Module_name>.jl
でModule
が定義されているか確認
- repositoryの1層目に
まとめ
以下の目的を持つ方には有益だと思います.
- 自作パッケージを公式パッケージのようにしたくはないしpublic repositoryにもしたくなかったが,完全にローカルで管理するのも嫌だし公式パッケージのように扱いたい
- 仲間内のみで自作パッケージを使いやすい形で共有したい