gedit linux 列模式_小记:如何在Windows的Linux环境(WSL/WSL2)中安装Julia

本文档记录了在Windows的Linux子系统(WSL/WSL2)中安装Julia的过程,包括解决Pkg.add()报错、安装依赖、配置图形界面(Xming和DISPLAY环境变量)以及安装常用包如HDF5、PyPlot等。此外,还提到了如何修改Julia的默认Package路径和应对新版本Julia的兼容问题。
摘要由CSDN通过智能技术生成

06f22ce3cd7ab068b86c861c7c3dbca3.png

故事背景: 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")

装了WSL2,又折腾了好久,稍微记录一下。实现图形界面大概有两种方法,第一种是通过远程桌面连接到linux,过程参考 :

Dexter Lien:WSL2使用xrdp实现图形桌面

Date:2019-03-12


每次连接远程桌面前需要在ubuntu打开xrdp:

sudo /etc/init.d/xrdp start

一个小坑是自己设置端口时注意避免和预设定端口重复,当时我觉得好玩把端口设成了8848,连不上,最后发现这是预设定端口(神奇的预设定)。改掉就好了。

另一种方法和之前类似,在windows安装X11,后通过修改DISPLAY将linux的窗口显示在windows中,过程参考:

wsl2图形界面的安装,wsl同理_左阁的博客-CSDN博客_wsl2 图形界面

https://stackoverflow.com/questions/61110603/how-to-set-up-working-x11-forwarding-on-wsl2

由于网上教程过多,我自己在操作的时候翻车多次,建议利用wsl的备份功能:

%在windows terminal环境
wsl -h     %查看wsl的相关指令
wsl --export Ubuntu-18.04 20201226.tar     %会在 C:Usersyou 目录下创建一个备份文件
wsl --unregister     %翻车时注销系统
wsl --import Ubuntu-18.04 C:Usersyouwsl2 20201226.tar     %导入备份,注意需输入建立wsl2系统的位置

熟练掌握备份、导入备份之后,就可以随意折腾啦(时间刺客开大既视感)。

因为我之前的代码都是在Julia-0.6.4下写的,不想改成新语法,于是还是装这个版本。首先,去Julia官网下载相应版本。然后,在ubuntu环境下输入:

explorer.exe .

会弹出一个文件资源管理器,把下载好的Julia包找个地方粘贴过去就好了。然后解压、改名字(改名字非必须,只是单纯为了看着爽)。

tar zxvf julia-0.6.4-linux-x86_64.tar.gz -C home/you/julia-0.6.4     %-C means to specific directory
mv /home/you/julia-blabla /home/you/julia-0.6.4     %mv command 的妙用:原地TP修改文件名

和之前类似,在 .bashrc 中加入Julia的启动路径,在juliarc.jl中加入我们放package的路径。

接着就是在Julia中各种Pkg.add(""),有些步骤可能会报错,按照报错内容手动装需要的包即可。我遇到了要手动装hdf5-tools的问题(在Julia环境中按 ;可以进入Shell环境),手动装一下就解决了。

sudo apt-get install hdf5-tools

后面我又被提醒没有装scipy,在Julia环境里用Conda装一下即可。

using Conda
Conda.add("scipy")

注意,虽然我们在安装PyCall、PyPlot等包的时候自动装了Conda(Python3),但是这个好像只是为Julia特地安装的版本,并非整个环境通用版。自己使用的话,尤其是像我用python2,还是要重新下载安装anaconda2。这个比较简单,下载.sh文件直接运行即可

bash anaconda2-blabla.sh

理论上也可以通过修改Julia中的环境变量让Julia直接使用已经安装的Python,但我整了之后疯狂报错,导致又回到备份重装了一次wsl2。所以不想折腾的话还是让Julia装一个Python,在此基础上再装一个python自用比较方便。

Date:2020-12-29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值