在 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
?