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 -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2
  Ubuntu-22.04    Running         2
  Ubuntu-18.04    Stopped         2
  CentOS8         Stopped         2
  CentOS7         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两个发行版。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发学习(STC51-12-I2C/IIC)

内容 在数码管右3位显示数字&#xff0c;从0开始&#xff0c;按K1键将数据写入到EEPROM内保存&#xff0c;按K2键读取EEPROM内保存的数据&#xff0c;按K3键显示数据加1&#xff0c;按K4键显示数据清零&#xff0c;最大能写入的数据是255&#xff1b; I2C介绍 I2C简介 I2C&…

windows下的txt文档,传到ubuntu后,每行后面出现^M,怎么处理?

问题背景&#xff1a;windows下pycharm生成的txt文档&#xff0c;传到ubuntu后&#xff0c;每行后面出现^M 用vim打开显示 使用cat -A filename显示如下 参考https://www.lmlphp.com/user/16697/article/item/579325/给出的几种方法 方法一、dos2unix filename。服务器没装…

esp32c3 xiao 脚本记录

oled显示网络时间, wifi链接网络 // ntp_get_date.h #include "time.h"String week[8] {"Sun", "Mon", "Tues", "Wednes", "Thur", "Fri", "Sat" };void printLocalTime(Adafruit_SSD1306 …

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(二)前后端实现用户的登录和注册功能【用户模块】

网页版Java五子棋项目&#xff08;二&#xff09;前后端实现用户的登录和注册功能【用户模块】 在用户模块我们要清楚要完成的任务一、MyBatis后端操作数据库1. 需要在数据库创建用户数据库1. 用户id2. 用户名3. 密码4. 天梯积分5. 总场数6. 获胜场数 2. 创建用户类User和数据库…

vue2-vue项目中你是如何解决跨域的?

1、跨域是什么&#xff1f; 跨域本质是浏览器基于同源策略的一种安全手段。 同源策略&#xff08;sameoriginpolicy&#xff09;&#xff0c;是一种约定&#xff0c;它是浏览器最核心也是最基本的安全功能。 所谓同源&#xff08;即指在同一个域&#xff09;具有以下三个相同点…

【分布式系统】聊聊服务调度

什么是服务治理 对于程序员来说的话&#xff0c;把功能按照一定的设计进行开发上线之后&#xff0c;其实并不够&#xff0c;在未来的时间内&#xff0c;其实还需要做好功能的维护工作&#xff0c;而维护项目的成本远远高于开发出一个软件的成本。 对于功能开发起来期来说&am…

2021-03-03 Multisim 14.0 电池充电防止反接保护

R2R3当作充电线电阻看,也可设置这2个电阻导线电阻,电阻取值依据充电电流范围确定,由于电池存在电压因此可以用光耦检测,发光二极管当作继电器看,可采用继电器自锁,当下次再次反接的话另一个继电器同样,2个继电器相互控制.本电路可验证极性变化时2路检测的变化,图中S1为模拟电池…

聊聊混合动力汽车和纯电骑车的优势和劣势

混合动力汽车和纯电动骑车是两种不同的交通工具&#xff0c;它们都有各自的优势和劣势。本文将分别探讨混合动力汽车和纯电动骑车的优势和劣势&#xff0c;并为文章提供三个备选的好听的标题。 混合动力汽车是一种结合了内燃机和电动机的汽车&#xff0c;它可以同时利用燃油和电…

【rust/入门】windows安装rust gnu环境(折腾)

说在前面 首先说明&#xff0c;我是rust入门选手&#xff0c;之前都是在wsl写rust&#xff0c;突然想在windows下装下rust。windows版本&#xff1a;windows11 22H2原文换源 心路历程 看到教程我陷入了沉默&#xff0c;(官方推荐) 打开Microsoft C Build Tools我开始不解&…

【RabbitMQ】golang客户端教程3——发布订阅(使用fanout交换器)

发布订阅 在上一个教程中&#xff0c;我们创建了一个工作队列。工作队列背后的假设是每个任务只传递给一个工人。在这一部分中&#xff0c;我们将做一些完全不同的事情——我们将向多个消费者传递一个消息。这就是所谓的“订阅/发布模式”。 为了说明这种模式&#xff0c;我们…

06 Ubuntu22.04上的miniconda3安装、深度学习常用环境配置

下载脚本 我依然是在清华镜像当中寻找的脚本。这里找脚本真的十分方便&#xff0c;我十分推荐。 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh 下载十分快速&#xff0c;10秒解决问题 运行miniconda3安装脚本 赋予执…

项目一:基于stm32的阿里云智慧消防监控系统

若该文为原创文章&#xff0c;转载请注明原文出处。 Hi&#xff0c;大家好&#xff0c;我是忆枫&#xff0c;今天向大家介绍一个单片机项目。 一、简介 智慧消防监控系统&#xff0c;是用于检测火灾&#xff0c;温度&#xff0c;烟雾的监控系统。以 stm32单片机为核心外加 MQ…

掌握Memory Profiler技巧:识别内存问题

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、如何使用四、页面说明4.1 Java 和 Kotlin 分配…

LeetCode 热题 100 JavaScript--102. 二叉树的层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 示例 2&#xff1a; 输入&#xff1a;root [1…

il汇编整数相加

在这里尝试了IL汇编字符串连接&#xff1b; IL汇编字符串连接_bcbobo21cn的博客-CSDN博客 下面来看一下IL汇编整数相加&#xff1b; 大概的看一下一些资料&#xff0c;下面语句&#xff0c; ldc.i4 20 ldc.i4 30 add 看上去像是&#xff0c;装载整数20到一个类似于…

【C++学习手札】一文带你初识构造函数和拷贝构造函数、析构函数

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f340;本文前置知识&#xff1a; C类 ♈️今日夜电波&#xff1a; アイネクライネ —米津玄師 1:11 ━━━━━━️&#x1f49f;──────── 4:50 …

vue el-input 使用 回车键会刷新页面的问题

场景&#xff1a; vue项目中 在输入框输入字符并按下回车键搜索时&#xff0c;不会进行搜索&#xff0c; 而是会刷新页面 原因&#xff1a; 当form表单中只有一个input时&#xff0c;按下回车建会自动触发页面的提交功能&#xff0c; 产生刷新页面的行为 解决&#xff1a; 在…

《Java-SE-第二十九章》之Synchronized原理与JUC常用类

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水平很有限&…

【ChatGPT 指令大全】怎么利用ChatGPT写报告

目录 选定切入角度 报告开头 大纲生成 草稿撰写 研究报告 提出反对观点 报告总结 研究来源 总结 随着人工智能技术的快速发展&#xff0c;自然语言处理技术在各个领域的应用越来越广泛。其中&#xff0c;ChatGPT作为目前最先进的自然语言处理模型之一&#xff0c;其强…