1.前言

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

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

  

注意: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进行安装,安装完成后,如图所示:

  

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

2.1.2 自定义安装路径

2.2 安装ArchLinux

  * 从开始菜单打开 Ubuntu。从清华的ArchLinux镜像 下载 Arch bootstrap .tar.gz 放在root用户的目录LocalState\rootfs\root下,然后解压【注:解压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%\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs 中删除 bin, etc, lib, lib64, sbin, usr and var。然后从rootfs\root\root.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】:

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

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

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

   * 输入 sudo locale-gen :

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

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

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

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

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

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

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

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

C:\Users\wurui>wmic process where name="XWin_MobaX.exe" get commandline
CommandLine
"C:\Users\wurui\DOCUME~1\MobaXterm\slash\bin\XWin_MobaX.exe" -silent-dup-error -notrayicon -nolisten inet6 -hostintitle +bs -clipboard -nowgl -multiwindow -noreset :0

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

C:\Users\wurui\Documents\MobaXterm\slash\bin>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>\Documents\MobaXterm\slash\bin\XWin.exe" & " -silent-dup-error -notrayicon -nolisten inet6 -hostintitle +bs -clipboard -nowgl -multiwindow -noreset :0"
' msgbox Command
ws.Run Command,

  * (可选步骤)。修改注册表路径 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 下的UserInit为: C:\Windows\system32\userinit.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 >> pulseaudio\etc\pulse\default.pa
start pulseaudio\bin\pulseaudio.exe -D --exit-idle-time=-1

2.6 建立Manjaro桌面快捷方式

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

C:\Users\wurui>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" ,如图所示:

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

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

  * 修改名称为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]$

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

  * 好了。现在你可点击快捷方式,启动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。运行例子程序,如图所示:

  * 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.

3.结束语

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

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

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

  

WSL使用小结:从ArchLinux到Manjaro的更多相关文章

  1. WSL学习:安装ArchLinux和Root/Cling以及注意事项

    1.前言 在Windows下使用Linux常见的软件存在许多困难.选择之一是使用VMWare和VirtualBox之类的虚拟机软件,另一种选择是使用类UNIX模拟环境,如Cygwin,GNUWin32 ...

  2. 在ArchLinux、manjaro中安装MySql(mariaDB)

    安装MySql数据库.但是在MySql被Oracle收购之后,很多开源支持者就转而使用MariaDb了.不过MariaDb也和MySql兼容的,所以基本不用有什么担心.由于ArchLinux只带了Ma ...

  3. Archlinux/Manjaro使用笔记-使用makepkg安装软件 报错:未找到strip分割所需的二进制文件 的解决方法

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 使用archlinux或manjaro安装aurman时遇到如下报错 错误:未找到strip分割所需的二进制文件 原因:未安装g ...

  4. Ubuntu Navicat 安装破解+解决乱码+其他问题

    一 下载安装 Navicat Premium: https://www.navicat.com.cn/download/navicat-premium Navicat products: https: ...

  5. 使用vs code搭建C开发环境

    关于搭建vscode的开发环境来开发c网上已经有很多类似的贴子,但是几乎都是直接给出tasks.json和launch.json文件,并未说明这两个文件的作用以及如何配置.这里面向纯小白着重说明下(1 ...

  6. 编译 Tensorflow 1.10 + CUDA9.2 + MKL【转】

    本文转自:https://www.solarck.com/compile-tensorflow-gpu.html 我的电脑系统是基于 Archlinux 的 Manjaro,软件包更新的比较激进,很早 ...

  7. ArchLinux安装与配置小结

    最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...

  8. manjaro软件源报错 不停看到错误 "PackageName: signature from "User <email@archlinux.org>" is invalid" 的几种解决方法

    对于报错情况, 格式大致如下: error: PackageName: signature from "User <email@archlinux.org>" is i ...

  9. Archlinux/Manjaro使用笔记-报错:一个或多个 PGP 签名无法校验!的解决方法

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 解决办法:添加无法校验的pgp签名为信任 gpg --recv-keys xxxxxx xxxxxx为无法校验的gpg值

随机推荐

  1. WIFI共享大师无法开启发射功能

    1.打开服务(ctrl+R)输入services.msc 2.将关于wifi的服务打开 这里有windows移动热点服务和WLAN开头的服务

  2. CodeForces:#448 div2 B. XK Segments

    传送门:http://codeforces.com/contest/895/problem/B B. XK Segments time limit per test1 second memory li ...

  3. time模块和datetime模块详解

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

  4. 虚拟架构就绪 | 谈谈Windows Server 2012 R2迁移这件小事

    我们所说的“新选择”包括操作系统升级——告别Windows Server 2003或2008,选择用什么样的姿势进行升级呢? 新年伊始,正是企业对自身IT基础设施进行评估的最佳时期.在多项评估项目里面 ...

  5. leetcode 【 Plus One 】python 实现

    题目: Given a non-negative number represented as an array of digits, plus one to the number. The digit ...

  6. 后缀数组(SA)学习记录

    一只只会后缀自动机却不会后缀数组的弱鸡做了一下HDU - 1403,结果SAM被卡内存了,然后学习了一下SA. 以下两道题都是求LCS,区别在于字符串长度. 参考blog:https://www.cn ...

  7. manjaro无声音

    解决方法:https://forum.manjaro.org/t/no-sound-solved/3517 LOL i feel like such a noob. Fixed my problem ...

  8. 位图 c++ 位图排序

    什么是位图?来自http://www.cnblogs.com/dolphin0520/archive/2011/10/19/2217369.html 位图就是用一个bit来标记某个元素对应的值,键值就 ...

  9. REDIS基础笔记

    Redis基础笔记 资源链接 简介 简介 安装 五种数据类型及相应命令 1. 字符串类型 2. 散列类型 3. 列表类型 4. 集合类型 5. 有序集合 其他 事务 SORT 生存时间 任务队列 发布 ...

  10. POJ 2728 Desert King(最优比例生成树 二分 | Dinkelbach迭代法)

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 25310   Accepted: 7022 Desc ...