故事背景: win10现在可以直接安装Linux子系统,在Microsoft Store里面搜索Linux安装即可。win+R,输入bash,回车,就可以在win10里面使用linux的Shell啦。
留恋win10但又喜欢linux命令行的我非常喜欢这个工作模式,所以故事就开始了。鉴于我以后还是会装一遍这个的,记录下这个过程供自己参考,或许也可以帮到有需要的朋友。欢迎讨论。
主线任务:在Linux里安装Julia,并安装常用的包(HDF5,FITSIO,PyPlot,PyCall,Images,LsqFit),安装图形界面GUI。
支线任务:修改Julia的默认Package的路径。
%对于纯净的Ubantu系统,以上实现非常简单。用apt-get安装Julia-v0.4后,julia>Pkg.add("PackageName");即可。
%对于win10里的Linux,Pkg.add("")会各种报错。
%菜鸡原则:安装过程无视空间需求,以简便和能用为原则。
首先,自行安装Julia和Anaconda。(好像还要先装一下cygwin)
对于Julia-v0.4,直接用apt-get即可(更高版本可至官网下载):
z@Shell: sudo apt-get install julia
z@Shell: julia %进入Julia环境(进入环境后可按;切回Shell环境)
由于未知原因,julia>Pkg.add("PackageName");不能自己安装需求的包(你应该能看到一大片报错...),要手动预装。关联关系如下:
- libhdf5* -> HDF5
- libblosc* -> BLAS + LsqFit + HDF5
- libpython*, matplotlib*, -> PyPlot + PyCall
z@Shell: sudo apt-get install libhdf5*
z@Shell: sudo apt-get install libblosc*
z@Shell: sudo apt-get install libpython*
z@Shell: sudo apt-get install matplotlib*
z@Shell: sudo apt-get install git* %可能git也是坏的...
一段插曲:
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
z@Shell: sudo dpkg --configure -a
dpkg: error: parsing file '/var/lib/dpkg/updates/0144' near line 0: %应该是这个0144文件损坏了,删了重新update即可。
newline in field name '#padding'
z@Shell: cd /var/lib/dpkg/updates/
z@Shell: sudo rm /var/lib/dpkg/updates/0144
z@Shell: sudo apt-get update %Problem Solved
z@Shell: julia
julia> Pkg.add("PackageName"); #把上述包的名字挨个输入进去就行了
julia> Pkg.build("PackageName"); #根据提示,可能要再build一下
julia> Pkg.build("Blosc"); #根据提示做这一步的时候,疯狂报错。搜了一圈发现“build”这玩意本身就有问题!按;切到shell
shell> sudo apt-get install build-essential
julia> Pkg.build("Blosc"); #Problem Solved
julia> Pkg.build("PyPlot/PyCall"); #报错,应该是没有设置Julia默认Python路径
julia> ENV["PYTHON"]=/usr/bin/python;
julia> Pkg.build("PyPlot/PyCall"); #Problem Solved
julia> using HDF5,FITSIO,PyPlot,PyCall,Images,LsqFit #不报错就没什么问题了
到此为止,我们的主线任务就完成一半了。进入Julia后,你会发现虽然可以计算了,但是不能画图啊:
julia> using PyPlot
julia> figure() #Nothing happened!
这是因为Windows下的Linux没有自带的图形界面(X window)。搜了一下怎么装,如下:
z@Shell: sudo apt-get Xorg openbox
尝试打开Xorg,报错:
z@Shell: Xorg
z@Shell: Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)
这个报错非常蛋疼,搜了一圈也搞不定。于是我决定用一个非常土炮的办法解决这个问题:
直接前往:https://sourceforge.net/projects/xming/
在windows下下载安装Xming。具体思路是:每次要画图前手动打开Xming,然后就有图形界面了!
然而你会发现打开了Xming,画图依然是什么窗口都没有...惆怅啊。于是向大佬求助,这个过程中绝望地跑去睡了一觉。
好了,解决办法是:
z@Shell: cd ~/
z@Shell: ls -a %可以找到一个.bashrc 的隐藏文件
z@Shell: gedit .bashrc %随便用个文本编辑器打开,我太菜了用不来vim,只会用gedit...
%在最后加上一行 export DISPLAY=:0.0
%这里似乎涉及到“我在用哪块屏幕”的问题,DISPLAY = your screen ,usually with number :10.0
%for windows, your xming by default is using :0.0
OK,至此,手动打开Xming。打开Julia,using PyPlot, 尝试画图。 Bingo!
到这里,主线任务就终于...完成了(妈耶装这个环境折腾了好几天,要死了)。但是!终于就可以同时坐拥win10和Linux了,也是非常棒了。
支线任务非常简单:
z@Shell: cd ~/
z@Shell: gedit .juliarc.jl
%加上一行 push!(LOAD_PATH,"some path")
%把你拿来放package的path写上去就好了。于是就可以愉快地直接using ***(your package) 了。
%其实也可以直接 Julia>include("xxx.jl"),但是要多写一句啊,太麻烦了。
@卢老狗
Date:2018-5-14
更新一个小note。因为Julia发布了1.0+正式版,所以我就傻乎乎地装了,然后发现相比之前的版本改动很大,以前的module疯狂报错。所以我决定还是用原来的版本,写新函数再用新版本。在Linux里再安装是比较容易的,去官网下载,Extract出来,然后在PATH变量最后加一句即可:
z@Shell: gedit ~/.bashrc
%在原来PATH的基础上加一段:
PATH=$PATH'/home/julia-0.6.4/bin'
%然后你默认的Julia路径就重新设定了,Pkg可能要重新装一下
%修改默认的package路径:
z@Shell: gedit $JULIA_HOME/etc/julia/juliarc.jl
push!(LOAD_PATH,"some path")
Date:2019-03-12