在 WSL (Windows Subsystem for Linux) 中配置和安装 Linux 环境

在 WSL (Windows Subsystem for Linux) 中配置和安装 Linux 环境
WSL 允许你在 Windows 上运行 Linux 环境,以下是详细的配置和安装指南。

1. 安装前的准备工作
系统要求
Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11

64 位系统

虚拟化功能已启用

启用虚拟化
重启电脑,进入 BIOS/UEFI 设置

找到虚拟化相关选项(通常称为 Intel VT-x 或 AMD-V)

启用该功能并保存设置

2. 安装 WSL
方法一:使用 PowerShell 命令安装(推荐)
以管理员身份打开 PowerShell

运行以下命令启用 WSL 功能:

powershell
wsl --install
这个命令会自动完成以下操作:

启用 WSL 功能

启用虚拟机平台功能

下载并安装最新的 Linux 内核

设置 WSL 2 为默认版本

安装默认的 Linux 发行版(通常是 Ubuntu)

方法二:手动安装步骤
如果自动安装不成功,可以手动执行以下步骤:

启用 WSL 功能:

powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
启用虚拟机平台功能:

powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启计算机

下载并安装 WSL 2 内核更新包:
微软官方下载页面

设置 WSL 2 为默认版本:

powershell
wsl --set-default-version 2
3. 安装 Linux 发行版
从 Microsoft Store 安装
打开 Microsoft Store

搜索你想要的 Linux 发行版(如 Ubuntu、Debian、Kali Linux 等)

点击"获取"进行安装

使用命令行安装特定版本
powershell
# 列出可用的发行版
wsl --list --online

# 安装特定发行版(例如 Ubuntu 22.04)
wsl --install -d Ubuntu-22.04
4. 初始设置 Linux 发行版
从开始菜单或命令行启动安装的 Linux 发行版

powershell
wsl -d Ubuntu-22.04
等待系统解压完成

设置新用户的用户名和密码

5. WSL 基本配置
查看已安装的发行版
powershell
wsl --list --verbose
设置默认发行版
powershell
wsl --set-default <发行版名称>
停止 WSL 实例
powershell
wsl --terminate <发行版名称>
卸载发行版
powershell
wsl --unregister <发行版名称>
6. WSL 2 高级配置
配置文件位置
Windows 11 和最新版 Windows 10 可以使用 %USERPROFILE%\.wslconfig 文件进行全局配置

示例 .wslconfig 文件内容:

ini
[wsl2]
memory=4GB   # 限制内存使用
processors=2 # 限制CPU核心数
swap=1GB     # 交换空间大小
localhostForwarding=true
更改发行版的 WSL 版本
powershell
wsl --set-version <发行版名称> 2
7. 安装图形界面(GUI)支持(可选)
WSL 2 支持运行 Linux GUI 应用程序:

确保使用 Windows 11 或 Windows 10 版本 2004 以上

安装 Windows 上的 GPU 驱动程序

在 Linux 发行版中安装 GUI 应用程序,例如:

bash
sudo apt update
sudo apt install gedit
直接在 Windows 开始菜单中启动或使用命令:

bash
gedit
8. 网络配置
访问 Windows 网络
从 WSL 中可以通过 microsoft.com 访问 Windows 主机

访问 WSL 网络
从 Windows 中可以通过 localhost 访问 WSL 中运行的服务

固定 IP 地址(高级)
默认情况下 WSL 2 使用 NAT 网络,IP 地址会变化。如需固定 IP,可以考虑:

使用 localhost 转发

设置 Windows 防火墙规则

使用第三方工具如 wsl2host

9. 文件系统互操作
从 WSL 访问 Windows 文件:/mnt/c/ 对应 C:\

从 Windows 访问 WSL 文件:\\wsl$\<发行版名称>\

10. 常见问题解决
WSL 2 启动问题
如果遇到 WSL 2 无法启动,尝试:

powershell
wsl --shutdown
wsl -d <发行版名称>
网络连接问题
powershell
# 重置网络适配器
netsh winsock reset
性能问题
避免在 /mnt/c/ 下进行大量文件操作

将项目文件放在 Linux 文件系统中(如 ~/projects)

11. 推荐工具
Windows Terminal:更好的终端体验

VS Code 配合 Remote - WSL 扩展:完美的开发环境

