LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

基于WSL2的Linux子系统通过Conda安装NCL安装的方法。

2022年12月11日 156点热度

虚拟机安装linux教程图解_虚拟机安装linux_linux 虚拟软件

感谢

感谢知乎用户 @一米粒 同学帮助我找出了关于WSLg的问题,我一开始忽略了图形化界面对WSL和Windows版本的新要求,现在已经更新了系统要求和检查WSL更新的方法。

感谢某不知名的康同学,她的问题帮助我进一步了解了更新的WSLg内容,明确了现在正式版可用的系统版本,并且找到了相应的安装包。文章中安装图形化界面的部分已经再次修改,并增加了直接下载WSLg安装包安装的方法。

康同学的认真耐心态度值得同志们学习。

写在开头

本教程介绍了基于WSL2的Linux子系统通过Conda安装NCL的方法。

正文内容更新了好多次!但是录视频很尬所以视频一直没更新,请优先阅读文章。

NCL(NCAR Command Language)是由美国国家大气研究中心(NCAR)开发的高级语言,主要适用于气象数据的处理和可视化。NCAR官方已于2019年2月正式宣布转向python。对于现有的NCL语言,不会再有功能更新,但仍长期可用——其安装文件和脚本示例都能在官网进行下载、查看。以下提到的NCL指的是对NCL语言以及NCAR图形工具的统称,和最大多数人所理解的NCL一致,也和官网的文档一致。

写这篇NCL安装教程,是因为Windows是最广泛使用的操作系统,而NCL本身只对Mac OS、Linux提供直接的支持,很多朋友缺乏对Unix-like系统和操作命令的了解。并且,网络上部分教程使用Cygwin或传统虚拟机环境,或使用apt、预编译二进制文件的方法来在Windows下使用NCL都有着不同程度的缺点:Cygwin和传统虚拟机环境占用空间大,有时安装麻烦,非Hyper-V支持的话还会和许多系统虚拟化软件造成冲突、难以共存linux环境变量,且NCL最后一个功能版本6.6.2官方已经放弃Cygwin支持;在Linux环境下使用apt或预编译文件安装NCL会导致各种奇怪的bug,例如apt安装的NCL版本无法使用默认的填色绘图。至于官方的NCL安装教程我觉得对于初学者远不够详细,至少我把网址丢给同学以后再一点一点地指导他们做,远不如我帮他们装一遍来得方便;官方对教程的更新也不及时(其实就是已经不更新了),对Windows的教程并不完善并且没有直接在Windows的教程里指导使用Conda,其实已经并非最方便的安装方法;而Windows下的Linux子系统已经随着更新变得越来越易用,也支持了x11图形界面和图形驱动,逐渐成为Windows下使用NCL,或者说使用任何Linux常用发行版的首选。

基于以上原因,使用基于WSL2的Linux子系统通过Conda安装NCL,可能是Windows平台下最佳的NCL安装方法。WSL2基于Hyper-V虚拟化,运行效率高,且不会与Windows冲突,而虚拟化在未来Windows11的新特性和安全上将扮演不可或缺的角色,服从Windows官方最新的虚拟化标准是极其重要的;通过Conda安装NCL,是官方最推荐的方法,也是我各种尝试以后最稳定且简单的安装方法。

本文的操作并不涉及很多Linux命令,只有少数现成的;但是在操作NCL软件之前,用户应该对Linux命令有初步的了解,例如ls cd cp mv等等命令。具体可以百度“Linux常用命令”并自己练习。熟悉Linux操作几乎是操作NCL所必须的。这对本文中的安装内容也有帮助。

配置要求

微软官方对WSL2的硬件要求为:Windows10版本号大于等于2004或Windows11(查看方式设置-系统-关于-版本号)、64位处理器带二级地址翻译(SLAT),4GB系统内存、BIOS支持系统级别的虚拟化。理论上更旧的版本也可以运行,但如果需要在Linux中使用图形化界面(WSLg),则需要Windows10 21H2 21362及以后的版本(21362至今为止仍是win10预览版,并非21H2的正式版,如果win10没有继续更新,则需要升级至Windows11来使用WSLg。总之,以版本号大于21362来作为判断标准)。

