更改Scoop默认安装位置

更改 Scoop 包管理器的默认安装路径,便于重装系统后快速恢复

#type / howto #status / evergreen

更改 Scoop 默认安装位置

[!info] related notes

目标

将 Scoop 的安装目录从默认的 C:\Users\<用户名>\scoop 迁移到其他盘符(如 D 盘),这样重装系统后只需重新指向环境变量,大部分软件无需重装。

步骤

方案一:安装前配置(最推荐)

在安装 Scoop 之前设置环境变量:

# 设置用户软件安装到 D:\Scoop
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

# 设置全局软件安装到 D:\ScoopGlobal (需管理员权限)
$env:SCOOP_GLOBAL='D:\ScoopGlobal'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

# 然后再执行官方的安装命令
irm get.scoop.sh | iex

方案二:已安装后迁移

如果 Scoop 已经安装在默认路径,按以下步骤迁移:

1. 移动 Scoop 目录

# 关闭所有使用 Scoop 安装的程序

# 移动整个 scoop 目录
Move-Item "$env:USERPROFILE\scoop" "D:\Scoop"

# 设置环境变量
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

2. 移动全局应用(如有)

# 需管理员权限
Move-Item "C:\ProgramData\scoop" "D:\ScoopGlobal"

$env:SCOOP_GLOBAL='D:\ScoopGlobal'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

3. 更新 PATH 环境变量

# 检查 PATH 中是否有旧路径需要更新
$env:PATH -split ';' | Where-Object { $_ -match 'scoop' }

# 如果有旧路径,手动在系统设置中更新为新路径

4. 验证迁移

# 检查 scoop 是否正常工作
scoop status
scoop list

验证

# 确认安装路径
scoop config root
# 应输出 D:\Scoop

# 安装一个测试应用确认
scoop install curl
where.exe curl
# 应指向 D:\Scoop\shims\curl.exe

常见问题

问题原因解决
scoop 命令找不到PATH 未更新D:\Scoop\shims 加入 PATH
全局应用不生效SCOOP_GLOBAL 未设置以管理员身份设置 Machine 级别环境变量
shim 文件指向旧路径移动后 shim 未更新scoop reset * 重建所有 shim
重装系统后恢复环境变量已设好只需重新安装 scoop 本体,然后 scoop install 所有应用

重装系统后恢复流程

# 1. 设置环境变量指向已有目录
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

# 2. 重新安装 scoop 本体
irm get.scoop.sh | iex

# 3. scoop 会检测到已有应用,执行 reset 恢复
scoop reset *

信息参考

创建于 2025/12/24 更新于 2026/5/27