WSL2安装CentOS7和CentOS8

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、下载ZIP包?
  • 二、安装
    • 1.打开Windows子系统支持
    • 2.安装到指定位置
    • 3.管理虚拟机
    • 4.配置虚拟机
      • 1.配置国内源
      • 2.安装软件
      • 3.安装第三方源
    • 5.配置用户
      • 1.创建用户
      • 2.赋予sudo权限
      • 3.测试sudo权限
    • 6.配置登录用户
  • 总结


前言

Windows11官方WSL2已经支持UbuntuOpen SUSEDebianOracle等等发行版,由于CentOS也是非常经典的一个发行版,由于官方尚未提供安装方式,所以我整理了下安装方式给有需要的人,方法很简单。


一、下载ZIP包?

这一步比较简单,ZIP包本身也不大,打不开页面的请“科学上网”。
CentOS-WSL

CentOS-8
在这里插入图片描述

CentOS-7
在这里插入图片描述

二、安装

1.打开Windows子系统支持

WSL需要Windows子系统支持和虚拟化支持,打开方式请看我的文章或自行搜索下,方法很简单,这里就不赘述了。

2.安装到指定位置

强烈建议不要安装到C盘,这个虚拟机会越用越大,未来可能把C盘撑爆。虽然可以移动,但是配置起来麻烦,不如一步到位。

首先,在D盘创建一个文件夹CentOS8,如果安装7的话就创建文件夹CentOS7

其次,将下载的ZIP包解压到对应的目录下,你会得到一个压缩文件和一个可执行文件。以CentOS8为例:初始有CentOS8.exerootfs.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

上面是我安装的所有版本,可以看到CentOS8CentOS7就是我通过前面的方式安装的。

使用下面的命令打开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有一个令人诟病的地方,官方的源有时候安装不了一些软件。比如:ffmpeghtop等等。这个时候就只能通过其它的方法解决了,好在不是太难,当然也够折腾一下的了。

这里以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下载

包含了x86x86_64的两个指令的,按需下载即可。

在这里插入图片描述
下载完成后先安装SDL2,安装完成后再安装ffmpeg就没问题了,实测运行没问题,也支持NVCUVID

同时,WSL的图形界面也是支持的,不需要安装额外的东西。

基本你添加了额外源之后,像htop这种之前不能安装的现在都可以安装了,但可能也不包括所有的包。

其它的包各位另行想办法吧!

5.配置用户

差点漏了很重要的一个配置,我们登录CentOS8CentOS7用的都是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、只支持CentOS8CentOS7两个发行版。

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

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

相关文章

【ASP.NET MVC】数据到客户端(7)

前文ViewBag数据在服务端动态生成页面&#xff0c;也可以传到客户端浏览器供JS使用。 一、数据从控制器到客户端 前文介绍&#xff0c;动态生成页面时&#xff0c;控制器的数据 并没有传递到 客户端&#xff0c;而是给自己来用&#xff0c;生成View 再利用http传递到客户端浏…

神经概率语言模型

本文主要参考《A Neural Probabilistic Language Model》这是一篇很重要的语言模型论文,发表于2003年。主要贡献如下: 提出了一种基于神经网络的语言模型&#xff0c;是较早将神经网络应用于语言模型领域的工作之一&#xff0c;具有里程碑意义。采用神经网络模型预测下一个单词…

Linux环境下VS code的python与C++调试环境的安装

Linux环境下VS code的python与C调试环境的安装 文章目录 Linux环境下VS code的python与C调试环境的安装前言一、云服务器的环境二、VS code相关信息三、python 开发环境配置四、C开发环境配置1.测试main.cpp2.进行debug3.进行debug程序4.运行main.cpp程序步骤 前言 最近写的 C&…

Meta AI研究团队新AI模型: Llama 2 大语言模型

Llama是Facebook Research团队开发的基础语言模型集&#xff0c;旨在提供广泛的语言理解能力。它基于转换器架构&#xff0c;参数范围从7B到65B。通过使用Llama模型&#xff0c;研究人员和开发人员可以构建更先进的自然语言处理系统。您可以在GitHub上找到相关的代码和资源&…

【BASH】回顾与知识点梳理(二)

【BASH】回顾与知识点梳理 二 二. Shell 的变量功能2.1 什么是变量&#xff1f;2.2 变量的取用与设定: echo, 变量设定规则: set/unset2.3 环境变量的功能用 set 观察所有变量 (含环境变量与自定义变量)export&#xff1a; 自定义变量转成环境变量那如何将环境变量转成自定义变…

【Spring Cloud 五】OpenFeign负载均衡

这里写目录标题 系列文章目录背景一、OpenFeign是什么Feign是什么Feign的局限性 OpenFeign是什么 二、为什么要有OpenFeign三、如何使用OpenFeign服务提供者order-servicepom文件yml配置文件启动类实体ParamController 服务消费者user-servicepom文件yml配置文件启动类接口类Us…