满足了WSL2的配置,那么其他软件的要求也全部满足。以上配置如果看不懂并不需要特别在意,无脑的(大概率)判断方法为:只要你的电脑买来就是win10的(不是旧版本win7win8升上来的),并且最近一年来有进行过系统更新或者说系统没提醒你激活要过期的(最低要求的2004非企业、教育版都已经过期了,只要没过期都是达标的),都可以安装。如果需要使用WSLg,则需要特别留意版本,低于21H2 21362的话应主动更新至Windows11(仅建议八代Intel以及受支持的AMD Ryzen更新)。

环境配置

首先配置运行NCL的环境:基于WSL2的Linux子系统、系统中安装Conda。

BIOS开启虚拟化

先确认自己电脑支持虚拟化,请自行通过电脑型号善用搜索引擎。还是上面那句话,近两三年市面上绝大多数电脑都支持虚拟化,你的电脑99%支持。

确认支持后,再自己的电脑有没有开启虚拟化:打开任务管理器,点击性能选项卡-CPU-右下方虚拟化

linux 虚拟软件_虚拟机安装linux_虚拟机安装linux教程图解

已启用则直接进行下一步“为电脑安装WSL2”。

各机型进入BIOS方法各不相同,具体请搜索“电脑机型+BIOS”,例如:

进入后界面也不相同,找到虚拟化相关的选项开启,Intel平台多为“Intel Virtual Technology”,少部分机型如戴尔什么的也会叫“Intel Virtualization Technology”,AMD 平台叫做“SVM Support”,具体也可以搜索“电脑机型+开启虚拟化”。开启后记得保存并重启(一般是F10)。

为电脑安装WSL2

WSL2是一个在Windows下运行的Linux系统框架,可以运行主流Linux系统,这里以默认的Ubuntu系统为例。

安装WSL2的框架总而言之就是做一件事:确认Windows开启了Hyper-V、适用于Linux的Windows子系统、虚拟机平台三个功能。

方法:在“启用和关闭Windows功能”页面确认以上三项打开,如果某一项没有,则需要手动安装。

虚拟机安装linux教程图解_linux 虚拟软件_虚拟机安装linux

如果其中某一项没有,则应单独进行安装;全部勾选后确定,若提示重启则重启。

(安装适用于Linux的Windows子系统(WSL)的命令为:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

家庭版需要先使用命令安装Hyper-V,再使用命令安装WSL。具体方法可以看我之前文章:中的“添加Hyper-V(家庭版)”到“安装WSL子系统”这部分。这篇文章中所指导的安装WSL2环境是更加麻烦但是更保险、更完整的方法)

Windows10环境下Docker安装、改变镜像存储路径并配置WRF的方法 - 刘芦苇杆子的文章 - 知乎

三项功能确认打开以后,到微软商店搜索Ubuntu(或者其他受支持的Linux发行版)点击安装。

虚拟机安装linux_linux 虚拟软件_虚拟机安装linux教程图解

WSL2、Ubuntu安装成功后,开始菜单出现Ubuntu图标。

进入PowerShell(Windows Terminal打开默认就是)输入以下命令检查更新WSL

wsl --update

点击Ubuntu图标可以直接启动Ubuntu。第一次启动Ubuntu,需要创建管理员账号和密码。按屏幕顺序输入用户名和密码。需要注意的是,用户名只能小写,第一次创建的用户名有管理员权限,建议名字上体现出root来以免弄错,例如:reedrod_root。密码用一个好记的,毕竟子系统的账户密码不一定常用,后面忘了就麻烦。

