Azure, JuliaPro & Pkg.add()

package-manager

#1

I’ve only used Julia on my own laptop until now. To have more power (and access to GPUs) I just got an account on Microsoft Azure, whose Data Science Virtual Machine includes JuliaPro.

But I don’t see how to add packages; even Pkg.update() gives errors. Perhaps this is not possible?

If so, is there a recommended way to proceed? Should I be trying to figure out docker containers?

Error messages:

julia> Pkg.add("Revise")
ERROR: SystemError (with /data/JuliaPro-0.6.0.1/JuliaPro/pkgs-0.6.0.1/.cache): mkdir: Permission denied
#systemerror#44 at ./error.jl:64 [inlined]
(::Base.#kw##systemerror)(::Array{Any,1}, ::Base.#systemerror, ::Symbol, ::Bool) at ./<missing>:0
mkdir(::String, ::UInt16) at ./file.jl:99
mkcachedir() at ./pkg/cache.jl:25

julia> versioninfo()
Julia Version 0.6.0
Commit 9036443 (2017-06-19 13:05 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, haswell)

julia> Pkg.update()
INFO: Updating METADATA...
ERROR: METADATA cannot be updated. Resolve problems manually in /data/JuliaPro-0.6.0.1/JuliaPro/pkgs-0.6.0.1/v0.6/METADATA.
GitError(Code:ERROR, Class:OS, Failed to create temporary file '/data/JuliaPro-0.6.0.1/JuliaPro/pkgs-0.6.0.1/v0.6/METADATA/.git/objects/pack/pack_git2_q4ZB89': Permission denied)
macro expansion at ./libgit2/error.jl:99 [inlined]
#fetch#41(::Base.LibGit2.FetchOptions, ::String, ::Function, ::Base.LibGit2.GitRemote, ::Array{AbstractString,1}) at ./libgit2/remote.jl:226

#2

You need to start JuliaPro REPL with sudo access on your DSVM; if you’re planning to perform any Pkg operations (Add, update & remove) in JuliaPro.

FYI:- The version of JuliaPro on your DSVM seems to be v0.6.0.1, due to version conflicts, Pkg might get an older version of Revise. I recommend upgrading to the latest stable version of JuliaPro i.e v0.6.2.2

JuliaPro v0.6.2.2 is available as a docker, more details regarding this can be found here . You can also use JuliaPro v0.6.2.2 AMI’s, AMI id’s of JuliaPro v0.6.2.2 AMI’s can be found here


#3

Ah right, thanks! Simply running sudo julia helps.

Now I get other errors from Pkg like below… perhaps related to what you mention, I will look into installing JuliaPro v0.6.2.2 next.

julia> Pkg.update()
INFO: Updating METADATA...
INFO: Computing changes...
ERROR: fixed packages introduce conflicting requirements for BinDeps: 
       available versions are 0.0.1, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.2.9, 0.2.10, 0.2.11, 0.2.12, 0.2.13, 0.2.14, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.3.13, 0.3.14, 0.3.15, 0.3.16, 0.3.17, 0.3.18, 0.3.19, 0.3.20, 0.3.21, 0.3.22, 0.3.23, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.7, 0.5.0, 0.6.0, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6 and 0.8.7
Stacktrace:
 [1] check_requirements(::

#4

I didn’t see the JuliaPro docker image, so we created our own :sweat_smile:

We successfully deployed Julia as a microservice to both Azure Service Fabric and Kubernetes but went with ASF in the end. We’ll try to create a MWE and open source it at some point when time permits. Feel free to reach out with any questions and I’ll see if my devs can help :blush: