https://mp.weixin.qq.com/s/DyegFcNEjieJspc_3B5G6w
Julia PkgServer 镜像服务
原创 Johnny Chen JuliaCN 昨天

长久以来,受国内网络环境影响,困扰国内 Julia 用户的问题之一便是如何稳定地安装包。最近我们在 BFSU 北外开源镜像站搭建了 PkgServer 镜像服务,该服务有望极大地缓解以往国内用户安装包过程中遇到的网络问题。(更多信息可以点击页面底部的阅读原文前往社区查看)

Julia 镜像使用帮助

BFSU 目前提供了 Julia 的官方包注册表 General 镜像来加速 Julia 包的安装。BFSU 同时也提供了 Julia 二进制程序的镜像,关于其使用请参考 Julia Releases.

注:本镜像的使用需要 Julia v1.4.0 或更新的版本。
使用方式

只需要设置环境变量 JULIA_PKG_SERVER 即可切换镜像。若成功切换镜像,则能通过 versioninfo() 查询到相关信息,例如:

julia> versioninfo()
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel® Core™ i7-6800K CPU @ 3.40GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, broadwell)
Environment:
JULIA_PKG_SERVER = https://mirrors.bfsu.edu.cn/julia/static

若不设置该环境变量则默认使用官方服务器 pkg.julialang.org 作为上游。
临时使用

不同系统和命令行下设置环境变量的方式各不相同,在命令行下可以通过以下方式来临时修改环境变量

Linux Bash: export JULIA_PKG_SERVER=https://mirrors.bfsu.edu.cn/julia/staticWindows Powershell: $env:JULIA_PKG_SERVER = 'https://mirrors.bfsu.edu.cn/julia/static'

也可以利用 JuliaCN 社区维护的中文本地化工具包 JuliaZH 来进行切换:

using JuliaZH # 在 using 时会自动切换到国内的镜像站
JuliaZH.set_mirror(“BFSU”) # 也可以选择手动切换到 BFSU 镜像
JuliaZH.mirrors # 查询记录的上游信息

永久使用

不同系统和命令行下永久设定环境变量的方式也不相同,例如 Linux Bash 下可以通过修改 ~/.bashrc 文件实现该目的:

~/.bashrc

export JULIA_PKG_SERVER=https://mirrors.bfsu.edu.cn/julia/static

此外,这里再提供一种针对 Julia 的全平台通用的方式:$JULIA_DEPOT_PATH/config/startup.jl ( 默认为 ~/.julia/config/startup.jl ) 文件定义了每次启动 Julia 时都会执行的命令,编辑该文件,添加以下内容即可:

~/.julia/config/startup.jl

ENV[“JULIA_PKG_SERVER”] = “https://mirrors.bfsu.edu.cn/julia/static”

也可以选择使用 JuliaZH 来一键修改/创建 startup.jl 文件:

以 BFSU 镜像站为例

julia> JuliaZH.generate_startup(“default”)
┌ Info: 添加 PkgServer
│ 服务器地址 = “https://pkg.julialang.org”
└ 配置文件 = “/root/.julia/config”

julia> JuliaZH.generate_startup(“BFSU”)
┌ Info: 更新 PkgServer
│ 原服务器地址 = “https://pkg.julialang.org”
│ 新服务器地址 = “https://mirrors.bfsu.edu.cn/julia/static”
└ 配置文件 = “/root/.julia/config”

若要临时禁止,可以通过 julia --startup-file=no 来取消执行 startup.jl 文件。
常见问题
为什么有些包的下载还是很慢?

有两类数据不会被镜像:

在 deps/build.jl 文件中硬编码的下载地址,例如 GR.在 Artifacts.toml 中没有给出 download 项的资源, 例如 TestImages.

在安装包含这两类数据的包时,其数据依然是从原始地址进行下载,因此若网络不稳定则可能会在 build 阶段报错。
为什么注册表还是从原地址下载?

Julia v1.4.0 之前的版本采用的是 git clone 的方式拉取注册表,所以为了保持兼容性,即使设置上游镜像也依然会通过 git 来进行更新。

以 General 为例,可以通过删除 $JULIA_DEPOT_PATH/registries/General(默认为 ~/.julia/registries/General) 文件夹来重置,从而在下次更新时从镜像站拉取一份新的 General. 但是这样一来,在旧版本 Julia 中就无法对注册表进行更新, 因此最好需要根据自己的使用场景来权衡。
为什么有些包还是从原地址下载?