Docker Desktop with WSL 2 backend:容器开发

通过以上步骤,你应该能够在 Windows 上成功配置和使用 WSL,享受 Linux 开发环境的便利。


下面自己的实际操作过程:

一、WSL安装
要求  >= win10 19041
(1)    程序-》控制面板->程序-》启用或关闭windows功能-》选择“虚拟机平台”和“适用于Linux的Windows子系统” 打开
(2)    进  Microsoft Store  搜索  Ubuntu  选择  20 版本安装
(3)    使用管理员权限CMD命令行输入wdl –set-default-version 1
(4)    重启电脑。

二、Linux配置
(1)把电脑连接网络
(2)***更新源
把安装包里的sources.list 替换 /etc/apt/ sources.list,
cd /etc/apt/
mv sources.list sources.list_bak
cp /mnt/e/安装源文件/WSDL安装方法/ sources.list ./
apt-get update
apt-get upgrade
(3)***安装gcc
apt-get install gcc
(4)***配置svn
ubuntu 20.04 将 TLS 最低版本设置为 1.2,从而导致认证失败,
修改/etc/ssl/openssl.cnf,在 oid_section = new_oids下增加
三、安装编译链
(1)拷贝交叉编译链gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar和交叉编译链gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz到虚拟机的子系统/opt/目录下
(2)解压
(3)修改环境变量脚本配置方法:
cd /etc/
    vi bash.bashrc
    文件最后一行增加如下内容:
export PATH=/opt/ gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH
    保存并退出。

现在就可以开心的去准备编译的文件夹下,按住“SHIFT”并右击鼠标,选择“在此处打开Linux Shell”,make clean\make了。

    如果想通过SVN升级再进行下面配置,再自行配置。

openssl_conf = default_conf

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1

可使用测试curl -v https://svn.xxx.com

保存svn用户名与密码
1.    删除原来的配置
rm ~/.subversion/ -rf 
2.    执行一次svn命令输入密码后,会在目录~/.subversion/auth/svn.simple/ 创建文件名类似的文件6d88dc943a0b554aab3c3119980f8abe 的文件
3.    修改目录 ~/.subversion/auth/svn.simple/ 的文件,内容如下,passtype固定是simple, K和V后面的数字分别代表key和value的长度(注意svn服务器地址修改)
$ cat ~/.subversion/auth/svn.simple/6d88dc943a0b554aab3c3119980f8abe 
K 15
svn:realmstring
V 53
<https://192.168.179.214:443> Subversion Repositories 
K 8
passtype
V 6
simple
K 8
username
V 7
tmnl_pc
K 8
password
V 7
tmnl_pc
END
4.    重新svn up确认一下,就发现不需要再输入密码了


开启ssh服务   /// 需要wsl 1  下运行
1.先卸载重装一遍ssh服务,这里不是很确定是不是自带ssh服务有没有问题
apt-get remove openssh-server
apt-get install openssh-server
2. 编辑sshd_config文件
vi /etc/ssh/sshd_config

Port 2222
PermitRootLogin yes
PasswordAuthentication yes

3. service ssh --full-restart

wsl开机自启动ssh

进入任意WSL发行版中,创建并编辑文件:vim /etc/init.wsl

#!/bin/sh

/etc/init.d/cron $1

/etc/init.d/ssh $1

/etc/init.d/supervisor $1

里面调用了我们希望启动的三个服务的启动脚本,设置/etc/init.wsl权限777,这时候可以通过:

sudo /etc/init.wsl [start|stop|restart]

来启停我们需要的服务,在Windows中,开始 > 运行,输入:

shell:startup

在打开的文件夹中按照你WSL使用的Linux发行版创建启动脚本,比如创建的Debian.vbs文件:

Set ws = CreateObject("Wscript.Shell")

ws.run "wsl -d debian -u root /etc/init.wsl start", vbhide

这个脚本就会在你登陆的时候自动在名字为debian的wsl发行版中执行/etc/init.wsl启动我们的服务了,

而如果你不知道自己的 WSL 发行版叫做什么名字,可以用 “wsl -l" 来查看。不管你用最初的 bash (ubuntu 16.04) 还是商店里下载的 debian/ubuntu1804 都能顺利启动服务了。

