linux 创建体积小的桌面环境以运行微信和WPS

news/2024/7/6 19:39:39/文章来源:https://www.cnblogs.com/KZ25T/p/18269928

linux 创建体积小桌面环境以运行微信和WPS

使用 linux 做主力一年多了,最近准备重装系统。目前看来一些常用的闭源软件里,QQ 和搜狗输入法已经算是可以稳定使用了,但微信和 WPS 还有一堆问题,比如:

  • 微信:没有 linux 版,使用优麒麟的版本,那个是用网页版微信封装的,目录乱的很,我不希望这玩意出现在我的电脑上。微信可以说是信创路上的一大障碍了。
  • WPS:有 linux 版,功能算不上全面,但提供的功能相比于体积来说也算是物超所值,这一点上和北太天元有所类似。不过 linux 版看起来也很有些问题,比如不知道会添加什么启动项,导致每次登录都会产生一个目录 ~/模板 而不是遵循 XDG_TEMPLATES_DIR(参见~/.config/user-dirs.dirs),跟开发人员说了他们觉得这是 feature 而不是 bug,那我也觉得你这玩意是虚拟机软件而不是规范软件。另外从终端启动根本不打印错误信息,运行错误都不知道怎么错的。

另外,这俩我从 docker 启动都没法正常运行。综上我打算使用一个小的虚拟机来运行微信和 WPS

创建小的、效率高的、具有桌面环境的虚拟机

这里我使用 qemu 和 debian,Debian 下载 netinstaller,下载后路径为 ~/download/debian-12.5.0-amd64-netinst.iso

链接:https://mirrors.ustc.edu.cn/debian-cd

sudo apt install qemu-system-x86_64
cd /dev/shm # 实验路径

实验的时候路径在内存盘 /dev/shm 里,记得实际使用中,虚拟机配好之后把它从内存盘移出来。

创建虚拟磁盘:

qemu-img create -f qcow2 debian.qcow2 8G # 创建最大 8GB 的虚拟磁盘,以后可以调整

安装系统:

qemu-system-x86_64 -m 8G -smp 2 -enable-kvm -cdrom ~/download/debian-12.5.0-amd64-netinst.iso  debian.qcow2
# -m:内存大小
# -smp:使用的处理器数量

为了减小安装体积,同时便于观察系统输出,安装时语言请选择英文。另外,安装到最后这个页面的时候,取消全部勾选(这是中文安装界面,英文的忘了截图了。另外这是普通 install 而不是 graphics install,graphics也有类似的页面),因为如果在这里安装图形界面,会使得安装结果比较大:

安装之后会自动重启,但除此之外,以后启动就不用带 installer 了:

qemu-system-x86_64 -m 8G -smp 2 -enable-kvm debian-xfce3.qcow2

启动后登录,安装图形界面:

sudo apt install xfce4 lightdm xorg xfce4-terminal --no-install-recommends
sudo systemctl enable lightdm.service

重启即可获取 xfce4 下的一个很小的图形界面,安装完毕之后这个系统占有体积大约 1.6 GB;说明:

1. 想省事就:sudo apt install xfce4,不用 systemctl,这样安装之后大约有 2.0GB,同时带有 Debian 的一些主题(上边那样没有主题,相比来说比较简陋)。
2. 不装 xfce4-terminal 也可以获得桌面环境,但是没法使用命令行,甚至不能关机。
3. 此时 qcow2 文件大概 2.6GB
4. 选择 xfce4 而不是 lxde 的原因是,首先我常用 xfce4,其次 lxde 并不能小太多,第三 lxde 过于简陋了。

启用 lightdm 自动登录,毕竟都是自己用,不需要登录验证:

sudoedit /etc/lightdm/lightdm.conf
操作:把 [Seat:*]的如下两行:
#autologin-user=
#autologin-user-timeout=0
注释去掉,第一行后面加上自己的用户名。

删除用户密码,毕竟都是自己人:

sudo passwd -d 用户名
sudo passwd -d root

设置 sudo 免密码:

sudo visudo
操作:在文件最后几行的
root ALL=(ALL:ALL) ALL
下面添加一行:
用户名 ALL=(ALL) NOPASSWD:ALL

重启之后,可以直接进入用户页面,sudo 也不需要密码。

和主机通信

参考 链接,为了传输方便使用共享文件夹。

启动命令:

# 主机,挂载点为 ~/document/qemu
mkdir ~/document/qemu
qemu-system-x86_64 -m 8G -smp 2 -enable-kvm debian.qcow2 -virtfs local,path=/home/主机用户名/document/qemu,mount_tag=host0,security_model=passthrough,id=host0

虚拟机挂载命令在上文中写过了,但那个毕竟要每次手动挂载一遍,如果改为开机自启也不怎么美观,所以我尝试写入 /etc/fstab 里:

