2016-04-04 11 views
9

Julia dizinindeki Paket dizinini değiştirmek istiyorum. VarsayılanJulia içinde Paket dizinini değiştir

"~/.julia/v0.4" 

istediğim o hareket için /opt/julia/v0.4/ etmektir. İdeal olarak, ~/.julia/v0.4'da yüklü olan paketleri yeni konuma taşımak istiyorum. Ancak bu mümkün değilse onları yeniden yükleyebilirim.

Ne yapmam gerekiyor?

+1

kabuktaki, daha sonra yeni d yeni bir paket sistemi başlatmak için 'Pkg.init() 'kullanmak' verme JULIA_PKGDIR =/opt/julia/v0.4' çalışabilir Sadece, bu paketleri yeni yere kopyala ve yapıştır. – Gnimuc

+0

[doc] 'da (JULIA_PKGDIR) yukarı baktım (http://docs.julialang.org/en/release-0.4/stdlib/pkg/). Sürüm otomatik olarak ekleneceğinden, 'JULIA_PKGDIR =/opt/julia' ayarlamam gerekiyor. Cevap vermelisin. – becko

+0

@GnimucK. Bunu yaptım ama Jupyter defterini kırdı. Jupyter’in yeni yerinden nasıl haberdar edebilirim? – becko

cevap

18

biri aşağıdaki adımları izleyerek Julia'nın paket dizini değiştirebilirsiniz: kabuğunda

  1. koşmak export JULIA_PKGDIR=/your/directory yeni bir paket sistemini başlatmak için Julia içinde
  2. koşmak Pkg.init() (veya el pencerelerde yeni bir ortam değişkeni JULIA_PKGDIR ekleyin)
  3. Julia yeni bir
  4. vadede Pkg.resolve() eski dizinden REQUIRE kopyalamak

* Eski paket klasörünü yeni dizine kopyala, yalnızca bazı paketler için çalışır.

Güncelleme

O Pkg3 bittiğinde çok daha kolay olacaktır. Daha fazla bilgi için Stefan'ın JuliaCon 2017 talk'a da bakınız.

+1

IJulia'ya sahipseniz, 'Pkg.build ("IJulia") 'yi çalıştırın. – becko

1

Julia tek yol:

julia> ENV["JULIA_PKGDIR"] = "E:\\Julia-0.6.0\\portable" 
"E:\\Julia-0.6.0\\portable" 

julia> ENV["JULIA_PKGDIR"] 
"E:\\Julia-0.6.0\\portable" 

julia> Pkg.init() 
INFO: Initializing package repository E:\Julia-0.6.0\portable\v0.6 
INFO: Cloning METADATA from https://github.com/JuliaLang/METADATA.jl 

Ancak önbellek dir hala eski klasöre işaret ediyor, bu yüzden bu yüzden kontrol edilip bunu anladım:

julia> Base.LOAD_CACHE_PATH 
1-element Array{String,1}: 
"C:\\Users\\kung\\.julia\\lib\\v0.6" 

julia> Pkg.__init__() 
2-element Array{String,1}: 
"E:\\Julia-0.6.0\\portable\\lib\\v0.6" 
"C:\\Users\\kung\\.julia\\lib\\v0.6" 

julia> pop!(Base.LOAD_CACHE_PATH) 
"C:\\Users\\kung\\.julia\\lib\\v0.6" 

julia> Base.LOAD_CACHE_PATH 
1-element Array{String,1}: 
"E:\\Julia-0.6.0\\portable\\lib\\v0.6" 

kadar basit işlevi:

function set_julia_dir(dir::String) 
    ENV["JULIA_PKGDIR"] = dir 
    Pkg.init() 
    Pkg.__init__() 
    pop!(Base.LOAD_CACHE_PATH) 
end 

set_julia_dir("E:\\Julia-0.6.0\\portable") 
+0

Julia'yı yeniden başlattığımda bu ayar korunacak mı? – becko

+0

Ortam değişkeni sadece geçicidir, bu nedenle 'set_julia_dir' her zaman – lama12345

+0

numaralı telefonu aramalıyım. – becko