WSL2安装CentOS7和CentOS8
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、下载ZIP包?
- 二、安装
- 1.打开Windows子系统支持
- 2.安装到指定位置
- 3.管理虚拟机
- 4.配置虚拟机
- 1.配置国内源
- 2.安装软件
- 3.安装第三方源
- 5.配置用户
- 1.创建用户
- 2.赋予sudo权限
- 3.测试sudo权限
- 6.配置登录用户
- 总结
前言
Windows11官方WSL2已经支持Ubuntu、Open SUSE、Debian和Oracle等等发行版,由于CentOS也是非常经典的一个发行版,由于官方尚未提供安装方式,所以我整理了下安装方式给有需要的人,方法很简单。
一、下载ZIP包?
这一步比较简单,ZIP包本身也不大,打不开页面的请“科学上网”。
CentOS-WSL
CentOS-8

CentOS-7

二、安装
1.打开Windows子系统支持
WSL需要Windows子系统支持和虚拟化支持,打开方式请看我的文章或自行搜索下,方法很简单,这里就不赘述了。
2.安装到指定位置
强烈建议不要安装到C盘,这个虚拟机会越用越大,未来可能把C盘撑爆。虽然可以移动,但是配置起来麻烦,不如一步到位。
首先,在D盘创建一个文件夹CentOS8,如果安装7的话就创建文件夹CentOS7。
其次,将下载的ZIP包解压到对应的目录下,你会得到一个压缩文件和一个可执行文件。以CentOS8为例:初始有CentOS8.exe和rootfs.tar.gz两个文件,中间那个文件是配置后才有的。

最后,双击CentOS8.exe等待配置完成,这个时候你应该已经进入系统了,使用的用户是root。
安装差不多就到这里了,接下来我们简单配置下。
3.管理虚拟机
如果退出了也不用每次都到文件夹下面去打开,你只要执行wsl -d <发行版>就行了。
wsl --list -vNAME STATE VERSION
* Ubuntu-20.04 Stopped 2Ubuntu-22.04 Running 2Ubuntu-18.04 Stopped 2CentOS8 Stopped 2CentOS7 Stopped 2
上面是我安装的所有版本,可以看到CentOS8和CentOS7就是我通过前面的方式安装的。
使用下面的命令打开CentOS8:
wsl -d CentOS8
接下来最重要的一步配置,主要包括配置国内源和配置用户。
4.配置虚拟机
1.配置国内源
原始的CentOS8发行版里面是没有源的,无法更新缓存,也就是不能安装软件。
另外,CentOS7发行版里面有国外源,可以缓存,速度没有保证。
这里贴出CentOS8的换源操作,CentOS7的请自行查阅。
#备份原始源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup#下载新的源wget方法
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo#下载新的源curl方法,这个发行版是没有预装wget的,需要使用curl,效果一样
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo#替换字段
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*#缓存
yum clean
yum makecache
2.安装软件
对于习惯使用Debian的用户可能会有差别,他们的很多包名不一样。安装软件没有Debian系那么简单。
这里介绍几个简单的安装包方法:
cmake:
yum install cmake
wget:
yum install wget
和Ubuntu不一样的是,你安装gcc它会同时安装g++,只不过他这里不叫g++。
3.安装第三方源
CentOS有一个令人诟病的地方,官方的源有时候安装不了一些软件。比如:ffmpeg和htop等等。这个时候就只能通过其它的方法解决了,好在不是太难,当然也够折腾一下的了。
这里以CentOS8安装ffmpeg为例:
sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
sudo yum install -y http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.14-2.el7.x86_64.rpm
sudo yum install -y ffmpeg
对,没错不出意外的话还是出意外了。SDL2-2.0.14-2.el7.x86_64.rpm这个包不存在,我去网站找了一圈没有找到,这个是ffmpeg依赖的多媒体库,必须装上去才行。
所以,只能另辟蹊径了,接着往下看。
SDL2下载
包含了x86和x86_64的两个指令的,按需下载即可。

