最近更换了开发用的 Windows 台式机电脑,本文主要记录其开发环境配置的过程。
1 系统初始化、基本设置
1.1 系统初始化跳过联网离线安装
Windows 11 新系统开机后会进入安装初始化过程,其中有一个步骤要求联网且无法跳过。由于内网 wifi 有认证机制,无法法直接简单联网使用。
可通过如下方法启用离线模式:
- 按快捷键
Shift + F10
(或者Fn+Shift+F10
)可以打开cmd
窗口 - 鼠标点击一下它获取焦点,然后输入命令:
oobe\BypassNRO.cmd
- 回车执行命令,此时Win11会重启,再进入联网的界面时,会有一个暂时跳过的选项
BypassNRO.cmd
里的命令主要就是修改注册相关项然后重启,所以也可直接执行如下命令:
1 2 | reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f shutdown /r /t 0 |
1.2 C 盘分区
由于预装系统整个磁盘只有一个 C 盘(512GB),于是将它分为了 C、D 两个逻辑分区。主要方法步骤为:
- 打开资源管理器,在
此电脑
上右键并选择管理
,会打开计算机管理
应用界面。 - 展开值
存储 -> 磁盘管理
,在磁盘分区列表右键,选择压缩卷..
。 - 在弹出的
压缩卷
界面,输入压缩空间大小(给新分区的大小)。建议给 C 盘预留200G
以上空间。我这里输入了204800
,给 C 盘留了255G
。 - 在压缩出来的分区上右键选择
新建简单卷
,按默认步骤继续操作即可创建一个新的 D 盘逻辑分区。
1.3 激活为专业版
系统预装了 windows 11 家庭版,如果你有专业版的秘钥,在系统->激活
界面输入序列号就可以激活为专业版。
这里是使用了内网的 kms
激活方案,首先找了一个专业版的秘钥,在激活页面升级为专业版并重启,然后打开管理员权限的 CMD 命令行,依次执行如下命令使用 KMS 激活:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | cd C:\WINDOWS\system32 # 查看当前激活信息、系统版本 slmgr /dlv # 卸载已注册的序列号 slmgr /upk # 安装 GVLK 秘钥 slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX # 设置 MKS 服务器地址 # 这里只是一个示例,实际使用了内网企业购买和搭建的KMS激活服务器 # 需要替换为你实际可用的 KMS 服务器网址或 IP 地址(如 kms.0t.net.cn、kms.msguides.com、kms.03k.org 等) slmgr -skms 192.168.10.100 # 执行激活请求 slmgr /ato # 查询过期时间 slmgr /xpr |
KMS 是微软为企业级批量许可服务提供的方案。更多关于 KMS 激活为不同系统版本的信息可从如下链接了解:
https://learn.microsoft.com/zh-cn/windows-server/get-started/kms-client-activation-keys
1.4 更改应用、文档等默认保存位置
由于存在被 C 盘膨胀支配的历史,应用、文档等都习惯放在其它分区,个人文档放在其它磁盘。修改方法:
依次点开 系统设置 -> 存储 -> 高级 -> 保存新内容的地方
,将所有选项都修改至非 C 盘盘符即可。
1.5 旧电脑开启局域网共享复制文件
旧电脑为 Windows 10 系统,可以在网络共享设置中启用局域网共享以复制文件到新电脑中。步骤参考:
网络 -> 高级共享设置 -> 所有网络 -> 启用共享以便可以访问网络
- 在希望共享的文件夹或磁盘上右键,选择
共享 -> 特定用户 -> Everyone -> 读取
- 也可以在这里统一添加文件夹共享:
计算机管理 -> 系统工具 -> 共享文件夹 -> 共享 -> 新建共享
- 记得复制完毕后及时关闭共享设置、移除重要的共享目录,否则应设置需密码访问的共享方式
我这里将新电脑的 D 盘设置为共享,并在旧电脑里映射为本地 Z 盘驱动器。由于有数十个 git
仓库需要同步过去,之间简单的 Copy 是行不通的。正好用上了之前写的一个小工具lzwme/dir-fast-copy,效果参考下图:
2 应用安装与开发环境配置
2.1 更新 PowerShell 至最新版
系统默认的 PowerShell 为 5.1 版本,在使用 Scoop
安装有些软件时可能会报错。
- 参考:在 Windows、Linux 和 macOS 上安装
PowerShell
- 打开
应用商店
并搜索PowerShell
,可以直接安装7.x
版本 - 也可以使用
Scoop
安装(见后文,需先安装Scoop
):scoop install powershell
- 打开
配置 PowerShell
如果你喜欢 oh-my-posh
风格,可以参考该文:安装与配置 oh-my-posh
但实际体验过程中 oh-my-posh
带来的延迟太严重,所以不再考虑它,改为自定义部分配置,参考如下。
执行命令 notepad $PROFILE
,在打开的配置文件中填写如下内容(参考):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # 设置预测文本来源为历史记录 Set-PSReadLineOption -PredictionSource History # 设置 Tab 键补全 Set-PSReadlineKeyHandler -Key Tab -Function Complete # 设置 Ctrl+d 为菜单补全和 Intellisense Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function MenuComplete # 设置 Ctrl+z 为撤销 Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo # 设置向上键为后向搜索历史记录 # Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadLineKeyHandler -Key UpArrow -ScriptBlock { [Microsoft.PowerShell.PSConsoleReadLine] ::HistorySearchBackward() [Microsoft.PowerShell.PSConsoleReadLine] ::EndOfLine() } # 设置向下键为前向搜索历史纪录 # Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward Set-PSReadLineKeyHandler -Key DownArrow -ScriptBlock { [Microsoft.PowerShell.PSConsoleReadLine] ::HistorySearchForward() [Microsoft.PowerShell.PSConsoleReadLine] ::EndOfLine() } # 自定义 prompt 格式 function prompt { Write-Host "🍡 $pwd>" -ForegroundColor :green return " " } |
2.2 安装 Git 及 Visual Studio 或 MSVC 工具集
在开发的过程中,很多时候都可能需要 MSVC 工具集支持。
Git 下载
: https://git-scm.com/download/win- Visual Studio(一般 Community 版本即可)
- Microsoft C++ 生成工具(安装了 Visual Studio 的话就不用了)
2.3 安装和配置 Scoop
首先自定义 Scoop
安装路径(软件安装位置在 C
盘,这里指定到其他盘符)。打开 PowerShell
并执行如下命令:
1 2 3 4 5 6 7 | # 修改当前用户应用的安装路径 $env:SCOOP = 'D:\scoop\user-apps' [environment] ::setEnvironmentVariable( 'SCOOP' , $env:SCOOP , 'User' ) # 修改全局应用的安装路径(需要管理员权限的应用一般需全局安装,尽量保持放在 C 盘) $env:SCOOP_GLOBAL = 'C:\scoop\apps' [environment] ::setEnvironmentVariable( 'SCOOP_GLOBAL' , $env:SCOOP_GLOBAL , 'Machine' ) |
然后执行如下命令安装和配置 Scoop
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # install Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # irm -useb get.scoop.sh | iex irm https://mirror.ghproxy.com/raw.githubusercontent.com/lzwme/scoop-proxy-cn/master/install.ps1 | iex # config scoop config SCOOP_REPO https://mirror.ghproxy.com/github.com/ScoopInstaller/Scoop scoop bucket rm main # scoop bucket add main https://mirror.ghproxy.com/github.com/ScoopInstaller/Main scoop bucket add spc https://mirror.ghproxy.com/github.com/lzwme/scoop-proxy-cn # show help scoop help # 安装必备应用: scoop-search、aria2... scoop install spc/scoop-search spc/aria2 spc/sudo |
这里使用了我个人定制的同步加速仓库作为软件安装源 lzwme/scoop-proxy-cn,详细了解可参考该文:Scoop 的安装、使用与软件源定制。
2.3 使用 Scoop 安装应用
使用 Scoop 直接安装常用软件(不需要的行删除即可):
7zip
压缩解压缩工具
–TortoiseGit
Git 小乌龟。 sourcetree 也是一个可替代选项chrome
chrome 浏览器FiraCode
为编程而生的等宽字体JetBrains-Mono
为编程开发设计的无衬线等宽字体3270-NF
A font for the nostalgicvscode
vscode 编辑器nvm
nvm-windows (这里也可以换为使用fnm
)finalshell
SSH 终端。如果你不喜欢它,推荐安装开源免费的NxShell
,在应用商店即可搜索和安装switchhosts
Hosts 切换管理fiddler
抓包工具,开发助手openssl
TLS/SSL toolkitdocker
nginx
rust
android-studio
python2
python 2python
python 3 最新版qq
tim
wechat
微信WeChatWork
企业微信RevokeMsgPatcher
微信/QQ/TIM防撤回补丁DingTalk
钉钉feishu
飞书ADrive
阿里网盘BaiduNetDisk
百度网盘Tencent-Meeting
腾讯会议WPSOffice-cn
WPSffmpeg
音视频编辑的基础支持工具hub
USE GITHUB FROM THE COMMAND-LINEact
Github Actions 脚本本地执行工具everything
文件与目录索引,文件快速查找treesize
磁盘占用分析:空间去哪儿了wiztree
treesize 同类工具vlc
开源的直播视频观看工具Clash-for-Windows_Chinese
你懂的
可将以下安装命令保存为 D:\scoop-install.ps1
然后在 PowerShell
中执行它。有部分应用可能会因为更新信息不匹配报错无法安装,可以先删除掉再重新执行,已经安装成功的会自动跳过。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # 全局安装的工具或应用 sudo scoop install -g ` openssl ` JetBrains-Mono ` FiraCode ` 3270-NF # 无需管理员权限安装的应用 scoop install ` 7zip ` nvm ` switchhosts ` fiddler ` docker ` nginx ` rust ` android-studio ` python2 ` python ` RevokeMsgPatcher ` ffmpeg ` hub ` act ` everything ` treesize ` wiztree ` vlc ` Clash- for -Windows_Chinese |
一些你想安装的工具软件可能在 scoop
仓库中是可以搜的(当前 spc 仓库源收集有 1.6w+ 应用),可通过 scoop-search
命令搜索,选择合适的版本进行安装。示例:
1 2 3 | scoop-search jdk scoop info jdk scoop install orcalejdk8 |
2.5 手工下载安装的应用
由于 scoop
安装的应用适合使用 scoop update
进行更新,而一些常用应用可能会经常自动升级,此时就可能存在问题。
故一般来说,不需要经常升级版本的应用推荐使用 scoop
安装,重度使用并需要依赖自动更新升级新版本的应用,则推荐手工下载安装。
TortoiseGit
chrome
vscode
qq
tim
wechat
BaiduNetDisk
WeChatWork
DingTalk
feishu
ADrive
Tencent-Meeting
WPSOffice-cn
2.4 使用 nvm
安装 Node.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | nvm node_mirror https: //npmmirror .com /mirrors/node/ nvm npm_mirror https: //npmmirror .com /mirrors/npm/ nvm install 18 && nvm use 18 # 安装 Node.js 18 版本 npm set registry https: //registry .npmmirror.com # 安装包管理工具 npm i -g @lzwme /nrm yarn pnpm nvm use taobao # 示例:nrm 添加内网 npm 私有仓库配置 # nrm add lzw https://registry.demo.me https://lzw.me # 安装个人开发辅助工具 npm i -g tsx npm-check-updates @lzwme /git-helper @lzwme /m3u8-dl |
3 其他配置
3.1 git
配置
1 2 3 4 5 6 7 8 | # 默认账号与邮箱 $ git config --global user.name "renxia" $ git config --global user.email "邮箱" # 生成 ssh 公私钥 ssh -keygen -t rsa # 查看公钥(复制并配置至 gitlab、github 等) cat ~/. ssh /id_rsa .pub |
3.2 python
使用国内镜像
在当前用户目录下新建 pip/pip.ini
文件,内容为:
1 2 3 4 5 | [ global ] index-url = https : //mirrors.aliyun.com/pypi/simple/ [ install ] trusted-host=mirrors.aliyun.com |
3.3 恢复右键菜单显示所有项
win11
右键菜单模式将超过x项的选项放到了”更多”中,导致许多右键操作需要多点一次菜单,非常不方便。若需改为 win10 的右键菜单模式,可参考如下方法操作。
使用管理员权限打开 cmd
,然后执行命令,然后重启系统或重启资源管理器(explorer.exe
)即可:
1 | reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve |
若需恢复 win11
右键模式,可重新执行如下命令:
1 | reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /va /f |
3.4 常用工具缓存位置设置
对于 python
、npm
、yarn
、pnpm
等工具,在涉及包下载时都会下载到缓存目录中,随着时间的增长,缓存文件会越来越多,占用磁盘空间。
我们可以将他们统一设置在一个目录位置下,以便于统一查看分析和快速清理。
新建目录 D:\cache
,然后参考执行如下命令:
1 2 3 4 5 6 7 8 9 10 | # 设置 npm 缓存目录 npm config set cache "D:\cache\npm" # 设置 yarn 缓存目录 yarn config set cache-folder "D:\cache\yarn" # 设置 yarn global 缓存目录 yarn config set global-folder "D:\cache\yarn" # 设置 pnpm 缓存目录 pnpm config set store "D:\cache\pnpm" # 设置 python 包缓存目录 python -m pip config set global.cache- dir "D:\cache\pipcache" |
- 设置
gradle
缓存目录:新增环境变量GRADLE_USER_HOME
,值为D:\cache\.gradle
。
4 小结
整个过程还是挺费时间的。由于内网限制了下载速度为 1M
以内,在使用 Scoop
批量安装应用时耗非了较多的时间。可以在旧电脑上使用 mstsc
远程协助方式连接,在工作的空隙去间歇性的配置。
在此记录以上流程备忘,也希望能对有类似情况的同学提供些许帮助。