Server 在Julia上全局安装一个软件包

Server 在Julia上全局安装一个软件包,server,installation,julia,Server,Installation,Julia,我有一个新的Julia安装在一台机器上,我想用它作为实验室中不同人员的数字处理服务器。似乎有一个叫做jupyterhub的很好的软件包,它使Jupyter笔记本界面可以同时供不同的客户机使用。一个我再也找不到的网页开始建议“首先在全球范围内安装IJulia,然后安装JupyterHub…” 我似乎找不到一个全局安装一个软件包的好方法。Update 在Julia-v0.7+中,我们需要使用Julia_DEPOT_路径而不是Julia_PKGDIR,并且LOAD_路径如下所示: julia>

我有一个新的Julia安装在一台机器上,我想用它作为实验室中不同人员的数字处理服务器。似乎有一个叫做jupyterhub的很好的软件包,它使Jupyter笔记本界面可以同时供不同的客户机使用。一个我再也找不到的网页开始建议“首先在全球范围内安装IJulia,然后安装JupyterHub…”

我似乎找不到一个全局安装一个软件包的好方法。

Update 在Julia-v0.7+中,我们需要使用
Julia_DEPOT_路径
而不是
Julia_PKGDIR
,并且
LOAD_路径
如下所示:

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…”

我不知道这是不是真的,通过以下步骤,您可以在安装
Jupyterhub
后安装
IJulia

为每个用户在系统范围/全局范围内安装软件包 斯特凡·卡尔平斯基已经回答了这个问题。因此,我们需要的只是使用此方法安装
IJulia.jl

有一个名为LOAD_PATH的Julia变量,它被安排指向Julia安装下的两个系统目录。例如:

如果您在这两个目录中的任何一个下安装软件包,那么使用该目录的每个人都将看到它们。一种方法是以用户的身份运行julia,用户可以在shell中执行导出julia_PKGDIR=/opt/julia-0.3.3/usr/share/julia/site后写入这些目录。这样,Julia将使用它作为包目录,而普通的包命令将允许您为每个人安装包

让IJulia与Jupyterhub合作 为了让
IJulia
Jupyterhub
为所有用户相互协作,您应该将文件夹
your/user/.local/share/jupyter/kernels/julia/
复制到
/usr/local/share/jupyter/kernels/
。我写下我在测试中使用的一些步骤。代码很难看,但它可以工作

步骤:(成功安装Jupyterhub后) 请注意,您应该作为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
    s复制到
    /usr/local/share/jupyter/kernels/
    ,可由
    Jupyterhub
    添加的任何新用户使用:

    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/
    

  • 从jupyterhub的第91行开始,没有什么特别的,只需运行
    julia-e'Pkg.add(“IJulia”)
    No,这不起作用。它只为发出命令的用户安装。我想要一个IJulia安装,而不是每个用户都必须自己做。Julia是全球安装的allready,这很容易。但我并没有找到一种方法来为一个包实现这一点,特别是这个包必须与jupyter/jupyterhub交互。
    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/