温故知新,在Windows 11的WSLg(或Multipass)的Ubuntu中安装和运行桌面应用(Snap、Deb)


安装和使用Multipass

https://multipass.run

什么是Multipass

Multipass是一个在Linux、macOS和Windows上快速生成云式Ubuntu虚拟机的工具。

它为你提供了一个简单而强大的CLI,使你能够快速访问Ubuntu命令行或创建自己的本地迷你云。

本地开发和测试是一个痛苦的过程,但Multipass通过自动化所有的设置和拆解,使它变得更容易。Multipass有一个不断增长的图像库,使你能够启动特制的虚拟机,或你自己通过其强大的云启动界面配置的自定义虚拟机。

开发人员可以使用Multipass来制作云部署的原型,并在任何机器上创建新鲜、定制的Linux开发环境。Mac和Windows用户可以使用Multipass作为在其系统上获得Ubuntu命令行的最快捷方式。新的Ubuntu用户可以把它作为一个沙盒来尝试新的东西,而不影响他们的主机,也不需要双启动。

获取安装Multipass

  • multipass-1.8.0+win-win64.exe

安装之后,它会主动写一个PATH值。

检测安装后的版本

multipass version

创建并启动新实例

https://discourse.ubuntu.com/t/working-with-multipass-instances/8422

multipass launch

然后可能会成功,并且存在一个输出:

multipass launch
...
Launched: consistent-greyhound

这个consistent-greyhound就是新实例的名称,我们也可以看到它跑起来没

multipass list

查看指定实例的信息

multipass info $instanceName

也可以定制一些参数来创建

multipass launch --name myVM --mem 2G --disk 10G --cpus 2 impish

其中这个impish指代Ubuntu 21.10这个版本,因为它的代号是Impish Indri

管理Ubuntu实例

关闭指定实例

multipass stop $instanceName

删除指定实例

multipass delete $instanceName

恢复指定实例

multipass recover $instanceName

清空所有已删除实例

multipass purge

进入到Ubuntu实例

可以单独对实例下发指定命令

multipass exec $instanceName $command

进入指定实例控制台

multipass shell $instanceName

例如:

multipass shell consistent-greyhound

设置Root密码并切换到Root

首次设置Root密码

sudo passwd

切换到Root账户

su root

允许建立本地挂载映射

对了,还需要使用管理员权限打开终端才行。

在Windows上默认这个Mount功能是关闭的,需要单独设置打开。

multipass set local.privileged-mounts=true

设置和本机的共享目录

首先还是切到根目录创建一个hello文件夹

cd /

mkdir hello

退出回到外面

exit

创建共享,本地目录+虚拟机里面路径

multipass mount /Users/xxxxx/Downloads consistent-greyhound:/hello

这时候,你再回到Ubuntu里面就可以访问到这个目录的文件了。

安装Ubuntu的桌面环境

https://blog.csdn.net/ppp2006/article/details/47168941

sudo apt-get install xserver-xorg

Ubuntu中切换包源

https://blog.csdn.net/qq_36938617/article/details/114887500

获取国内包源

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

以Ubuntu 21.10为例:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ impish-proposed main restricted universe multiverse

以Ubuntu 20.04为例:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

以Ubuntu 18.04为例:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

以Ubuntu 16.04为例:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

备份原有包源

cd /etc/apt/

cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑Ubuntu包源配置文件

vim sources.list

敲下dG清空文本内容。

再敲下i进入编辑状态

粘贴上面对应Ubuntu版本的国内包源清单,这里版本要对应哈,右键即可粘贴

按Esc退出并输入:wq保存。

Ubuntu中安装应用

通过DPKG方式安装DEB包

deb包是Debian,Ubuntu等Linux发行版的软件安装包,扩展名为.deb,是类似于rpm的软件包,Debian,Ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦。

sudo dpkg -i xxxxxx.deb

例如:

sudo dpkg -i ./cn.xxxxxxxxxx.xxxx-linux_x64-8.3.16.42-0.deb

通过SNAP方式安装SNAP包

Snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。. 所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。

sudo snap install xxxxx.2_amd64.snap

例如:

sudo snap install xxxxxxx.3.16.47_amd64.snap --dangerous --devmode

也可以直接安装指定名字的软件,例如:

sudo snap install libreoffice

什么是SNAP包

https://cn.ubuntu.com/blog/what-is-snap-application

Snap包是Ubuntu 16.04 LTS发布时引入的新应用格式包。目前已流行在Ubuntu且在其他如Debian、Arch Linux、Fedora、Kaili Linux、openSUSE、Red Hat等Linux发行版上通过snapd来安装使用snap应用。

当你在安装完snap后,你会发现在在根目录下会出现如/dev/loop0的挂载点,这些挂载点正是snap软件包的目录。Snap使用了squashFS文件系统,一种开源的压缩,只读文件系统,基于GPL协议发行。一旦snap被安装后,其就有一个只读的文件系统和一个可写入的区域。应用自身的执行文件、库、依赖包都被放在这个只读目录,意味着该目录不能被随意篡改和写入。

squashFS文件系统的引入,使得snap的安全性要优于传统的Linux软件包。同时,每个snap默认都被严格限制(confined),即限制系统权限和资源访问。但是,可通过授予权限策略来获得对系统资源的访问。这也是安全性更好的表现。

Snap可包含一个或多个服务,支持cli(命令行)应用,GUI图形应用以及无单进程限制。因此,你可以单个snap下调用一个或多个服务。对于某些多服务的应用来说,非常方便。前面说到snap间相互隔离,那么怎么交换资源呢?答案是可以通过interface(接口)定义来做资源交换。interface被用于让snap可访问OpenGL加速,声卡播放、录制,网络和HOME目录。Interface由slot和plug组成即提供者和消费者。

预装了Snap的发行版

https://snapcraft.io/docs/installing-snapd

运行已安装的程序

如果你成功安装了,那么最好切换到安装目录看看启动名称是什么。直接输入启动名称就可以了。

$productName

Ubuntu中安装桌面

https://new.qq.com/omn/20211123/20211123A02RBM00.html

安装桌面和RDP软件

在这之前,我们先更新下包索引。

sudo apt-get update

接下来开启安装

sudo apt-get install ubuntu-desktop xrdp -y

这将一次性安装ubuntu-desktopxrdp两个软件。

稍等片刻之后,安装完毕

创建桌面登录用户

创建一个登录用户名

sudo adduser $userName

并且给这个用户赋予访问权限

sudo usermod -aG sudo $userName

获取当前Ubuntu实例IP

ip a

从这里面,我姑且看到了一个ip,等下试试:172.26.52.107

通过RDP客户端远程Ubuntu

在Windows 11搜索远程,找到远程桌面连接

打开它,输入刚才的IP地址

点击连接,弹出的对话框选是

我们将看到一个登录对话框

输入之前设定用户名和密码,并且点击ok

太棒了,你现在看到的是Ubuntu的桌面引导,说明我们已经来到桌面了

等待下软件更新

是的,没错,你现在看到的就是真正的Ubuntu桌面

是的,这看起来简直太棒了

查看之前安装的桌面客户端,运行良好

Ubuntu中安装Mono

https://www.mono-project.com/download/stable/#download-lin

在Ubuntu 20.04中安装Mono

先把Mono的仓库添加到系统中,并且更新索引。

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

再安装Mono

sudo apt install mono-devel

sudo apt install mono-complete

验证已安装的Mono版本

mono --version

在Multipass里面运行Docker容器

https://multipass.run/docs/docker-tutorial

multipass launch docker