提示成功以后关闭窗口,此时打开Windows Terminal,点击标签页右边的小箭头,此时会出现Ubuntu的选项,说明Ubuntu已经配置成功

在Linux子系统中安装NCL

在Windows中进入Linux子系统,可以点击Ubuntu图标、可以在终端命令行输入bash、可以使用Windows Terminal进入,这里介绍第三种方法。

打开Windows Terminal,从标签页下拉中选择Ubuntu。Windows Terminal适合本地终端,且具有完善的配色方案,是未来Windows的默认终端工具。

现在安装、更新一些必要软件。

更换镜像源

这一步可做可不做,目的是将官方服务器切换为速度更快的服务器。主流国内镜像源有清华、中科大、阿里云、网易等。具体操作可以自行搜索。

更新软件源列表。这一步也不是很重要,目的是和镜像源比对软件版本,让系统知道哪些软件需要更新,相当于刷新应用商店的更新列表,但还没有点击更新。sudo apt-get update

更新软件

sudo apt-get dist-upgrade

这里更新的apt管理的软件,相当于我们在Ubuntu自带的“应用商店”更新了应用,这一步并不是很重要,因为我们主要使用的是另一个“应用商店”——Conda,这是因为apt的NCL包好像库总有些缺失,导致默认的填色图画不了,官方也不建议我们使用apt安装NCL。

安装Conda

Conda是一个软件环境管理系统,它主要适用于python,也同样支持其他语言,上面类比apt时说像应用商店,但Conda实则更像一个分门别类的大商场。Apt把所有的软件放在同一个房间销售,当软件要求独特的环境时,如果配置不好,就会产生冲突;而Conda则面对不同的条件配置了不同的房间,要使用NCL时可以切换到NCL的房间常用linux系统,里面的环境是为了NCL专门配置的,避免了冲突。Conda在Linux、Windows、Mac上都可用,而NCL官方直接支持Linux和Mac端的Conda,Conda上的Ncl环境是bug最少的环境,通过Conda安装NCL也是官方最推荐使用的方法。根据NCL官方建议,本文采用MiniConda安装,主流的Annaconda同样可用,但是AnnaConda中所附带的常用包并非NCL常用,而MiniConda则是精简版,使用上没有任何区别。

在Conda官网找到Linux平台下的最新下载链接,python版本选择默认。

安装方式为使用wget命令下载安装脚本,再运行脚本安装Conda。下载脚本同样可以在Windows下载,放到相应目录中即可使用sh命令安装

例如(记得修改路径):

sh /mnt/c/users/***/Downloads/Miniconda3-latest-Linux-x86_64.sh

安装过程中会遇到各种询问,由于是新的系统,一路yes过去就行,这样安装完成的Conda是默认开机自启动的。如果是系统本身有安装其他软件需要用到环境变量时,需要注意Conda有没有将已有的环境变量修改。

安装完成之后注意不能直接使用,需要手动更新环境变量,因为Conda写入的环境变量并未应用。命令为

source ~/.bashrc

如果没有自动进入ncl环境,应当手动刷新环境变量(我没有明确遇到这个问题,所以都刷新一遍总没问题吧)

source ~/.profile

source /etc/profile

如果仍然不行,可能是因为Conda安装过程中没有写入环境变量,B站用户@小小闪电皮卡丘发现华为电脑的电脑管家可能会导致这个问题。出现该问题则需要手动写入Conda环境变量,请自行搜索编辑Linux下Conda环境变量的方法。环境变量如果正常,会自动启动Conda,启动后命令行的开头出现(base)说明conda正常使用。

下面开始在Conda下创建Ncl环境。相当于NCL官方在Conda的服务器上列了一个表格,告诉用户的电脑安装NCL需要安装哪些包或者库。系统从Conda服务器上获取表格后,为NCL单独创建一个房间,为它配置好所有的环境,并将NCL搬进房间。默认的服务器如果比较慢,同样可以对Conda的镜像源进行换源,国内有清华、北京外国语等镜像源可用,具体换源方法自行百度。

