zoukankan      html  css  js  c++  java
  • [julia]本地离线安装package


    1.引言

    julia最近十分受关注,其结合了python的通用性,Ruby的动态性,C的代码运行速度,R的包管理和数据分析功能,perl的字符串处理能力,lisp的宏能力,matlab的矩阵计算规则,fortran的矩阵计算速度,shell的不同程序粘粘能力。可谓是集众家之所长,当下就试了一把,不过还是觉得pip的包管理十分方便,暂时不是很习惯R的包管理方式。

    julia将所有的包依赖github进行管理,而不是如pypi一样建立个独立的网站,其中包含了所有注册的包(你写的包被官方收录)的元数据General,以及几乎所有2261个包都是在github上。当然这给生产环境等无法联网的机器带来了不小的麻烦。这里经过试验和查找stackoverflow等方式,算是找到了几个解决方法。

    下面主要在centos 7.3,julia 1.0版本上进行实现。

    2. 在线安装

    using Pkg
    Pkg.add("Example")
    

    是不是很方便,而且自动解决依赖,而且一行就能更新所有的包版本

    3. 先离线安装General,然后离线安装其他包

    3.1 如果机器能代理上网

    如果你的机器是需要通过代理上网的,那么会需要设定http_proxy,https_proxy等,然而当爆出

    可以尝试

    export https_proxy=http://192.168.71.33:8080
    

    即给https附加http的代理。然后采用之前的在线安装方式直接安装,美滋滋。

    3.2 机器都不能联网

    如果也不能联网,那么首先找到所需要的包,如General:

    1 - 先找一台能上网的机器

    git clone https://github.com/JuliaRegistries/General.git
    

    ps:不要直接github上打包的方式下下来,因为这样里面缺少了.git等元数据信息

    2 - 将包放入指定位置
    如在Pkg模式(按下 ] 这个按键,表示进入Pkg模式,退出可以直接ctrl+c)下直接输入

    add General
    


    可以看出,julia的默认路径是~/.julia。当安装完成时,会有如下的目录结构

    如果当前为空,则先建立registries,然后将之前github上下载的General包放在~/.julia/registries下面
    然后:

    成功!

    3.3 离线安装其他包

    上述我们成功安装了General,为什么先安装它,是因为看到直接在线安装时,都是需要去更新这个包,所以里面也包含了所有的元数据信息。那么现在有疑问了:

    • 我想安装其他包怎么办?
    • 我包有依赖怎么办?

    这里有至少2个方法,第一个方法如安装General一样:

    3.3.1 类似General方式安装其他包

    首先,解决怎么安装其他包问题,这里以Example为例
    1 - 将Example以git clone下载
    2 - 将该下载的文件夹放到~/.julia/registries
    3 - 在Pkg模式下直接安装如下图

    解决。

    3.3.2 直接修改General中的包源地址

    这里依然以Example为例

    可以看出,在/root/.julia/registries/General下面包都是按照首字母进行存储的,我们直接定位到Example中

    找到Package.toml

    手动将里面的repo改成你自己本地包的路径(这个Example也是通过git clone下载的
    然后回到Pkg模式下

    可以看到成功了,

    那么如果你有依赖,你可以全都下下来,然后修改General中的位置(用个python批量修改下,我觉得不难),直接让他本地寻找即可!这里我就没再试了,后续遇到接着更新

  • 相关阅读:
    我眼中的SCRUM
    文本转换程序
    免费接口
    看板,敏捷的另一种实现方式
    Android Asynchronous Http Client-Android异步网络请求客户端接口
    hdu4753 Fishhead’s Little Game 状态压缩,总和一定的博弈
    dbcp、c3p0、jdbc常用连接配置
    IE安全分析
    redis入侵小结
    heartbleed漏洞利用
  • 原文地址:https://www.cnblogs.com/shouhuxianjian/p/9771392.html
Copyright © 2011-2022 走看看