2016-04-04 8 views
9

Ich möchte das Paketverzeichnis in Julia ändern. Der Standardwert istÄndern Sie das Paketverzeichnis in Julia

"~/.julia/v0.4" 

Ich möchte bewegen es /opt/julia/v0.4/. Idealerweise möchte ich die Pakete, die bereits in ~/.julia/v0.4 installiert sind, an den neuen Speicherort verschieben. Aber wenn das nicht möglich ist, kann ich sie neu installieren.

Was muss ich tun?

+1

Sie können 'Export JULIA_PKGDIR =/opt/julia/v0.4' in Shell ausführen, verwenden Sie dann' Pkg.init() 'ein neues Verpackungssystem in der neuen d zu initialisieren Verzeichnis und kopieren und fügen Sie diese Pakete einfach an den neuen Speicherort ein. – Gnimuc

+0

Ich schaute 'JULIA_PKGDIR' in der [doc] (http://docs.julaulang.org/en/release-0.4/stdlib/pkg/). Ich sollte einfach 'JULIA_PKGDIR =/opt/julia' einstellen, da die Version automatisch angehängt wird. Sie sollten eine Antwort posten. – becko

+0

@GnimucK. Ich habe das gemacht, aber es hat das Jupyter Notebook kaputt gemacht. Wie kann ich Jupyter auf den neuen Standort aufmerksam machen? – becko

Antwort

18

man kann Julias Paketverzeichnis ändern, indem die folgenden Schritte:

  1. run export JULIA_PKGDIR=/your/directory in der Schale
  2. Lauf Pkg.init() in Julia (oder manuell eine neue Umgebungsvariable JULIA_PKGDIR auf Fenster hinzuzufügen) ein neues Verpackungssystem zu initialisieren,
  3. kopieren REQUIRE aus altem Verzeichnis in den neuen
  4. Laufe Pkg.resolve() in julia

* Kopieren Sie den alten Paketordner in das neue Verzeichnis nur für einige Pakete.

aktualisieren

Es wird viel einfacher sein, wenn die Pkg3 beendet ist. Weitere Informationen finden Sie in Stefans JuliaCon 2017 talk.

+1

Wenn Sie IJulia haben, führen Sie 'Pkg.build (" IJulia ")' nach. – becko

1

Julia einzige Weg:

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 

Allerdings ist der Cache dir zeigen noch auf den alten Ordner, so überprüfte ich, warum das so ist und es herausgefunden:

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" 

Als einfache Funktion:

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

Wird diese Einstellung beibehalten, wenn ich Julia neu starte? – becko

+0

Die Umgebungsvariable ist nur temporär, müsste also 'set_julia_dir' jedes Mal aufrufen – lama12345

+0

wo kann ich die Änderung dauerhaft machen? – becko