使用julia语言没有互联网连接(镜像?)

时间:2015-01-14 10:28:21

标签: julia mirror

问题: 我想在我们的企业网络上为我们的开发人员提供julia,由于敏感数据,该网络根本没有互联网接入(无代理)。

据我所知,julia旨在使用github。 例如julia> Pkg.init()尝试访问: GIT中://github.com/JuliaLang/METADATA.jl

示例: 我通过创建本地CRAN存储库(rsync)并设置本地Web服务器来解决R的这个问题。 我也通过创建本地PyPi存储库(bandersnatch)+ webserver以同样的方式解决了python的这个问题。

问题: 有没有办法为julia创建元数据和包的本地存储库?

提前谢谢你。 罗马

2 个答案:

答案 0 :(得分:8)

是的,使用Julia软件包管理器的好处之一是您应该能够分叉METADATA并在任何您喜欢的地方托管它(并保留一个分支,您可以在允许客户端更新之前实际检查新软件包)。你可能是第一批真正建立这样一个系统的人之一,所以期望你需要提交一些问题(或者更好的是拉动请求),以便让一切顺利进行。

请参阅指定METADATA repo URL的Pkg.init()的额外参数。

如果您想要一个更简单的管理解决方案,我还会考虑在一个系统(连接到Internet)上安装软件包的两层设置,然后将生成的~/.julia目录复制到受限制的系统。如果您使用的软件包具有二进制依赖性,如果您没有双方的类似系统,或者某些依赖项是全局安装的,则可能会遇到问题,但Pkg.build("Pkgname")可能会有所帮助。

答案 1 :(得分:2)

这是我解决它(现在),使用第二个建议 ivarne 。我使用两层设置,两个网络连接到互联网(办公网络),一个空气网络(开发网络)。

系统信息: openSuSE-13.1(两个网络),julia-0.3.5(两个网络)

第一层(办公室网络)

  • 在NFS共享上安装了julia /sharename/local/julia
  • 软关联/sharename/local/bin/julia/sharename/local/julia/bin/julia
  • 使用/sharename/local/bin/
  • 中的脚本将$PATH附加到/etc/profile.d/scriptname.sh
  • 在所有办公网络计算机上创建/etc/gitconfig[url "https://"] insteadOf = git://(用github解决代理服务器问题)
  • 现在办公室网络上的每个用户都可以只运行# julia
  • Pkg.add("PackageName")随后用于安装各种软件包。

两个网络定期连接(具有某些安全措施ssh,防火墙,路由),可在短时间内自动进行数据交换。

第二层(开发网络)

  • 在NFS共享上安装julia等于第一层。
  • 当网络连接时,我使用带有rsync -avz --delete的shell脚本,为每个用户同步第一层的.julia目录。

结论(到目前为止): 它似乎工作得相当好。 正如 ivarne 建议如果安装了一个软件包并且在第一层上完成(编译?)文件复制不仅仅是一些问题,那么软件包将不会在第二层运行。但这可以通过Pkg.build("Pkgname")来解决。