win11中系统的WSL安装Centos以及必要组件

win11中系统的WSL安装Centos

一、配置windows

1、系统对应

如果系统版本在Windows 10 2004以下,请使用Centos7.X

2、打开虚拟化

打开控制面板 -> 程序 -> 启动或关闭windows功能 -> 确保以下选项打开:

3、重启windows

二、下载Centos镜像

1、根据自己win系统的版本,下载WSL-Centos,下载地址:

bash 复制代码
https://github.com/wsldl-pg/CentWSL/releases

2、处理文件

将下载得到的压缩包放到你想安装CentOS的位置,解压得到文件:

双击CentOS8.exe,出现DOS窗口:

当出现以下结果,按Enter,关闭DOS窗口

三、启动CentOS

1、打开DOS窗口,执行命令:

bash 复制代码
# 查看已安装镜像和运行状态
wsl -l -v

2、启动并进入Centos8

bash 复制代码
wsl -d CentOS8


3、由于 CentOS 8 和 CentOS 7 已经停止维护,所以有很多命令和数据源不能使用

错误一:

bash 复制代码
[root@localhost 64217]# yum update
CentOS-8 - AppStream                                                                    0.0  B/s |   0  B     00:00
Failed to download metadata for repo 'AppStream'
Error: Failed to download metadata for repo 'AppStream'

错误二:

bash 复制代码
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist

原因:

查看阿里云官网上的说明:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.66c71b11q4E0g4

可以看到centos8官方源已下线,需切换centos-vault源
解决方案:

① 备份文件

bash 复制代码
cp -rv /etc/yum.repos.d /etc/yum.repos.d_bak

② 执行切换命令,两个命令二选一:

bash 复制代码
命令1:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
0
命令2:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

③ 进入目录:

bash 复制代码
cd /etc/yum.repos.d/

④ 修改 centos 文件内容

bash 复制代码
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-*

⑤ 生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右)

bash 复制代码
yum makecache

⑥ 完毕状态:

⑦ 最后,运行 yum update

bash 复制代码
yum update -y

四、这些做完如果还是有报错

1、彻底更换软件源

编辑网络配置文件

bash 复制代码
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 114.114.114.114" >> /etc/resolv.conf

2、替换软件源

bash 复制代码
# 备份所有原有repo文件
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

# 下载阿里云的CentOS 8 Vault源(使用curl,若curl也没有则手动创建文件)
cat > /etc/yum.repos.d/CentOS-Base.repo << EOF
[baseos]
name=CentOS-8 - BaseOS - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/\$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[appstream]
name=CentOS-8 - AppStream - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/\$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
EOF

3、清理缓存并重建

bash 复制代码
yum clean all
yum makecache

4、验证源是否正常

bash 复制代码
yum repolist

结果:

5、尝试安装passwd 包

bash 复制代码
# 安装
yum install passwd -y
# 检查 passwd 命令是否可用
which passwd  # 应该显示 /usr/bin/passwd
passwd --help  # 显示命令帮助信息,确认正常工作

五、配置SSH连接

正常情况下系统中应该缺失很多软件,包括ssh等

1、安装ssh

某些命令报错请自行百度安装/font>

bash 复制代码
yum install openssh-server -y

2、启动

bash 复制代码
/usr/sbin/sshd -d

报错:

这是因为 SSH 服务缺少必要的主机密钥文件导致的,使用命令生成:

bash 复制代码
# 生成主机密钥(会自动创建 /etc/ssh/ 目录下的密钥文件)
ssh-keygen -A
# 生成后检查 /etc/ssh/ 目录下是否存在相关密钥文件:
ls -l /etc/ssh/ssh_host_*_key



# 正常情况下会显示类似以下文件:
-rw------- 1 root root 1675 Aug 25 16:30 /etc/ssh/ssh_host_rsa_key
-rw-r--r-- 1 root root  398 Aug 25 16:30 /etc/ssh/ssh_host_rsa_key.pub
-rw------- 1 root root  511 Aug 25 16:30 /etc/ssh/ssh_host_ecdsa_key
-rw-r--r-- 1 root root  174 Aug 25 16:30 /etc/ssh/ssh_host_ecdsa_key.pub
-rw------- 1 root root  387 Aug 25 16:30 /etc/ssh/ssh_host_ed25519_key
-rw-r--r-- 1 root root   92 Aug 25 16:30 /etc/ssh/ssh_host_ed25519_key.pub

再次启动

bash 复制代码
# 直接启动 sshd
/usr/sbin/sshd
# 检查是否启动成功
ps -ef | grep sshd | grep -v grep
# 验证端口监听
ss -tulpn | grep sshd

设置开机自启

bash 复制代码
vi /etc/rc.d/rc.local

在文件末尾添加启动 SSH 的命令:

bash 复制代码
# 启动 SSH 服务
/usr/sbin/sshd

确保 rc.local 具有可执行权限:

bash 复制代码
chmod +x /etc/rc.d/rc.local

相关推荐
好奇的菜鸟10 小时前
WSL上的Ubuntu 24.04 (Noble Numbat) 配置阿里云镜像源,提速软件安装
linux·ubuntu·阿里云
海棠蚀omo10 小时前
Linux信号保存的核心:未决信号集与阻塞信号集——探秘内核如何实现信号的阻塞、暂存与派发
linux·操作系统
芝麻开门-新起点10 小时前
数据脱敏与自动化技术融合:大规模GIS数据安全高效处理方案
运维·自动化
行走正道10 小时前
【探索实战】跨云应用分发自动化实战:基于Kurator的统一交付体系深度解析
运维·自动化·wpf·kurator·跨云分发
傲世(C/C++,Linux)11 小时前
Linux系统编程——TCP服务器
linux·服务器·tcp/ip
杨云龙UP11 小时前
SQL Server 备份异地同步 + 清理脚本
运维·服务器·数据库·sql·mysql·sqlserver
q***484112 小时前
Nginx中$http_host、$host、$proxy_host的区别
运维·nginx·http
橘子真甜~12 小时前
C/C++ Linux网络编程8 - epoll + ET Reactor TCP服务器
linux·服务器·网络
万变不离其宗_812 小时前
centos 手动安装redis
linux·redis·centos
_lst_13 小时前
linux进程状态
linux·运维·服务器