Buck2 运行在 Windows 上的一些问题
1. 运行权限问题
当 Buck2 在 Windows 上运行并尝试创建符号链接(symlink)时,可能会出现错误 “A required privilege is not held by the client.”(错误代码1314,意为客户端没有所需的特权)。这个错误表明当前用户帐户缺乏创建符号链接的权限。
解决方法:开启 Windows 开发者模式和修改注册表
启用开发者模式:
- 打开开发者模式设置: 按下 Win + R,输入命令
ms-settings:developers
并回车,或者通过开始菜单进入 “设置” -> “隐私和安全” -> “针对开发人员”(在部分系统中路径为“更新和安全” -> “针对开发人员”); - 启用开发者模式: 在开发者设置页面,将 “开发人员模式” 开关切换为打开状态。阅读提示后确认启用。启用后,Windows 会授予当前用户帐户创建符号链接的权限;
修改注册表
- 按下 Win+R 输入
regedit
打开注册表; - 定位:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
; - 新建
NtfsAllowSymlinkEvaluation
值为1
( DWORD值 );
最后重启电脑即可,不重启可能会无法生效,总之重启大法解决一切。
2. Python 环境问题
- 测试系统安装 Python 3.13.2 ,并且需要将 Python 的路径添加到环境变量中,执行 Buck2 的
build
命令时不再报找不到 Python 的错误;