줄리아 파일을 include를 통해 상대주소로 접근하여 작성하다가 한계를 느껴서
로컬 패키징 하는 법을 알아보았다.
1. julia REPL에서 " ] " 눌러서 Pkg 모드로 진입.
2. (@v1.10) pkg> generate ./PkgName (PkgName은 사용자가 설정)
3. (@v1.10) pkg> dev ./PkgName (상대주소로 접근)
4. (@v1.10) pkg> activate ./PkgName (상대주소로 접근)
(@v1.10) -> (PkgName)으로 변경 되는걸 확인할 수 있다.
(PkgName) pkg>
아나콘다로 따지면 conda activate PkgName 과 비슷한 상태.
(추가 패키지 등록)
4.1. (PkgName) pkg> add another_Pkg
4.2. (PkgName) pkg> dev ./local/dir/another_Pkg2
PkgName.jl 에 쓰이는 다른 기본 패키지가 있으면 이렇게 추가를 해둬야한다.
예를 들어 PkgName에 LinearAlgebra 패키지를 쓰고있으면 다음과 같이 작성한다.
(PkgName) pkg> add LinearAlgebra
만약, LinearAlgebra 같이 공식 패키지가 아니라
개인이 만든 local 주소에 있는 로컬 패키지는 dev를 이용해서 추가한다.
(PkgName) pkg> dev ./src/MyPkgName
5. (PkgName) pkg> instantiate
위와 같은 절차로 패키지 등록을 해두면
로컬 줄리아 스크립트에서
include("./where/your/julia/script/PkgName") 이 아니라
바로
using PkgName으로 접근 가능하다.
(필요하면)
(패키지 내의 모듈들을 최신으로 업데이트 할 때)
5.1 (PkgName) pkg> update
5.2 (PkgName) pkg> instantiate
5.3 (PkgName) pkg> precompile
(패지키의 의존성을 업데이트 할 때)
5.1 (PkgName) pkg> resolve
5.2 (PkgName) pkg> instantiate
5.3 (PkgName) pkg> precompile
가끔 로컬 패키지들 끼리 의존성을 설치하고 instantiate 까지 했는데도 오류가 뜰 때가 있었다.
그건 Manifest.toml 가 업데이트 안 되었기 때문이다. 이럴 때는 update 를 통해 Manifest.toml을 한번 갱신한 후 instantiate 해주어야 한다.
(만약, 내가 만든 패키지를 삭제하고 싶으면)
6. (@v1.10) pkg> rm PkgName
감사합니다.
댓글