WSL使用小结:从ArchLinux到Manjaro

摘要:
这四种形式是文件管理器、Firefox 56、终端和在终端上启动的茶壶示例程序。2.1安装现有的WSL发行版2.1.1 Microsoft商店安装Linux*打开“开发人员模式”并选中“Windows Subsystem for Linux”,选择Ubuntu进行安装,安装后将提示您输入用户名和密码。
 1.前言

  上一篇介绍了Windows 10下配置WSL环境,通过ALWSL脚本替换为ArchLinux的过程。这一篇介绍根据ArchLinux官网的说明,在WSL下安装ArchLinux,并切换到发行版Manjaro的过程。

  先上截图:X Server使用的是MobaXterm,其中:Windows 10任务栏以上部分是Manjaro界面,四个窗体依次是文件管理器、火狐浏览器56、Terminal终端和终端上启动的Teapot例子程序。

  WSL使用小结:从ArchLinux到Manjaro第1张

 注意:WSL Arch Linux 已在 Microsoft Store 上可用,ArchLinux安装可以跳过以下步骤。

2.WSL安装ArchLinux环境

  ArchLinux给出了说明:Install_on_WSL_(简体中文)。安装过程中需要注意的事项,已经记录在了我的GitHub上。下面是详细说明:

2.1 安装已有的WSL发行版

2.1.1 Microsoft Store安装Linux

  * 开启"开发者模式"和勾选"适用于Linux的Windows子系统",具体过程可以参考上一篇

  * 输入Linux进行搜索,可能需要搜索两遍,选择Ubuntu进行安装,安装完成后,如图所示:

  WSL使用小结:从ArchLinux到Manjaro第2张

  *注意:安装后启动会提醒你输入用户名和密码,这一步要跳过。关闭后重新打开,进入root登陆的环境。

2.1.2 自定义安装路径

 

2.2 安装ArchLinux

  * 从开始菜单打开 Ubuntu。从 清华的ArchLinux镜像 下载 Arch bootstrap .tar.gz 放在root用户的目录LocalState ootfs oot下,然后解压【注:解压archlinux-bootstrap时在root目录,外面可能会出问题】: 

$ tar -zxvf archlinux-bootstrap-*-x86_64.tar.gz

  * 在 ~/root.x86_64/etc/pacman.d/mirrorlist 文件中,选择需要的服务器,取消注释。这一步直接换成Manjaro的 清华镜像

Server = https://mirrors.tuna.tsinghua.edu.cn/manjaro/stable/$repo/$arch

  * 让 WSL 自动生成 /etc/resolv.conf 【注:或者 直接删除 /etc/resolv.conf文件】:

$ echo "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." > ~/root.x86_64/etc/resolv.conf

  * 退出所有打开的 Bash 命令行窗口。在 Windows 资源管理器中打开 %localappdata%Packages,并找到 CanonicalGroupLimited.UbuntuonWindows_* (其中, * 表示随机字符串 )。

  在 %localappdata%PackagesCanonicalGroupLimited.UbuntuonWindows_*LocalState ootfs 中删除 bin, etc, lib, lib64, sbin, usr and var。然后从rootfs oot oot.x86_64移动(不要复制)相同的文件到 rootfs。

  * 官网说需要fakeroot-tcpglibc-wsl。这一步我们可以先跳过[现在已经不需要]。输入 pacman -Syyu 进行更新。

2.3 安装Manjaro

  * 简单来说,就是安装Manjaro发行版具有的所有包。如果你已经安装了一个Manjaro,可以输入 pacman -Ssq > packages.txt 导出包列表。文件packages.txt已经放了一份在我的GitHub上。

  * 输入  pacman -S `cat packages.txt` --needed 安装Manjaro环境,大约有1000个包共1G的下载量,请耐心等待。

  * 输入 useradd -m -s /bin/bash username 创建用户,这里会自动创建用户文件,用户的xfce4环境也会设置好。

  * 修改文件 /etc/sudoers 文件,加入 username ALL=(ALL) NOPASSWD: ALL ,这样就可以直接使用 sudo 而不输密码了。

  * 设置此用户为默认用户  ubuntu.exe config --default-user username 。进入终端,如图所示【注:username与你设置的相同,这里是wurui】:

