在 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
英文地址,請注明出處:http://en.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;最終實現了一個支持手勢拖拽、彈性動畫、蒙層效果和??智…