如果你用的是Ubuntu-18.04 LTS的发行版,那么修改上面脚本里的debian为Ubuntu-18.04,并创建ubuntu1804.vbs:

Set ws = CreateObject("Wscript.Shell")

ws.run "wsl -d Ubuntu-18.04 -u root /etc/init.wsl start", vbhide
 

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

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

相关文章

AlphaFold蛋白质结构数据库介绍

AlphaFold Protein Structure Database (AlphaFold DB) 是 DeepMind + EMBL-EBI 合作开发的公开蛋白质结构预测数据库,是利用 AlphaFold2/AlphaFold3 AI模型 预测的全基因组级蛋白质三维结构库。 网址: https://alphafold.ebi.ac.uk 项目内容主办单位DeepMind + EMBL-EBI上线…

3.2goweb框架GORM

GORM 是 Go 语言中功能强大的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;支持 MySQL、PostgreSQL、SQLite、SQL Server 等主流数据库。以下是 GORM 的核心概念和用法详解&#xff1a; ​​一、基础入门​​ 1. 安装 go get -u gorm.io/gorm go get -u gorm.io…

第三部分:特征提取与目标检测

像边缘、角点、特定的纹理模式等都是图像的特征。提取这些特征是许多计算机视觉任务的关键第一步&#xff0c;例如图像匹配、对象识别、图像拼接等。目标检测则是在图像中找到特定对象&#xff08;如人脸、汽车等&#xff09;的位置。 本部分将涵盖以下关键主题&#xff1a; …

Canvas基础篇:图形绘制

Canvas基础篇&#xff1a;图形绘制 图形绘制moveTo()lineTo()lineTo绘制一条直线代码示例效果预览 lineTo绘制平行线代码示例效果预览 lineTo绘制矩形代码示例效果预览 arc()arc绘制一个圆代码实现效果预览 arc绘制一段弧代码实现效果预览 arcTo()rect()曲线 结语 图形绘制 在…

瑞芯微芯片算法开发初步实践

文章目录 一、算法开发的一般步骤1.选择合适的深度学习框架2.对于要处理的问题进行分类&#xff0c;是回归问题还是分类问题。3.对数据进行归纳和整理4.对输入的数据进行归一化和量化&#xff0c;保证模型运行的效率和提高模型运行的准确度5.在嵌入式处理器上面运行模型&#x…

计算机毕业设计--基于深度学习(U-Net与多尺度ViT)的模糊车牌图像清晰化复原算法设计与实现(含Github代码+Web端在线体验链接)

基于深度学习的U-Net架构下多尺度Transformer车牌图像去模糊算法设计与实现 如果想对旧照片进行模糊去除&#xff0c;划痕修复、清晰化&#xff0c;请参考这篇CSDN作品&#x1f447; 计算机毕业设计–基于深度学习的图像修复&#xff08;清晰化划痕修复色彩增强&#xff09;算…

(Go Gin)Gin学习笔记(四)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法