WSL使用小结:从ArchLinux到Manjaro第3张

   * 安装glibc-wsl,配置中文环境。glibc-wsl需要自行编译,这里提供了我自己编译好的2.26版本,见我的百度云分享

   * 输入 sudo pacman -U glibc-wsl-2.26-4-x86_64.pkg.tar.xz 安装glibc-wsl。

   * 文件/etc/locale.gen,取消这两行的注释注释: es_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 

   * 输入 sudo locale-gen

[wurui@computer wurui]$ sudo locale-gen
Generating locales...
  es_US.UTF-8... done
  zh_CN.UTF-8... done
Generation complete.

  * 修改文件~/.bashrc,加入以下几行,【注:如果是在外部修改,记得使用 sudochmod644 ~/.bashrc 恢复.bashrc的访问权限】:

   export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8" export DISPLAY=:0 

  * 安装完成了,下面配置X Server环境。

2.4 图形支持:安装X Server环境

  * X Server环境推荐使用MobaXterm。你可以在0daydown网站找到MobaXterm的最新版。启动后的界面如图所示。

WSL使用小结:从ArchLinux到Manjaro第4张

  * 如果希望在后台启动MobaXtem。可以输入: "C:Program Files (x86)MobatekMobaXtermMobaXterm.exe" -hideterm

  * 不过,这样会一闪而过。经过一番摸索,我找到了更好的方法。MobaXterm正常启动时,输入: wmic process where name="XWin_MobaX.exe" get commandline 可以看到命令行参数:

C:Userswurui>wmic process where name="XWin_MobaX.exe" get commandline
CommandLine                                                                                         
"C:UserswuruiDOCUME~1MobaXtermslashinXWin_MobaX.exe"  -silent-dup-error -notrayicon -nolisten inet6 -hostintitle +bs  -clipboard -nowgl -multiwindow -noreset :0

  * 于此同时,在 C:Users<username>DocumentsMobaXtermslashin 目录下可以看到XWin开头的exe:

C:UserswuruiDocumentsMobaXtermslashin>dir /b XWin*
XWin.exe
xwinwm.exe
XWin_Cygwin_1.14.5.exe
XWin_Cygwin_1.16.3.exe
XWin_MobaX.exe

  * 在%HOMEPATH%下建立autorun.vbs文件,内容为:

set ws=WScript.CreateObject("WScript.Shell")
Command= "C:Users<username>DocumentsMobaXtermslashinXWin.exe" & " -silent-dup-error -notrayicon -nolisten inet6 -hostintitle +bs  -clipboard -nowgl -multiwindow -noreset :0"
' msgbox Command 
ws.Run Command,0

  * (可选步骤)。修改注册表路径 计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon 下的UserInit为: C:Windowssystem32userinit.exe,wscript C:Users<username>autorun.vbs ,这样就可以在登陆的时候自动启动X Server了。

2.5 声音支持:安装PulseAudio

  *输入以下命令,安装PulseAudio,以启用声音支持:

bash -c "wget http://bosmans.ch/pulseaudio/pulseaudio-1.1.zip"
bach -c "unzip pulseaudio-1.1.zip -d pulseaudio"
bash -c "echo export PULSE_SERVER=tcp:localhost >> ~/.bashrc"
echo load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 >> pulseaudioetcpulsedefault.pa
start pulseaudioinpulseaudio.exe -D --exit-idle-time=-1

2.6 建立Manjaro桌面快捷方式

  * 先考虑一个问题,WSL的bash如何直接进入Python。方法是输入: bash -c "python" ,比如:

C:Userswurui>bash -c "python"
Python 3.6.3 (default, Oct 24 2017, 14:48:20)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

  * 问题二,如何启动桌面环境的任务管理器。方法是输入: bash -c "DISPLAY=:0 thunar" ,如图所示:

WSL使用小结:从ArchLinux到Manjaro第5张

  * 问题三,如何启动Manjaro并建立快捷方式。首先,XWin在启动时最好去掉-multiwindow参数,否则窗体会分开;由于是xfce4版桌面环境,所以可以输入 bash -c "DISPLAY=:0 startxfce4" 来启动桌面。

  * 右键,选择快捷方式,输入: %windir%system32mshta.exe vbscript:createobject("wscript.shell").run("cmd /c start C:Users<username>DocumentsMobaXtermslashinXWin.exe & bash -c 'DISPLAY=:0 LANG=zh_CN.UTF-8 startxfce4 '",0)(window.close) ,注意<username>是你自己的用户名:

