温故知新,在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-desktop
和xrdp
两个软件。
稍等片刻之后,安装完毕
创建桌面登录用户
创建一个登录用户名
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