Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JuliaのプライベートなパッケージをGitHubで管理運用する

Posted at

前提

  • JuliaのProject環境で開発しているパッケージがある
  • そのパッケージのコード管理をGitHubのprivate repositoryで行っている

方法

環境変数の設定

  1. JuliaのPkg環境でgitのcliを使用するための設定
    shell
    export JULIA_PKG_USE_CLI_GIT=true
    
  2. GitHubのsshキーをJuliaの環境変数に登録
    shell
    export SSH_PUB_KEY_PATH=~/.ssh/key.pub
    export SSH_KEY_PATH=~/.ssh/key
    

この設定はシェルを立ち上る度に行わなくてはいけないため,以下のようにJuliaのstartupで設定するといいと思います.

  1. ~/.julia/config/startup.jlが無ければ作成する
    shell
    mkdir ~/.julia/config
    touch ~/.julia/config/startup.jl
    
  2. startup.jl内で環境変数を設定
    startup.jl
    function 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環境を用意して自作パッケージを追加してみましょう.

  1. Juliaを起動しProject環境を用意
    julia REPL
    julia> ]
    pkg> generate sample_prj
    pkg> activate sample_prj
    
  2. Project環境に自作パッケージを追加
    julia REPL
    pkg> add git@github.com:<Username>/<repository_name>.git
    

これでProject環境にGitHubから自作パッケージを追加できます.

うまくいかない場合

  • 環境変数が設定できていない
    • JuliaのREPLにてENVで環境変数の一覧を出力して確認
  • GitHubとのssh接続がうまくいっていない
    • Juliaの環境変数に指定したパスが正しいか確認
    • 指定したキーがGitHubのものか確認
    • そもそもgit cloneできるか確認
  • GitHubのrepositoryの中身がJuliaのProject環境と対応する形でない
    • repositoryの1層目にProject.tomlがあるか確認
    • src/<Module_name>.jlModuleが定義されているか確認

まとめ

以下の目的を持つ方には有益だと思います.

  • 自作パッケージを公式パッケージのようにしたくはないしpublic repositoryにもしたくなかったが,完全にローカルで管理するのも嫌だし公式パッケージのように扱いたい
  • 仲間内のみで自作パッケージを使いやすい形で共有したい
1
3
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

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?