# 虚拟机,挂载点为 ~/Documents
echo "host0 /home/虚拟机用户名/Documents 9p trans=virtio,version=9p2000.L" | sudo tee /etc/fstab
# 挂载参数看不懂什么意思,但这确实管用

重启,如果把主机文件放进这里,就能在虚拟机里读取:

安装微信和 WPS

安装中文字体

从自己的操作系统里选一些字体安装到新的操作系统里,我选的是 msyh.ttc(微软雅黑)和 consolas.ttf,放到虚拟机的 /usr/share/fonts/myfont 里。然后设置系统字体为 YaHei,终端字体为 consolas,重启终端。

执行:

sudo nano /etc/locale.gen # 修改 zh_CN.UTF-8 那一行去掉注释
sudo /sbin/locale-gen

生成中文支持。

安装微信

下载优麒麟微信

安装:

sudo apt install ~/Documents/weixin.deb

如果遇到报错:

The package <package-name> needs to be reinstalled, but I can't find an archive for it.

执行(没错可以跳过):

sudo nano /var/lib/dpkg/status # 把 weixin 那一段都删了
sudo apt install libasound2
sudo dpkg -i ~/Documents/weixin.deb

复制微信图标到桌面:

cp /usr/share/applications/weixin.desktop ~/Desktop
chmod a+x ~/Desktop/weixin.desktop

双击图标即可执行。

安装 WPS

官网下载 wps

安装依赖:

# 又一个不好好解决依赖的,害得我debug一个多小时
sudo apt install libxslt1.1 qt5-style-plugins
# 如果是 docker 还得装 xdg-utils 和 bsdmainutils

执行

sudo dpkg -i ~/Documents/wps.deb

双击桌面图标 WPS,新建一个文本文档,点击右上角第二行、从右数第四个 A 图标,语言改为中文。

解决缺失字体:

# 主机
wget https://github.com/dv-anomaly/ttf-wps-fonts/archive/refs/heads/master.zip # 连不上 GitHub 的自己想办法
unzip master.zip -d ~/document/qemu
# 虚拟机
cd ~/Documents/ttf-wps-fonts-master
sudo bash ./install.sh
# 主机
rm -r ~/document/*

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/731798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pta7-8分析

智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、…

详解:把 Linux 系统做成 Livecd

详解:把 Linux 系统做成 Livecd本文比较长,制作 LiveCD 的时间也比较长Linux Livecd 有很多好处,比如常用于修复受损的系统,可以随时随地用一台电脑启动,对于 kali linux 来说用来做好人好事不留名,很刑很好。但是目前网上相关制作资料大多很差:要么是非常古老的资料,甚…

Sum of Single Effects Linear Regression (susieR):多个因果变异位点的鉴定

使用susieR鉴定多个因果变异位点只需要两个输入文件,一个输入文件是包含Zscore值的SNP位点(zscore.txt),另一个文件是LD matrix(LD.matrix.ld)。 zscore.txt 文件如下所示:LD.matrix.ld 文件如下所示:LD.matrix.ld 文件是通过plink生成的,使用到的命令如下: plink --…

中国居民膳食指南2022

梳理中国居民膳食指南2022中的重要信息中国居民膳食指南2022摘录 准则一 食物多样,合理搭配每天的膳食应包括谷薯类、蔬菜水果、畜禽鱼蛋奶和豆类食物。平均每天摄入12种以上食物,每周25种以上,合理搭配。每天摄入谷类食物200~300g,其中包含全谷物和杂豆类50~150g;薯类…

面经梳理-redis

梳理redis相关面经题目 Redis的高性能体现在哪些方面?纯内存访问 非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间 单线程避免了线程切换和竞态产生的消耗参考: 《…

Windows 10 迁移用户文件夹(C:\Users)到其他盘

Windows 10 迁移用户文件夹(C:\Users)到其他盘 目标:制作一个符号链接 C:\Users -> D:,像 linux 分区挂载那样。 事先说明:数据无价,请提前保存好用户目录数据。我本人是刚刚重装之后操作的,因此对数据不敏感。 本人参考了 Win11使用mklink转移C:\Users文件夹至非系统…

Nuxt3 的生命周期和钩子函数(二)

摘要:本文深入介绍了Nuxt.js框架中几个关键的生命周期钩子函数,包括app:redirected(SSR环境下重定向前触发)、app:beforeMount(CSR下应用挂载前)、app:mounted(CSR下Vue应用在浏览器挂载时)、app:suspense:resolve(CSR中Suspense组件解析子组件完成时)以及link:prefe…

性能测试教程

一、什么是性能测试 通俗地讲,性能测试就是检查一个系统或软件在承受各种工作负载时,它的表现如何。这就像你买了一辆新车,不仅要看它的外观和内饰,更想知道它在高速行驶、爬坡、满载等情况下的表现,比如油耗、速度、稳定性等。 在软件或系统领域,性能测试会模拟用户在实…

如何把 linux 桌面变得像 Windows

如何把 linux 桌面变得像 Windows @目录如何把 linux 桌面变得像 Windows第0步 下载主题第一步:搞 xfce 的窗口第2步 搞 xfce 的顶端状态栏第3步 搞 xfce 的终端第4步 搞 xfce 的快捷键 众所周知,linux 最好的桌面是 Windows(开玩笑,请勿当真);我本人比较喜欢 Windows 的…

URDF - 建模原理

1. 基本建模文件 URDF 基本单位:弧度 弧度/s 米 2. URDF进化版本 - xacro模型文件

linux在tty终端显示中文字符的最终解决办法(fbterm字体间距,简单实用)

linux在tty终端显示中文字符的最终解决办法(fbterm字体间距,简单实用)Linux 的tty文字终端默认是不支持中文的,这对我们使用文字终端办公造成一定困扰,而且还限制字体,只有几种并不好用的字体。这里我解决以上问题。 我的系统: uname -sr Linux 6.1.0-kali7-amd64基于D…

空气动力学复习总结

绪论与补充 流体的物理模型 流体定义:静止状态无法承受剪切应 连续介质假设:不考虑分子间隙,认为介质连续分布于流体所占据的整个空间。流体由连续的流体微团组成,宏观上要足够小,以反映流场“点”状态;微观上要足够大,以消除分子随机运动带来的宏观物理量在统计上的涨落…

cv2.imread

cv2.imread 是 OpenCV (Open Source Computer Vision Library)中的一个函数,用于读取图像文件。 参数:filename: 要读取的图像文件的路径。 flags:指定图像读取的方式。默认为 cv2.IMREAD_COLOR,表示读取彩色图像。可以使用以下标志修改读取方式:cv2.IMREAD_COLOR:默认参…

linux修改swap分区的方法,和需要注意的坑

linux修改swap分区的方法,和需要注意的坑 电脑配置:x86_64,Windows 10+kali linux双系统电脑。 $ uname -r 6.1.0-kali5-amd64修改的方法和我上一篇blog差不多,我销毁了 swap 之后又在另一个地方重建了该分区,再次重启之后 dmesg 发现启动时间多达41秒(平时10秒),而且耗…

hadoop00_大数据技术介绍

生态架构数据导入 离线方式处理的数据,需要通过 ETL 模块实现导入到大数据存储系统进行存储;其中 Sqoop 是常见的抽取结构化数据工具,而 Flume、LogStach 是用于抽取结构化、半结构化数据的工具。 数据存储 大数据的数据存储系统,最常见的包括分布式文件系统 HDFS;如果需要…

高级计算机网络--计算题

1.有如下的四个/24地址块,试进行最大可能的聚合 212.56.132.0/24 212.56.133.0/24 212.56.134.0/24 212.65.135.0/24主要区别在第三字节 1000 0100 1000 0101 1000 0110 1000 0111所以最长相同前缀为 1000 0100 为132212.56.132.0/22 2.一个UDP用户数据报的数据部分为4192B,…

猿人学第一题逆向

下xhr断点观察堆栈调用信息,发现没有异步任务 直接一步一步往下跟这个地方很可疑下断点看看 大概率是这个地方 扣代码点击查看代码 window = global;var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ var b64pad = ""; /* base-64…

linux(双系统电脑)缩小根目录分区、给/home单独分区的简单方法

linux(双系统电脑)缩小根目录分区、给/home单独分区的简单方法​ 电脑配置:x86_64,有1T的固态硬盘。Windows 10+kali linux双系统电脑。 $ uname -r 6.1.0-kali5-amd64在操作之前有 300G 作为一整个根目录安装 kali,文件系统 为 ext4,没有给 /home 单独分区。现在整个根目录…

5_Spring Bean Scope 失效分析

Scope作用域 1. Scope类型有哪些 截至目前为止,Spring 目前有如下几种scope:singleton: 从ioc容器中返回的都是同一个对象 prototype: 从ioc容器中可以返回多个对象 request: 该类型的bean的生命周期就和request请求一样,每当有request请求发送过来,就会创建一个bean对象放入…

Profibus DP主站转Modbus模块连接马达保护器案例

在工业自动化控制系统中,Profibus DP和Modbus是常见的通信协议,在同一现场还有可能遇到Modbus协议,ModbusTCP协议,Profinet协议,Profibus协议,Profibus DP协议,EtherCAT协议,EtherNET协议等。本案例介绍了如何使用Profibus DP主站转Modbus模块(XD-MDPBM20)来实现与马…