镜像站只镜像注册表中记录的包,因此如果某些包是通过指定 URL 的方式来安装的话,那么该包的更新不会从镜像站进行下载。这常见于那些还未注册的包及其版本,例如:

]add Flux#master
]add https://github.com/FluxML/Flux.jl.git
Pkg.add(PackageSpec(url=“https://github.com/FluxML/Flux.jl.git”))

Julia 二进制安装程序

Julia 是一个全新的以科学计算为核心的通用编程语言,其二进制程序可以到 https://mirrors.bfsu.edu.cn/julia-releases/bin/ 下载。

这里仅镜像 JuliaLang Downloads 中提供的稳定发行版以及 rc 版本。每日构建的测试版 (nightlies) 以及 Juno/Julia Pro等 IDE 版本不包括在内。

尽管一些包管理工具(例如 apt, pacman, conda, choco) 中提供有 Julia,但是这些工具或多或少都存在一些由二进制 依赖导致的问题,因此官方推荐的方式是根据自己的使用平台下载相应的二进制程序,然后通过解压的方式进行手动安装。
Julia 一键安装

对于习惯命令行的用户而言,jill.py https://github.com/johnnychen94/jill.py 是一个社区维护的全平台下一键安装 Julia 的命令行工具。

安装/更新 jill: pip install jill --user -U (需要 Python 3.6 或更新的版本)

安装 Julia:jill install [VERSION] [--upstream UPSTREAM] [--confirm]jill install:最新的 x.y.z 版本jill install --confirm:无需交互确认直接安装jill install --upstream BFSU:从北外镜像下载并安装jill install 1.4:安装最新的 1.4.z 版本查询现存的上游镜像:jill upstream帮助文档:jill [COMMAND] --helpjill --help:查询存在的 jill 命令jill install --help:查询 install 命令的使用方式

利用 jill 安装完成后即可通过在命令行执行 julia/julia-1/julia-1.4 来启动不同版本的 Julia.
阅读原文

(转)Julia PkgServer 镜像服务相关推荐

  1. OpenStack-MitakaCentos7.2双节点搭建--(三)Glance(镜像服务)

    一.数据库配置 1.创建 glance 数据库: CREATE DATABASE glance; 2.对glance数据库授予恰当的权限: GRANT ALL PRIVILEGES ON glance ...

  2. OpenStack(Kilo版本)镜像服务glance的安装部署

    OpenStack镜像服务(glance)允许用户发现.注册和恢复虚拟机镜像.Glance提供Rest API可以查询虚拟机镜像的metadata并且可以获取镜像.通过Glance,虚拟机镜像可以被存 ...

  3. centos7镜像加速_使用阿里云容器镜像服务托管私有Docker镜像

    一个只用markdown语法编写文章的90后野路子Web架构师,每天都分享一些有用的知识点,欢迎关注- 前言 概述 本文主要讲解如何托管自己的Docker镜像到阿里云容器镜像服务ACR上,以及如何使用 ...

  4. 正式开放 | 阿里云 10 亿级镜像服务正式支持 Helm Charts,云原生交付再加速!

    作者 | 阿里巴巴高级开发工程师 谢于宁(予栖) 2018 年 6 月,Helm 正式加入了 CNCF 孵化项目: 2018 年 8 月,据 CNCF 的调研表明,有百分之六十八的开发者选择了 Hel ...

  5. OpenStack入门篇(八)之镜像服务Glance

    一.Glance的概述 Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是 ...

  6. 如何实现阿里云容器镜像服务反向访问代理?

    简介:本文会先介绍镜像推送/拉取过程的交互逻辑来梳理需要代理的所有服务,再通过搭建一个公网 HTTPS 反向代理来访问容器镜像服务来向您展示多场景代理访问模式原理. 真实业务场景可能很复杂,因安全.合 ...

  7. 探索 OpenStack 之(10):深入镜像服务Glance

    本篇博文来探讨下镜像服务Glance. 0.  基本概念 0.1 基本功能 Glance提供REST API来支持以下镜像操作: 查询 注册 上传 获取 删除 访问权限管理 0.2 Glance RE ...

  8. OpenStack核心组件-glance镜像服务

    1. glance介绍 Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata ...

  9. Centos7 install Openstack - (第三节)添加镜像服务(Glance)

    Centos7 install Openstack - (第三节)添加镜像服务(Glance) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack ...

  10. 实现阿里云容器镜像服务反向访问代理

    简介: 本文会先介绍镜像推送/拉取过程的交互逻辑来梳理需要代理的所有服务,再通过搭建一个公网 HTTPS 反向代理来访问容器镜像服务来向您展示多场景代理访问模式原理. 真实业务场景可能很复杂,因安全. ...

最新文章

  1. 干货丨2017年AI与深度学习要点大全
  2. 查找python项目依赖并生成requirements.txt——pipreqs 真是很好用啊
  3. 定位 - CoreLocation - 打印位置信息
  4. VTK:可视化算法之StreamlinesWithLineWidget
  5. 细数黑客攻击的七大战术
  6. 迪杰斯特拉算法 两点间最短路径的选择
  7. (转)对《javascript 杂谈之哪种写法你更喜欢?》最后一种“匿名函数法”的解释...
  8. vue从入门到开发--2-基本结构
  9. iOS 不同数据类型存入可变数组
  10. Goby内测版和AWVS14最新版联合教程详细说明
  11. 世界上最好玩的6种表情符号编程语言
  12. 【史上最全的PLC源码】2978个PLC应用例程合集
  13. 【C语言每日练习】——3.回文数、特殊回文数(三种方法详解)
  14. 【TcaplusDB知识库】读取数据示例(TDR表)
  15. 织梦CMS插件合集覆盖几十插件功能采集推送等
  16. Windows Sqlserver Automatic Log Audit Via C/C++
  17. 阿里云企业邮箱哪个代理商好
  18. Python爬虫开发从入门到实战
  19. 做了9年程序员,为什么我还摆脱不了复制粘贴?
  20. 计算机搜索没办法打汉字,电脑只能输入拼音不能输入汉字怎么办

热门文章

  1. 在python中使用csv读写CSV
  2. 同步异步线程进程的一些思考
  3. [分享]Professional Windows Phone 7 Game Development: Creating Games using XNA Game Studio 4
  4. python——import日常学习记录
  5. IMEI校验思路及代码
  6. 正负样本不平衡处理方法总结【转】
  7. 全网最详细的hive-site.xml配置文件里如何添加达到Hive与HBase的集成,即Hive通过这些参数去连接HBase(图文详解)...
  8. 30 System类
  9. (转)使用Vue-Router 2实现路由功能
  10. 线程之线程池(ExecutorService)