PowerShell 安装指南:从失败定位到跨平台装成的四步方法
【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell
这篇文章面向刚接触 PowerShell 的普通用户:当你安装 PowerShell 7.x 后出现pwsh无法识别、安装脚本报错、或者装完发现版本不对的情况时,可以按这里的顺序逐项判断。内容基于 PowerShell 官方仓库中的安装脚本与构建文档整理,适合在 Windows、Linux 和 macOS 上动手排查安装问题。
先判断:你的情况算不算真正的安装失败
很多"安装失败"其实只是路径没生效或版本选错了。建议先看下面四个观察点,再决定要不要动它:
- 命令找不到:输入
pwsh提示"不是内部或外部命令"。这通常不是安装失败,而是 PATH 未更新或新终端未打开。 - 下载或安装中断:脚本提示无法下载、404 或架构不受支持。这才更接近真正的安装失败,多半是包与本机架构不匹配。
- 装完版本不对:
pwsh能启动,但pwsh -v显示的仍是旧版本。说明系统里有多份 PowerShell,PATH 指向了旧的。 - Windows 报"禁止运行脚本":这是执行策略拦截,不是安装器的问题,换个执行方式即可绕过。
如果以上都不符合——安装器明确报错退出——再进入下一节的排查。
按优先级做最小排查:从版本到重装
如何确认版本与架构不匹配
先弄清本机架构,再对照你下载的包:
- Windows:
Get-ComputerInfo -Property OsArchitecture,关注x64还是ARM64。官方安装脚本内部就是用这个命令来判断的(见 tools/install-powershell.ps1)。 - Linux / macOS:
uname -m,x86_64对应 x64,arm64对应 ARM64。
判断方法:包名里的linux-x64、osx-arm64、win-x64等后缀必须与本机一致。32 位 Linux 上拿不到 32 位包时,不要硬装 64 位二进制。
依赖与权限检查
二进制压缩包是自包含的,运行时不需要你额外装 .NET 运行时;只有从源码构建才需要 .NET SDK。权限方面常见两类:
- Linux:脚本要把
pwsh链接到/usr/bin,需要 root 或 sudo。没有 sudo 时可以先不建链接,改用完整路径启动。 - macOS:往
/usr/local/bin写符号链接同样可能要管理员权限;首次运行若被系统拦截,按系统提示在"系统设置 → 隐私与安全性"中放行。 - Windows:写用户 PATH 不需要管理员;但用 MSI 方式安装或写机器级 PATH 需要管理员。
macOS 上安装界面提示异常时,可参考这张安装窗口截图对照处理:
PATH 与残留配置
- 修改 PATH 后必须新开一个终端再验证,旧会话不会刷新。
- 重新安装前留意目标目录旁边是否已有
<目录名>.old文件夹——这是安装脚本对旧安装位置的自动备份,留着不影响安装,但也说明这里装过旧版本。 - 多版本并存时,用
where pwsh(Windows)或which pwsh(Linux/macOS)确认实际指向哪一份。
看懂安装报错再动手
把安装脚本的完整输出留下来,重点找三类字眼:
not supported/ 架构相关:回到"版本与架构"小节核对包。already exist/DoNotOverwrite:目标目录被占用,换目录或去掉该参数。- 网络类错误(TLS、404):换网络或稍后重试,脚本默认从官方源拉取最新版元数据。
安装过程的结果与报错形态可以对照下图理解:
何时选择重装或换路径
满足任一条件再考虑重装:架构确认无误但仍反复失败;目标目录里混入了不同版本的文件;PATH 里新旧路径互相干扰。换路径重装时,指定一个全新目录,验证通过后再清理旧目录,能避免旧文件"复活"。
三档处理方案:按你的处境选一条
官方推荐路径:用仓库自带的安装脚本
适用场景:首次安装、常规 x64 / ARM64 机器、能联网。仓库提供了两个跨平台脚本,会自动识别架构并安装最新稳定版:
# Windows:在 PowerShell 中运行,默认装到当前用户目录 powershell -ExecutionPolicy Bypass -File .\tools\install-powershell.ps1# Linux / macOS:需要 sudo 权限以建立 pwsh 软链接 ./tools/install-powershell.sh两个脚本都支持预览版参数(-Preview或-preview),会装到独立目录,与正式版并存互不覆盖。风险提示:默认会覆盖目标目录中已存在的安装位置,如不希望覆盖请使用-DoNotOverwrite/-AddToPath等参数自行控制(各参数含义见脚本头部注释)。
快速绕行路径:指定目录安装并手动配 PATH
适用场景:没有管理员权限、公司机器 PATH 被锁定、或想让某台机器保留多个版本。关键操作:
# 装到用户可写目录,不自动改 PATH powershell -ExecutionPolicy Bypass -File .\tools\install-powershell.ps1 -Destination D:\pwsh7装完后把该目录加入你自己的 PATH(或每次用完整路径调用D:\pwsh7\pwsh.exe)。这条路径不改全局环境,风险最小,代价是每次配置多一步。
进阶修复路径:从源码构建
适用场景:目标架构没有现成二进制、或你想验证特定修复是否生效。流程以 docs/building/linux.md 为准,macOS 见 docs/building/macos.md:
git clone https://gitcode.com/GitHub_Trending/po/PowerShellImport-Module ./build.psm1 Start-PSBootstrap -Scenario Both Start-PSBuild -UseNuGetOrg风险提示:需要联网安装构建依赖和 .NET SDK,耗时长;默认包源是私有 feed,外部构建记得带-UseNuGetOrg。产物位于src/powershell-unix/bin/下对应运行时目录。
验收与回退:确认装成,也知道怎么退
验收只需三步:
pwsh -v pwsh -NoProfile -Command "$PSHOME" pwsh -NoProfile -Command "'ok'"第一条看版本是否符合预期,第二条确认它实际从哪个目录加载(应与你的安装目录一致),第三条确认解释器本身能正常工作。如果which pwsh仍指向旧目录,回到 PATH 排查小节处理顺序问题。
回退方式取决于安装方式,现场尽量保留:
- 脚本安装:旧目录会被自动改名为
<目录>.old,保留它即可随时切回;删掉新装目录和软链接即完成回退。 - Windows MSI:通过"应用和功能"卸载,PATH 注册表项会一并移除。
- Linux 包管理安装:用对应包管理器卸载并删除
/usr/bin/pwsh软链接。
回退前把安装日志文本存档,方便事后判断是包的问题还是本机的问题。
五个长期习惯,避免重复踩坑
- 装之前先跑一次架构探测(
uname -m或Get-ComputerInfo),把结果和你下载的包名后缀对一遍。 - 升级时沿用首次安装的方式,不同安装方式之间来回切换最容易留下两份 PowerShell。
- 改完 PATH 先开新终端再下结论,别在旧会话里反复试。
- 想尝鲜用
-Preview装独立目录,让稳定版和预览版并存,而不是反复覆盖。 - 遇到异常先看 CHANGELOG/ 对应版本的变更记录,很多已知问题有明确说明。
延伸阅读(均为仓库内文件):
- Windows 安装脚本
- Linux / macOS 安装脚本
- 开发者常见问题 FAQ
- Linux 构建指南
【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考