2016-04-04 19 views
9

Chcę zmienić katalog paczek w Julia. Domyślną wartością jestZmień katalog paczek w Julia

"~/.julia/v0.4" 

Chcę ruch nim do /opt/julia/v0.4/. Idealnie chcę przenieść pakiety, które są już zainstalowane w ~/.julia/v0.4 do nowej lokalizacji. Ale jeśli to nie jest możliwe, mogę je zainstalować ponownie.

Co muszę zrobić?

+1

można uruchomić 'eksport JULIA_PKGDIR =/opt/Julia/v0.4' w łupinach, a następnie użyć' Pkg.init() 'aby zainicjować nowy system pakietów w nowym d i po prostu skopiuj i wklej te pakiety do nowej lokalizacji. – Gnimuc

+0

Spojrzałem w górę 'JULIA_PKGDIR' w [doc] (http://docs.julialang.org/en/release-0.4/stdlib/pkg/). Powinienem ustawić 'JULIA_PKGDIR =/opt/julia', ponieważ wersja zostanie automatycznie dołączona. Powinieneś opublikować odpowiedź. – becko

+0

@GnimucK. Zrobiłem to, ale złamałem notatnik Jupytera. Jak mogę ostrzec Juwatera o nowej lokalizacji? – becko

Odpowiedz

18

można zmienić katalogu pakietów Julia, wykonując następujące kroki:

  1. bieg export JULIA_PKGDIR=/your/directory w skorupkach (lub ręcznie dodać nową zmienną środowiskową JULIA_PKGDIR na oknach)
  2. bieg Pkg.init() w julia zainicjować nowy system pakietów
  3. skopiować REQUIRE od starego do nowego katalogu jednej
  4. metę Pkg.resolve() w julia

* skopiuj stary folder pakietu do nowego katalogu działa tylko w przypadku niektórych pakietów.

Aktualizacja

To będzie o wiele łatwiejsze, gdy Pkg3 jest zakończona. Więcej informacji na ten temat można znaleźć w artykule JuliaCon 2017 talk Stefana. tylko

+1

Jeśli masz IJulia, uruchom 'Pkg.build (" IJulia ")' after. – becko

1

Julia sposób:

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 

Jednak cache reż wciąż wskazując na starym folderze, więc sprawdziłem dlaczego tak jest i zorientowaliśmy się:

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" 

jako prostą funkcję:

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

Czy to ustawienie zostanie zachowane, jeśli ponownie uruchomię aplikację Julia? – becko

+0

Zmienna środowiskowa jest tylko tymczasowa, dlatego musiałaby wywoływać 'set_julia_dir' za każdym razem, gdy – lama12345

+0

gdzie mogę dokonać zmiany na stałe? – becko