1. 数据渲染 1.1 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf 1.1.1 返回JSON package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {r : gin.Default()r.POST("/demo", func(res *gi…

实验:串口通信

/************************************************* * AT89C52 串口通信实验&#xff08;实用修正版&#xff09; * 特点&#xff1a; * 1. 解决所有编译警告 * 2. 保持代码简洁 * 3. 完全功能正常 ************************************************/ #include <re…

智驾赛道的诺曼底登陆,Momenta上海车展雄起

作者 |芦苇 编辑 |德新 今年的上海车展依旧热闹非凡&#xff0c;但火热的车市背后也是暗流涌动。尤其对智驾供应商而言&#xff0c;「智驾平权」带动了解决方案大量上车&#xff0c;各大主机厂纷纷选定各自的主要供应商&#xff0c;这也意味着赛道机会越发收敛。 正如汽车品牌…

Java 事务详解

目录 一、事务的基本概念1.1 什么是事务?1.2 事务的 ACID 特性二、Java 事务管理的实现方式2.1 JDBC 事务管理2.2 Spring 事务管理2.2.1 添加 Spring 依赖2.2.2 配置 Spring 事务管理2.2.3 使用 Spring 事务注解三、事务隔离级别四、最佳实践4.1 尽量缩小事务范围4.2 合理选择…

DirectX12(D3D12)基础教程七 深度模板视图\剔除\谓词

本章主要讲遮挡&#xff0c;作者认为比较复杂有难度的知识点&#xff0c;作为基础教程不会深入讲解。 GPU渲染管线 主要包括以下阶段 输入装配&#xff08;IA&#xff09;&#xff1a;读取顶点数据 &#xff0c;定义顶点数据结构顶点着色&#xff08;VS&#xff09;&#xf…

温补晶振(TCXO)稳定性优化:从实验室到量产的关键技术

在现代通信、航空航天、5G基站等对频率稳定性要求极高的领域&#xff0c;温补晶振&#xff08;TCXO&#xff09;扮演着不可或缺的角色。其稳定性直接影响系统的性能与可靠性&#xff0c;因此&#xff0c;对TCXO稳定性优化技术的研究与实践至关重要。 一、温度补偿算法&#xff…

C++,设计模式,【建造者模式】

文章目录 通俗易懂的建造者模式&#xff1a;手把手教你造电脑一、现实中的建造者困境二、建造者模式核心思想三、代码实战&#xff1a;组装电脑1. 产品类 - 电脑2. 抽象建造者 - 装机师傅3. 具体建造者 - 电竞主机版4. 具体建造者 - 办公主机版5. 指挥官 - 装机总控6. 客户端使…

前端基础之《Vue(13)—重要API》

重要的API 一、nextTick() 1、写法 Vue.$nextTick()或者this.$nextTick() 原因&#xff1a; set操作代码是同步的&#xff0c;但是代码背后的行为是异步的。set操作修改声明式变量&#xff0c;触发re-render生成新的虚拟DOM&#xff0c;进一步执行diff运算&#xff0c;找到…

Windows 中搭建 browser-use WebUI 1.4

目录 1. 背景介绍2. 搭建过程3. 补充 1. 背景介绍 背景&#xff1a;想要在 Windows 中复现 browser-use WebUI pickle反序列化漏洞&#xff0c;该漏洞在 v1.7 版本中已经修复&#xff0c;所以需要搭建 小于 1.7 版本的环境&#xff0c;我这里搭建的是 1.4 版本。 项目地址&am…

【数据通信完全指南】从物理层到协议栈的深度解析

目录 1. 通信技术演进与核心挑战1.1 从电报到5G的技术变迁1.2 现代通信系统的三大瓶颈 2. 通信系统架构深度解构2.1 OSI七层模型运作原理2.2 TCP/IP协议栈实战解析 3. 物理层关键技术实现3.1 信号调制技术演进路线3.2 信道复用方案对比 4. 数据传输可靠性保障4.1 CRC校验算法数…

CMD与PowerShell:Windows命令行工具的对比与使用指南

CMD与PowerShell&#xff1a;Windows命令行工具的对比与使用指南 文章目录 CMD与PowerShell&#xff1a;Windows命令行工具的对比与使用指南引言1. CMD&#xff08;命令提示符&#xff09;简介1.1 什么是CMD&#xff1f;1.2 CMD的特点1.3 常用CMD命令示例1.4 CMD的优势与局限 2…

93. 后台线程与主线程更新UI Maui例子 C#例子

在.NET MAUI开发中&#xff0c;多线程是常见的需求&#xff0c;但UI更新必须在主线程上执行。今天&#xff0c;我们来探讨一个简单而优雅的解决方案&#xff1a;MainThread.InvokeOnMainThreadAsync。 一、背景 在跨平台应用开发中&#xff0c;后台线程常用于执行耗时操作&am…

海思正式公开了星闪BS21E的SDK

今天海思正式在Gitee平台发布了BS21E的SDK&#xff1a;fbb_bs2x: fbb_bs2x代码仓为支持bs21e解决方案SDK。技术论坛&#xff1a;https://developers.hisilicon.com/forum/0133146886267870001 fbb_bs2x代码仓为支持bs21e解决方案SDK&#xff0c;该SDK包从统一开发平台FBB&#…

QML学习:使用QML实现抽屉式侧边栏菜单

文章目录 前言一、环境配置二、实现步骤三、示例完整代码四、注意事项总结 前言 最近在进行QML的学习&#xff0c;发现一个比较有意思的交互设计&#xff1a;抽屉式侧边栏菜单&#xff0c;出于开发实战需求&#xff0c;最终实现了一个支持手势拖拽、弹性动画、蒙层效果和​​智…