最近有个小伙伴私信我,找我要.julia包,看来他跟我一样,没钱搭梯子
不过他这个想法启发了我,我们可不可以把自己的.julia分享出来,不过这可能会牵扯到
系统架构和操作系统的不同
不管怎么说,这个墙实在太影响Julia体验了
这是我的.julia — julia1.1.1,我的电脑ubuntu18.04LTS,不知道会不会与windows冲突
提取码:mij2
用Linux的同学 tar -zxvf julia-package && mv julia-package .julia
用windows的同学用bandzip解压
记得把原来的.julia备份
2 个赞
我是 win10 .julia
有 5.72 GB(WSL 认为是 5.9G)。
WSL 中的 julia 全新的只有 67M 差不多就全是 registries
的大小了。
WSL 没啥可看的
~/.julia$ du -lh --max-depth=1
88K ./clones
20K ./compiled
4.0K ./environments
92K ./logs
24K ./packages
67M ./registries
67M .
windows 下 .julia
文件夹的用途
win10 C:\Users\woclass\.julia
187M ./artifacts
589M ./clones
280M ./compiled
3.4G ./conda
0 ./config
755M ./dev
52K ./environments
2.0M ./logs
619M ./packages
0 ./prefs
75M ./registries
5.9G .
简单介绍一下各个文件夹的用途:
artifacts
新出的工件,也就是二进制依赖,基本下载都翻车在这里,里面的文件夹对应到一个 _jll
包。值得分享
clones
应该是记录着对应 git repo 的元信息。
compiled
存放预编译的 .ji
文件,不建议分享,因为预编译和机器硬件环境密切相关。
conda
估计是 Conda.jl
安装的,涉及到 PyCall
的东西可能就会装上它。
没有也很正常,也可能不装在这里。
但其实你装过其他版本的 conda 可以设置环境变量直接用,详见对应包的文档。
config
里面放着 startup.jl
跟 linux 的 .XXXrc 类似,会在 julia REPL 启动前执行。默认为空。
另外 .julia_history
放在 ~
下。
dev
搞开发用的,] dev xxx
默认放在这里。一般空的。
environments
:里面有个版本对应的文件夹,其中 Project.toml
记录着你装了那些包
logs
打开看放着一些 .toml
文件和 repl_history.jl
,记录着包相关的时间信息。估计是为了超时自动清理垃圾用吧。
packages
:放着对应的 .jl
repo 的 clone,基本都是纯代码。
实际上除非是网络特别不好,一般来说装包都不会卡在这里,一般都是卡在二进制依赖上。
prefs
某些包对应的配置文件,空的也正常。我的里面有:IJulia
和 PyCall
,IJulia
里就记录着我用的 jupyter.exe
的路径。
registries
julia 的包注册表,可以分享,也可以直接从国内镜像上 clone
以上文件夹是 0.7 以后的版本共用的, 0.6 会自己建一个文件夹。
但其实我已经把 0.7 以下的版本都删了,只留了 0.7、1.0.5、和最新稳定版。
包都装在 1.0.5 上,这些一共加起来才装了 7 个包,conda 是真的大,也可能是有些老包没删干净吧。
值得分享的文件夹
分享前记得指定 julia 版本,不然容易出问题。
建议标上四元式,即 julia版本+TRIPLETS:例如:julia1.0.5-x86_64-w64-mingw32
或者直接贴出你的 versioninfo()
也可以。
要分享就分享一下以下几个文件夹吧:
artifacts
:二进制依赖
clones
:git repo 元信息
environments
:装了哪些包
logs
:装包的时间信息。注意:里面有 repl_history.jl
可能泄露个人信息!
packages
:包
registries
:包的注册表(可选)
要分享 PyCall
相关的东西可以把 conda
和 prefs
也带上。
注意:prefs
里可能会有你的用户名。
4 个赞
我装的包很少,而且因为我之前装过很多版本,所以 .julia
垃圾估计不少
[c52e3926] Atom v0.12.8
[6e4b80f9] BenchmarkTools v0.5.0
[7073ff75] IJulia v1.21.1
[e5e0dc1b] Juno v0.8.1
[d330b81b] PyPlot v2.8.2
[b873ce64] ReplMaker v0.2.3
我先试试在虚拟机或 vps 重装干净的 julia。
其实可以发散思维用 CI 打包,另外 docker 也是个好东西。
搞这种二进制分发就和 python 的 whl 有点像,应该是能做到那样的,这个展开讨论有点多,等我写一写,写的比较多就另开一贴讨论julia 的装包困难问题。