如何为所有用户创建一个共享的 julia 环境?

How to create a shared julia environment for all users?

环境: CentOS 7 64 位

a) 创建系统用户 ds:

useradd -r -s /sbin/nologin ds

b) 下载 julia 可执行文件 tar 并提取到 /opt/julia:

tar -xvf "/tmp/downloads/julia/julia-1.3.1-linux-x86_64.tar.gz" -C "/opt/julia"

c) 使 ds 成为 /opt/julia 及其子文件夹的文件夹和文件的所有者:

chown -R "ds:ds" "/opt/julia"

我想为所有用户设置共享的 julia 环境。

请指导我在所有用户的共享环境中设置以下内容:

a) history
b) JULIA_HOME
c) JULIA_LOAD_PATH
d) JULIA_DEPOT_PATH
e) JULIA_PKG_DEVDIR
f) JULIA_PROJECT
g) PATH
h) security

注意:此提议的解决方案对 Ubuntu 有效。 CentOS的路径可能不一样,但是过程应该是一样的。

我最终针对类似情况的解决方案是仅共享 Julia 二进制文件(那些从 Julialang.org 下载的)在 /lib/julia-1.x/ 中扩展它们(在 /lib/julia.x/bin/julia 中使用符号链接/bin) 并让每个用户拥有自己的 ~/.julia 文件夹。

通过这种方式,您可以避免全局包存储库与本地包版本不兼容的混乱局面。

如果您通过此配置,您可以向 /usr/local/sbin/adduser.local 添加一个脚本,该脚本将在您使用 adduser 添加新用户时随时执行。

比如我加了:

su -c "julia /usr/bin/initJuliaRepository.jl" 依次为每个用户预安装一组常用软件包:

import Pkg

Pkg.update()
Pkg.add("IJulia")
Pkg.add("DataFrames")
Pkg.add("Plots")
Pkg.build("IJulia")