下载完成后先安装SDL2,安装完成后再安装ffmpeg就没问题了,实测运行没问题,也支持NVCUVID。
同时,WSL的图形界面也是支持的,不需要安装额外的东西。
基本你添加了额外源之后,像htop这种之前不能安装的现在都可以安装了,但可能也不包括所有的包。
其它的包各位另行想办法吧!
5.配置用户
差点漏了很重要的一个配置,我们登录CentOS8或CentOS7用的都是root用户,我们可以自己建一个用户,然后将我们的账号设为登录账号,防止一直以root操作引发灾难问题。
1.创建用户
这个比肩简单,Linux应该都一样的。这里我推荐adduser,会默认创建/home/<用户>目录,不用指定额外参数,提示输入密码就完成了。
adduser anold
因为这里没有打开密码验证,可以随便输,只做了简单的弱密码提示,直接过了就行了,没有影响。
2.赋予sudo权限
这里我发现连sudo程序都没有安装,我选择使用另一种方法配置用户的速度权限,那就是修改/etc/sudoers。
这一步一定要在root账户下进行,因为我们创建的用户这会还没有sudo权限。
yum install sudo
vim /etc/sudoers
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
<你的用户> ALL=(ALL) ALL## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL## Allows members of the users group to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
注意:sudoers这个文件很重要,修改需要谨慎,如果是WSL我们还可以通过切换root挽救,如果是实体机可能就完犊子了。
重点就在这一句:
<你的用户> ALL=(ALL) ALL
这里我之前创建的是anold,所以应该是下面的样子:
anold ALL=(ALL) ALL
切记,wq!
3.测试sudo权限
很简单,使用sudo执行程序就行了。先把用户切换到anold,再执行更新源:
下面的命令会要求输入密码,也可以配置不需要输密码,但我是喜欢输密码,因为一方面是安全着想,另一方面是给自己留一个思考的时间,防止造成不可挽回的损害!
su - anold
sudo yum update
不出意外的话,密码验证通过后就开始更新源了,说明sudo权限增加成功了!
6.配置登录用户
不想打字了,我之前一篇文章讲述了Ubuntu配置非root用户为默认用户,同样的方法也适用于CentOS8。
WSL配置默认用户
总结
1、有CentOS需求的福音
2、只支持CentOS8和CentOS7两个发行版。
相关文章:
WSL2安装CentOS7和CentOS8
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载ZIP包?二、安装1.打开Windows子系统支持2.安装到指定位置3.管理虚拟机4.配置虚拟机1.配置国内源2.安装软件3.安装第三方源 5.配置用户1.创建…...
不平衡电网条件下基于变频器DG操作的多目标优化研究(Matlab代码Simulink实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码&Simulink实现&文章讲解 💥1 概述 文献来源: 最近,利用并网转换器(GCC)克服电网故障并支撑电网电压已…...
【Leetcode】(自食用)简单题||单词数
step by step. 题目: 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: "Hello, my name is John" 输出: 5 解释: 这里的单词是指连续的不是空格…...
C语言代码的x86-64汇编指令分析过程记录
先通过Xcode创建一个terminal APP,语言选择C。代码如下: #include <stdio.h>int main(int argc, const char * argv[]) {int a[7]{1,2,3,4,5,6,7};int *ptr (int*)(&a1);printf("%d\n",*(ptr));return 0; } 在return 0处打上断点&…...
基于springboot+vue的房屋租赁系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...
Python文件读写操作详解:从基础到高级
摘要:文件读写是Python编程中常见的操作之一。本文将介绍Python中文件读写的基础知识,包括打开文件、读取文件内容、写入文件、关闭文件等基本操作。此外,还将探讨一些高级文件读写技术,如使用上下文管理器、处理异常、使用with语…...
ThreadLocal基本介绍
文章目录 什么是ThreadLocalThreadLocal解决了什么问题ThreadLocal的作用 ThreadLocal的使用场景ThreadLocal的代码示例ThreadLocal的优点ThreadLocal的缺点与volatile、synchronized、ThreadLocal比较 总结 什么是ThreadLocal ThreadLocal是Java中的一个线程本地变量…...
ffmpeg源码编译成功,但是引用生成的静态库(.a)报错,报错位置在xxx_list.c,报错信息为某变量未定义
背景:本文是对上一个文章的补充,在源码编译之前,项目是有完整的ffmpeg编译脚本的,只不过新增了断点调试ffmpeg,所以产生的上面的文章,也就是说,我在用make编译成功后,再去做的源码编…...
2023爱分析·信创云市场厂商评估报告:中国电子云
01 研究范围定义 信创2.0时代开启,信创进程正在从局部到全面、从细分到所有领域延展。在这个过程中,传统的系统集成,也在逐步向信创化、数字化及智能化转变。随着信创产业的发展,企业需要更多的技术支持和服务,而传统的系统集成已…...
网络安全学习笔记——XFF攻击流程
手工注入 手动报错注入,填写格式如:X-Forwarded-For: and updatexml(1,concat(0x7e,(select database()),0x7e),1) or 11 库名 1 and updatexml(1,concat(0x7e,database(),0x7e),1), 表名 1 and updatexml(1,concat(0x7e,(select table_name from…...
微信小程序阻止用户返回上一页,并弹窗给用户确定是否要返回上一页
在onload中调用微信的enableAlertBeforeUnload方法,在首次进入会自动监听当前的页面,在返回的时候会自动弹出弹窗阻止用户返回上一页,点击确定则返回上一页,取消则停留在当前页 onLoad: function(){wx.enableAlertBeforeUnload({…...
LangChain+ChatGLM整合LLaMa模型(二)
开源大模型语言LLaMa LLaMa模型GitHub地址添加LLaMa模型配置启用LLaMa模型 LangChainChatGLM大模型应用落地实践(一) LLaMa模型GitHub地址 git lfs clone https://huggingface.co/huggyllama/llama-7b添加LLaMa模型配置 在Langchain-ChatGLM/configs/m…...
【NLP】训练chatglm2的评价指标BLEU,ROUGE
当进行一定程度的微调后,要评价模型输出的语句的准确性。由于衡量的对象是一个个的自然语言文本,所以通常会选择自然语言处理领域的相关评价指标。这些指标原先都是用来度量机器翻译结果质量的,并且被证明可以很好的反映待评测语句的准确性&a…...
java+springboot+mysql员工工资管理系统
项目介绍: 使用javaspringbootmysql开发的员工工资管理系统,系统包含超级管理员,系统管理员、员工角色,功能如下: 超级管理员:管理员管理;部门管理;员工管理;奖惩管理&…...
FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows/mac官方中文版
FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows/mac官方中文版是一个完整的软件音乐制作环境或数字音频工作站(DAW)。它代表了 25 多年的创新发展,将您创作、编曲、录…...
探索Python数据容器之乐趣:列表与元组的奇妙旅程!
文章目录 零 数据容器入门一 数据容器:list(列表)1.1 列表的定义1.2 列表的下表索引1.3 列表的常用操作1.3.1 列表的查询功能1.3.2 列表的修改功能1.3.3 列表常用方法总结 1.4 补充:append与extend对比1.5 list(列表)的遍历1.6 补…...
Python自动化实战之使用Pytest进行API测试详解
概要 每次手动测试API都需要重复输入相同的数据,而且还需要跑多个测试用例,十分繁琐和无聊。那么,有没有一种方法可以让你更高效地测试API呢?Pytest自动化测试!今天,小编将向你介绍如何使用Pytest进行API自…...
TCP的三次握手以及四次断开
TCP的三次握手和四次断开,就是TCP通信建立连接以及断开的过程 目录 【1】TCP的三次握手过程 ---- TCP建立连接的过程 【2】TCP的四次挥手 ---- TCP会话的断开 注意: 【1】TCP的三次握手过程 ---- TCP建立连接的过程 三次握手的过程:…...
目标检测YOLO实战应用案例100讲-基于视觉与激光雷达信息融合的智能车辆目标检测研究
目录 前言 传感器选型及同步 2.1 各传感器工作原理及性能对比 2.1.1 视觉传感器...
Day 22 C++ STL常用容器——string容器
string容器 概念本质string和char 区别:特点string构造函数构造函数原型 string赋值操作赋值的函数原型示例 string字符串拼接函数原型:示例 string查找和替换函数原型示例 string字符串比较比较方式 字符串比较是按字符的ASCII码进行对比函数原型示例 s…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
