我在一台机器上安装了一个新的Julia安装程序,我希望将其用作实验室中各种人员的数字运算服务器。似乎有一个名为jupyterhub的漂亮包,它使得Jupyter Notebook界面可以同时为各种客户提供服务。我再也找不到的网页开始提示“首先在全球安装IJulia,然后安装JupyterHub ......”
我似乎无法找到一种在全球范围内安装ONE软件包的好方法。
答案 0 :(得分:8)
在Julia-v0.7 +中,我们需要使用JULIA_DEPOT_PATH
代替JULIA_PKGDIR
而LOAD_PATH
看起来像这样:
julia> LOAD_PATH
3-element Array{Any,1}:
Base.CurrentEnv()
Any[Base.NamedEnv("v0.7.0"), Base.NamedEnv("v0.7"), Base.NamedEnv("v0"), Base.NamedEnv("default"), Base.NamedEnv("v0.7", create=true)]
"/Users/gnimuc/Codes/julia/usr/share/julia/stdlib/v0.7"
“首先在全球安装IJulia,然后安装JupyterHub ......”
我不知道这是否属实,通过执行以下步骤,您可以在安装IJulia
后安装Jupyterhub
。
Stefan Karpinski已经回答了这个问题here。所以我们需要的只是使用这种方法来安装IJulia.jl
包。
有一个名为LOAD_PATH的Julia变量,它被安排指向你的julia安装下的两个系统目录。 E.g:
julia> LOAD_PATH
2-element Array{Union(ASCIIString,UTF8String),1}:
"/opt/julia-0.3.3/usr/local/share/julia/site/v0.3"
"/opt/julia-0.3.3/usr/share/julia/site/v0.3"
如果您在其中任何一个目录下安装软件包,那么使用该Julia的每个人都会看到它们。一种方法是将julia作为用户在shell中执行
export JULIA_PKGDIR=/opt/julia-0.3.3/usr/share/julia/site
后写入这些目录。这样Julia会使用它作为它的包目录,而正常的包命令将允许你为每个人安装包....
为了让IJulia
和Jupyterhub
为所有用户互相合作,您应该将文件夹your/user/.local/share/jupyter/kernels/julia/
复制到/usr/local/share/jupyter/kernels/
。我写下了我在测试Dockerfile中使用的一些步骤。代码很难看,但它确实有效。
请注意,您应该以root身份执行以下步骤,并假设您的julia已全局安装在/opt/julia_0.4.0/
。
制作我们的全球套餐目录并设置JULIA_PKGDIR
:
mkdir /opt/global-packages
echo 'push!(LOAD_PATH, "/opt/global-packages/.julia/v0.4/")' >> /opt/julia_0.4.0/etc/julia/juliarc.jl
export JULIA_PKGDIR=/opt/global-packages/.julia/
使用包管理器安装“IJulia”:
julia -e 'Pkg.init()'
julia -e 'Pkg.add("IJulia")'
将kernelspec
复制到/usr/local/share/jupyter/kernels/
,Jupyterhub
添加的任何新用户都可以使用<{1}}:
jupyter kernelspec list
cd /usr/local/share/ && mkdir -p jupyter/kernels/
cp -r /home/your-user-name/.local/share/jupyter/kernels/julia-0.4-your-julia-version /usr/local/share/jupyter/kernels/