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

相关推荐
青草地溪水旁1 小时前
`lock()` 和 `unlock()` 线程同步函数
linux·c++·c
2401_858286111 小时前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程
wanhengidc1 小时前
云手机挂机掉线是由哪些因素造成的?
运维·服务器·网络·安全·智能手机
lkf197111 小时前
centos安装jenkins
linux·centos·jenkins
花小璇学linux2 小时前
imx6ull-驱动开发篇41——Linux RTC 驱动实验
linux·驱动开发·嵌入式软件
秦jh_2 小时前
【MySQL】基本查询
linux·数据库·c++·mysql
刃神太酷啦2 小时前
Linux 常用指令全解析:从基础操作到系统管理(1w字精简版)----《Hello Linux!》(2)
linux·运维·服务器·c语言·c++·算法·leetcode
正在努力的小河2 小时前
GPIO子系统自主实现(简单版)
linux·单片机·嵌入式硬件
小妖6663 小时前
centos 用 docker 方式安装 dufs
linux·docker·centos