解决Windows下安装Julia包时因无权创建符号链接而失败的问题


#1

在Windows系统中创建符号链接需要管理员特权。因此在安装Julia包的过程中,build经常会遇到如下错误:

On Windows, creating file symlinks requires Administrator privileges

最简单的解决方案是以管理员权限运行julia。但是这样不解决根本问题,因为我们并不知道哪些包会创建符号链接。

我更推荐如下做法:

1、按下Win+R,输入gpedit.msc打开组策略编辑器,前往计算机配置>Windows 设置>安全设置>本地策略>用户权限分配,双击创建符号链接,点击添加用户或组,点击对象类型,确保已勾选,点击确定,然后在下方文本框中输入Users,点击确定,将Users用户组加入列表,然后点击确定关闭窗口。

2、注销当前用户,重新登录(*)。

3、按下Win+R,输入cmd打开普通权限的命令提示符,输入whoami /priv,确认
当前令牌包含SeCreateSymbolicLinkPrivilege特权(已禁用状态不影响)。

现在,创建符号链接不需要管理权限了,可以直接安装Julia包。

解释:出于安全考虑,在Windows上创建符号链接默认需要管理员权限。在Windows Vista及以上系统中,出于安全考虑,管理员账户登录时(*)会得到两个安全令牌,一个是完全的管理员令牌,一个是拿掉了管理员特权的普通用户令牌。默认情况下用受限的令牌启动程序,而当获得UAC批准后才能使用完全令牌。我们只要允许Users组创建符号链接即可解决问题。