使用命令:

conda create -n ncl_stable -c conda-forge ncl

安装,同时自己为这个“房间”命名,这里就用官方示例中的ncl_stable

启动Conda

NCL安装完成后,(自动进入Ncl环境)linux 虚拟软件,可以看到此时命令行前的括号已经从(base)变为了自己刚刚命名的Ncl环境,这里为ncl_stable,说明当前环境是Ncl环境。第二次启动时,conda是开机自启的,默认在base环境下,需要使用Conda activate命令切换至Ncl环境。

确认x图形可用

21H2 21362之后的Windows10预览版以及Windows11支持WSLg,即可以在子系统中运行图形化窗口,这一步有助于提升体验,但并非必要。

首先确认系统版本(查看方式设置-系统-关于-版本号),应大于21362,之后在PowerShell(管理员)中输入

更新时理论上自动安装WSLg,可以在PowerShell下使用

或者

可以看到WSLg的版本信息则说明安装成功(版本号不重要)。

如果没有则可以尝试手动下载安装包,官方GitHub地址为

/microsoft/wslg/releases

这里找到最近的Latest Release下载就好了,比如我看到的最新版本是1.0.26,就下载这里面的wsl_graphics_support_x64.msi

linux 虚拟软件_虚拟机安装linux教程图解_虚拟机安装linux

下载完成后双击安装,和exe安装包同理。我还没有合适的电脑给我当小白鼠所以安装过程我暂时没有,也不知道要不要重启,总之安装完以后再次查看WSLg有没有安装成功。如果有显示WSLg版本号了,那么继续往下。

在Ubuntu环境中运行

如果展示出时钟图像,则说明x图形化界面可以使用;全新安装WSL没有附带x11linux 虚拟软件,故不会展示xclock图像,会提示安装软件或报错,按照传回命令

安装相应软件后就可以直接运行,运行成功会展示时钟图像,关闭即可。

如果安装x图形仍然出现问题,更新显卡驱动可能可以解决(我暂时没机会试)可以参考微软官方的文档中关于安装驱动程序的部分:

/zh-cn/windows/wsl/tutorials/gui-apps

官方已经更新要求系统Windows11以上了,可能是新功能或者兼容性需要吧。但是GitHub至我最后一次编辑文章为止,要求一直保持21362这个版本号,我认为应该以这个为准。

接下来测试官方的NCL示例脚本

如果出现图片窗口,且命令行输出数据,则说明x11和ncl都可用。

最后说明

如果x11始终用不了也不用担心,这个并不是必要操作。直接把生成的图片保存为文件再查看也完全ok,仅仅是效率稍低一些。

无法使用x11图形是无法使用上述示例脚本的,应该用官方的第二条脚本:

ncl $NCARG_ROOT/lib/ncarg/nclex/nug/NUG_multi_timeseries.ncl

这个脚本会在当前目录下生成一个png格式的图片,在挂载的Windows目录下(例如/mnt/c是C盘根目录)运行该脚本后,就可以在Windows系统对应目录下查看到这个图片

举个例子,比如要在D盘的NCLData文件夹下生成上面这个测试图片,那么我应该在WSL中这样操作:

首先再次确认conda开启,处于ncl_stable环境而非base环境,然后切换到对应目录下

再使用刚刚的脚本

ncl $NCARG_ROOT/lib/ncarg/nclex/nug/NUG_multi_timeseries.ncl

运行正常时如图弹出NCL的声明,不报错

此时输入

ls

可以看到当前目录下有一个NUG_multi_timeseries.png文件

虚拟机安装linux教程图解_linux 虚拟软件_虚拟机安装linux

说明已经成功,此时在Windows下“此电脑-D:/NCLData”找到并打开文件即可。

