在没有互联网连接的情况下使用julia语言(镜像?)

在没有互联网连接的情况下使用julia语言(镜像?),julia,mirror,Julia,Mirror,问题: 我想让julia在我们的公司网络上为我们的开发人员提供服务,由于敏感数据,公司网络根本没有互联网接入(没有代理) 据我所知,julia是为使用github而设计的。 例如,julia>Pkg.init()尝试访问: git://github.com/JuliaLang/METADATA.jl 示例: 我通过创建一个本地CRAN存储库(rsync)并设置一个本地Web服务器,为R解决了这个问题。 我还通过创建本地PyPi存储库(bandersnatch)+Web服务器,以同样的方式解决了p

问题: 我想让julia在我们的公司网络上为我们的开发人员提供服务,由于敏感数据,公司网络根本没有互联网接入(没有代理)

据我所知,julia是为使用github而设计的。 例如,julia>Pkg.init()尝试访问: git://github.com/JuliaLang/METADATA.jl

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

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

先谢谢你。
Roman

是的,使用Julia软件包管理器的好处之一是,您应该能够将元数据转移到任何您想要的地方(并保留一个分支,您可以在允许客户端更新之前实际检查新软件包)。您可能是第一批真正建立这样一个系统的人之一,因此您需要提交一些问题(或者更好的是,请求),以便使一切工作顺利进行

请参阅指定元数据repo URL的附加参数


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

这就是我用第二个建议(目前)解决问题的方法 ivarne。我使用两层设置,两个网络一个连接到internet(办公网络),一个气隙网络(开发网络)

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

第一层(办公网络)

  • 在NFS共享上安装了julia,
    /sharename/local/julia
  • 软链接到
    /sharename/local/bin/julia
    /sharename/local/julia/bin/julia
  • 使用
    /etc/profile.d/scriptname.sh中的脚本将
    /sharename/local/bin/
    附加到
    $PATH
  • 在所有办公网络计算机上创建了
    /etc/gitconfig
    [url“https://”]insteadOf=git://
    (用github解决代理服务器问题)
  • 现在办公网络上的每个用户都可以简单地运行
    #julia
  • Pkg.add(“PackageName”)
    然后用于安装各种软件包
这两个网络定期连接(使用特定的安全措施ssh、防火墙、路由),以便在短时间内进行自动数据交换

第二层(发展网络)

  • NFS共享上安装的julia与第一层相同
  • 当网络连接时,我使用带有
    rsync-avz--delete
    的shell脚本为每个用户将第一层的
    .julia
    目录同步到第二层
结论(到目前为止): 它似乎运行得相当好。
正如ivarne所指出的,如果在第一层上安装了一个包,并且完成了文件复制(编译?)以外的操作,那么该包将不会在第二层上运行。但是这个问题可以通过Pkg.build(“Pkgname”)解决

谢谢您的回复。据我所知,使用~/.julia目录,我可以使用Pkg.add(“Packagename”)在第一层(internet)上安装软件包。将其移动到第二层(无互联网),将JULIA_PKGDIR环境变量设置为指向.JULIA。我必须测试一下。关于第一个选项,我将元数据克隆到本地目录。我可以用JULIA_PKGDIR来指出它。但这只是包元数据,当我实际添加包时,所有内容都必须从github下载。最理想的情况是,如果我能创建一个包含avery东西的回购协议,比如CRAN 100GB的镜子。嗨,你写这篇文章已经四年了。上述工作流程是否仍然适用于您,或者您是否推荐其他工作流程?