怎么维护自己的电脑?

方向一&#xff1a;我的电脑介绍 我使用的是一台来自知名品牌的笔记本电脑。它具有高性能的核心配置&#xff0c;如快速处理器、大容量内存和高性能显卡&#xff0c;以及宽敞的存储空间。我选择这台电脑主要是因为它的出色性能和可靠性&#xff0c;能够满足我在学习和工作中的…

Bean的实例化方法

目录 1.工厂模式通常有三种形态&#xff1a; 2.简单工厂 2.1 静态工厂 2.1通过factory-bean实例化 2.3通过FactoryBean接口实例化 3.测试 关于容器的使用 3.1获得spring文件方式 3.2getBean方式 4.关闭容器 1.工厂模式通常有三种&#xff1a; 第一种&#xff1a;简单工…

(杭电多校)2023“钉耙编程”中国大学生算法设计超级联赛(5)

1001 Typhoon 计算几何 对于每一个避难点,计算其到所有线段的距离,取min即可 AC代码&#xff1a; #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<deque> #include<cmath> #include<cstdio&…

【Linux命令200例】whereis用于搜索以及定位二进制文件

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜…

nexus迁移

数据和配置迁移 打包两个目录&#xff0c;配置nexus-2.13.0-01和数据sonatype-work 数据量大可以split分割之后迁移再合并 大概看下文件目录 [roottest nexus]# tree -L 3 . ├── nexus-2.13.0-01 │ ├── bin │ │ ├── jsw │ │ ├── nexus │ │ …

selenium 遇到更新chorme驱动

打开浏览器,在地址栏输入chrome://version/便可以查看到谷歌当前的版本号 谷歌浏览器驱动的下载网址 http://chromedriver.storage.googleapis.com/index.htmlhttp://chromedriver.storage.googleapis.com/index.html 解压后把chromedriver.exe 放到python安装的目录下&am…

谈一谈缓存穿透,击穿,雪崩

缓存穿透 缓存穿透是指在使用缓存系统时&#xff0c;频繁查询一个不存在于缓存中的数据&#xff0c;导致这个查询每次都要通过缓存层去查询数据源&#xff0c;无法从缓存中获得结果。这种情况下&#xff0c;大量的请求会直接穿透缓存层&#xff0c;直接访问数据源&#xff0c;…

电动自行车上架eBay的UL2849、16CFR1512测试标准

在奥运经济的带动下&#xff0c;今年以来运动自行车消费有较大幅度增长&#xff0c;其中高端消费者对进口自行车需求扩张&#xff0c;上半年竞赛型自行车进口量同比增长49.5%。另外&#xff0c;电助力自行车在国际市场也倍受追捧&#xff0c;国际自行车贸易总额的60%来自中国&a…

嵌入式入门教学——C51

一、前期准备 1、硬件设备 2、软件设备 二、预备知识 1、什么是单片机&#xff1f; 在一片集成电路芯片上集成微处理器、存储器、IO接口电路&#xff0c;从而构成了单芯片微型计算机&#xff0c;及单片机。STC89C52单片机&#xff1a; STC&#xff1a;公司89&#xff1a;所属…

【计算机网络】应用层协议 -- DNS协议

文章目录 1. DNS背景2. 域名简介3. 域名解析过程4. 使用dig查看DNS过程 1. DNS背景 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 TCP/IP当中通过IP地址和端口号的方式&#xff0c;来确定…

调试正在运行的程序(Keil)

大家好&#xff0c;我是惊觉。接上一篇调试正在运行的程序(STM32CubeIDE)&#xff0c;今天Keil的实现方法。调试正在运行的程序&#xff0c;属于附着调试&#xff0c;在启动调试器时不会重置单片机的运行状态&#xff0c;从而可以定位死机等问题。没看过上一篇的同学&#xff0…

SystemC的调度器

文章目录 前言调度器初始化evaluatewait updatenotify delta notificationtime notification仿真结束 前言 SystemC是基于C的库&#xff0c;主要用来对 IC 进行功能建模和性能建模。有时也被用来当做 RTL (register transfer level) 级的升级版 HLS(High Level synthesis) 直接…

力扣 416. 分割等和子集

题目来源&#xff1a;https://leetcode.cn/problems/partition-equal-subset-sum/description/ C题解&#xff08;思路来源代码随想录&#xff09; &#xff1a; 背包问题有多种背包方式&#xff0c;常见的有&#xff1a;01背包、完全背包、多重背包、分组背包和混合背包等等。…

JVM基础篇-虚拟机栈

JVM基础篇-虚拟机栈 定义 Java Virtual Machine Stacks &#xff08;Java 虚拟机栈&#xff09; 每个线程运行时所需要的内存&#xff0c;称为虚拟机栈每个栈由多个栈帧&#xff08;Frame&#xff09;组成&#xff0c;对应着每次方法调用时所占用的内存每个线程只能有一个活动…