最后最后再次感谢@一米粒同学和康同学!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: conda linux服务器 linux系统 应用虚拟化 电脑操作系统
最后更新:2022年12月11日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
【】原操作系统配备内核源代码,更不能进行内核模块实验 【Linux基础知识】与文件权限管理的Linux关系 linux/管理员管理员发布于5年前34(图) Linux和Unix操作系统之间有区别但也有联系?(一) Ubuntu系统如何升级和更新Linux内核版本?将推荐 Linux内核技术组成、组织和重要的数据结构等(组图) 【报错日志】一下升级linux内核的启动顺序为0 Linux终端窗口中输入mysql-V以显示MySQL版本信息sky 计算机操作系统全新版装系统盘点、理念与系统的优缺点 linux中常用的用户管理命令:1groups?列出当前用户所属 Linux下如何设置开机启动启动脚本?学算法 Linux中已经安装好了mysql命令 Linux系统用户系统上的三种类型的帐户的介绍 Linux下的开机启动设置方法是什么?脚本或服务 谷歌更新Linux内核构建的公共内核库:添加对kokoro作业的支持 linux下mysql中可以使用REVOKE语句来删除某个用户的权限 内核的角度来看,调用hotplug和通常的hotplug环境 Linux系统在开机的时候自动加载某些脚本或系统服务 如何在Linux上安装Diablo3操作系统Diablo3 RedHatLinux软件安装包软件后缀为.rpm最初
Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由腾讯云服务器上也搭建一套环境,安装成功自动启动个人笔记本安装Ubuntu20.04LTS下载地址启动第一步--加载BIOS当你打开计算机电源(组图)虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载指令中各个make-C~/linuxM=`pwd编译Linux启动过程中的几个部分内核的引导(图)如何在Linux上安装虚拟机的结果大多都是怎么安装的一个免费软件时间跟进的小白鼠是什么鬼?专题计算机是如何启动的?、内核操作系统的启动流程学习Linux最简单、最实用的环境就是虚拟机环境(上)基于命令修改文件的权限命令-ld1.Linux磁盘分区和目录Linux发行版本之间的差别很少?国内性价比很高的Linux虚拟主机系统安装的流程是什么?Linux下修改文件权限的权限与所有权的实现就显得很有必要linux到底难不难学呢?推荐可以查看Linux命令大全Linux中修改文件权限的命令、创建者所在组、所有人Linux的内核放在了哪里?/boot的启动目录一览阿里云>社区>主题地图S>查看存储推荐
RedHat查看内核版本和厂商版本1.查看版本的命令 【】U盘su的输出是否有usb-storage, Linux内核层网络编程框架研究(1)_光明网 Linux系统性能调优工具的说明书常规的用法介绍 UNIX网络编程卷1:套接字联网API第3版pdf百度网盘下载地址 PHP中计算两个日期之间相隔的长度最简单的方法 【Linux运维学习必看书籍推荐】——Linux运维大环境说明 Linux操作系统提权漏洞的解决办法有哪些?-八维教育 阿里云>社区>主题地图S>查看存储推荐 Windows中命令提示符批量修改文件名称没有直接的方法是什么? 安装xrdp及vnc4server的自动补全配置完成6、查看IP Linux常用应用工具软件安装管理——RedHatEnterprise存储库 一段程序是告诉计算机应该如何完成一个任务的程序 娃白天睡觉不太踏实,搞一个局域网实时监控,怎么办? Ubuntu14.04安装JDK1.8.0_25与配置环境变量过程笔记 关闭虚拟机的防火墙:验证进程(上) Ubuntu上使用的默认浏览器为Firefox,该怎么安装? 【报错日志】一下升级linux内核的启动顺序为0 启动第一步--加载BIOS当你打开计算机电源(组图) 数字媒体信息发布系统,尚观发布软件是一款专业的
标签聚合
文件目录 linux系统 unix 命令模式 linux服务器 shell 虚拟机 sudo 软件 电脑
书籍
课程
技术群
技术干货大合集↓
  • 2023年2月 / 24篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.