WSL使用小结:从ArchLinux到Manjaro第6张

  * 修改名称为Manjaro。下一个问题,修改快捷方式的图标。用Everything搜索到maia.svg,即Manjaro的svg图标。使用ImageMagick转换为ico格式,bash下输入: convert maia.svg Manjaro.ico

E:Manjaro>bash
[wurui@computer Manjaro]$ convert maia.svg Manjaro.ico
[wurui@computer Manjaro]$

  * 修改快捷方式的图标,如图所示:

WSL使用小结:从ArchLinux到Manjaro第7张

   * 好了。现在你可点击快捷方式,启动Manjaro了,就像开头给出的截图那样。注:应该尽量避免启动多个XWin。

2.7 杂项和测试

  *  /etc/pacman.conf 加入Arch4Edu的源:

[arch4edu]
SigLevel = Never
Server = http://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch

  * 输入: sudo pacman -Syu ,然后安装Mayavi-py3:  sudo pacman -S mayavi-py3

  * 输入mayavi2,启动Mayavi。运行例子程序,如图所示:

WSL使用小结:从ArchLinux到Manjaro第8张

  * libQt5Core问题处理: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory,处理办法: strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5.11.1 

3.结束语

  在使用了Alwsl安装了ArchLinux之后,并不满意。于是,重新根据ArchLinux官网的说明,安装了ArchLinux。

  经过一番尝试,找到了成功切换到Manjaro环境的方法。顺便,优化了启动方式。使用快捷方式结合VBScript的方式,隐藏了桌面环境启动时的命令行窗体。

  虽然WSL下的环境还不尽如意,但是也让我们看到在Windows玩耍Linux环境的可能性。最后,祝大家玩的愉快:)。

  

免责声明:文章转载自《WSL使用小结:从ArchLinux到Manjaro》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RT1052 BootLoader总结_后续Bin合并Jenkins配置Gogs webhook插件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

kaggle kernel使用指南

有几个要注意的地方: 1、可以选择CPU或GPU,但是机器学习模型一般的CPU就够了,最近(2019.04)使用GPU的话一小时后总是会断开连接,这时候要跑久一点的cell就凉了。 2、导入文件:支持自行导入,如果是kaggle上的数据也可以直接从官方比赛数据中选择,导入到右侧的workspace中后,在代码中要导入csv文件,其路径就是点击workspa...

Linux-软件包管理-rpm命令管理-校验、文件提取

rpm -V httpd 查看已安装的apache包中文件信息是否已经被人修改 rpm -ql httpd 查看已安装的apache包中文件的位置 vim /etc/httpd/conf/httpd.conf 编辑修改apache包的配置文件httpd.conf 在命令模式下输入"402G",跳转到402行 在命令模式下输入"A",然后在插入...

npm包发布

1.创建一个包module(自定义名称)目录。2.进入此目录,执行npm init,这样就在 module 目录中生成一个符合 npm 规范的 package.json 文件。3.创建一个index.js 作为包的接口,一个简单的包就制作完成了。4.使用 npm adduser 根据提示输入用户名、密码、邮箱,创建一个账号用于维护自己的包,等待创建完成,可...

Mongodb学习总结(2)——MongoDB与MySQL区别及其使用场景对比

对于只有SQL背景的人来说,想要深入研究NoSQL似乎是一个艰巨的任务,MySQL与MongoDB都是开源常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL数据库。它们各有优点,关键看用在什么地方。 什么情况下,MongoDB是最好的选择? 很多人认为MongoDB难以置信的强大,是一个可扩...

30道linux运维面试题(很精典)

https://zhangge.net/1986.html 1.linux 如何挂在 windows 下的共享目录         Shell   1 mount.cifs//192.168.1.3/server/mnt/server-ouser=administrator,pass=123456 linux 下的 server 需要自己手动建...

Oracle dblink详解(转)

oracle dblink 是干嘛的:比如现在有俩个数据库,都是单独的,如果我们现在登陆当前数据库,想访问另一个数据库,如果我们建了DBLINK我们就可以直接在当前数据库取访问另一个数据库。 如select * from user@xe 这样我们就可以直接访问另一个数据库的user表@真东方之子 database link概述 database link是...