# Using Julia on Windows without Administrator privilages

**URL:** https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497
**Category:** New to Julia
**Tags:** package
**Created:** [October 4, 2019, 5:52pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497 "2019-10-04T17:52:09Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 4, 2019, 5:52pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/1 "2019-10-04T17:52:09Z")

</div>

For most of my career, I’ve been working in MATLAB, Fortran, and–more recently Python. I’ve been getting to know (and love) Julia with some personal projects on my home computer for the past month or so.

This week, I decided to start a project at work in Julia, but almost every package I try to build gives me the error:

`Warning: On Windows, creating file symlinks requires Administrator privileges`

Unfortunately, this would involve putting in a ticket with IT every time I wanted to do something new. And it also means that I could never share my code with anyone else at work since they would also have to go through the same process.

Am I doing something wrong? Is there a workaround for this?

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [October 4, 2019, 5:56pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/2 "2019-10-04T17:56:05Z")

</div>

Cool. But the subject line suggests you have a question. Trouble?

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [October 4, 2019, 5:56pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/3 "2019-10-04T17:56:56Z")

</div>

No Admin Righs needed.

---

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 4, 2019, 5:57pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/4 "2019-10-04T17:57:47Z")

</div>

Sorry, accidentally hit submit before I was finished typing.

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [October 4, 2019, 5:59pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/5 "2019-10-04T17:59:30Z")

</div>

How about picking an installation directory?

 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/9/79627bae33a34a17d25dff43987b36d6a8a3e963.png)  
Notice the bit about administrator privileges. What if you put it in your Documents? Is that any better?

---

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 4, 2019, 6:16pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/6 "2019-10-04T18:16:11Z")

</div>

> What if you put it in your Documents? Is that any better?

Unfortunately that didn’t work either 😕 . I uninstalled from AppData/Local and reinstalled fresh in Documents and I’m still getting the same messages when I try to add the DifferentialEquations package. It looks like the problem packages are Sundials and SpecialFunctions.

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [October 4, 2019, 6:17pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/7 "2019-10-04T18:17:20Z")

</div>

That is interesting. Is your home folder on some sort of a network drive?

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [October 4, 2019, 6:25pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/8 "2019-10-04T18:25:56Z")

</div>

Sounds like a binary provider thing. @staticfloat do you know of an issue related to this?

---

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 4, 2019, 6:38pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/9 "2019-10-04T18:38:45Z")

</div>

My home folder is on a local drive D:, but not my C: drive. I just tried reinstalling it on the C: drive and hit the same issue.

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [October 5, 2019, 6:55am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/10 "2019-10-05T06:55:10Z")

</div>

You mentioned Sundials above. What happens when you do `]build Sundials`? The build would leave behind a log file, and there might be some clues in there. For instance I just did

```julia
(v1.4) pkg> build Arpack
  Building Arpack → `C:\Users\PetrKrysl\.julia\packages\Arpack\cu5By\deps\build.log`

(v1.4) pkg> 

```

Note the name of the log file. If an error occurs, it should be mentioned in there somewhere.

---

<div class="post-metadata">

### Author: ![visr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/visr/32/17204_2.png) [@visr](https://discourse.julialang.org/u/visr)
#### Post date: [October 5, 2019, 9:40am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/11 "2019-10-05T09:40:22Z")

</div>

It’s unfortunate that the symlinks on Windows are still causing issues. I just got a similar report here: [https://github.com/JuliaGeo/GDAL.jl/issues/80](https://github.com/JuliaGeo/GDAL.jl/issues/80). Does setting the environment variable `BINARYPROVIDER_COPYDEREF=true` help?

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [October 5, 2019, 9:46am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/12 "2019-10-05T09:46:49Z")

</div>

When I do `]build Sundials` I get in the log file:  
┌ Warning: On Windows, creating file symlinks requires Administrator privileges  
└ @ Base.Filesystem file.jl:922  
┌ Warning: platform\_key() is deprecated, use platform\_key\_abi() from now on  
│ caller = ip:0x0  
└ @ Core :-1

What do you get?

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [October 5, 2019, 9:54am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/13 "2019-10-05T09:54:04Z")

</div>

So it seems, the only proper way is, to set the group policy “Create symbolic links” from “Administrators” to “Users”.  
Local Group Policy Editor: Computer configuration → Windows Settings → Security Settings → Local Policies → User Rights Assignment → Create symbolic links

Surely this requires a ticket at your IT department. There may be a central switch for this so they don’t need to go to your and your colleagues machines where your software should also run.

For me the question is now, why I did not had this problem ever? Are there packages which use symbolic links and others not?

---

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 7, 2019, 1:42pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/14 "2019-10-07T13:42:00Z")

</div>

Setting `BINARYPROVIDER_COPYDEREF=true` didn’t get me there either. Thanks for the suggestion though.

---

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 7, 2019, 1:43pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/15 "2019-10-07T13:43:49Z")

</div>

When I ]build Sundials, I get:

```julia
(v1.2) pkg> build Sundials
  Building Sundials → `D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\build.log`
┌ Error: Error building `Sundials`:
│ ┌ Warning: On Windows, creating file symlinks requires Administrator privileges
│ └ @ Base.Filesystem file.jl:797
│ ┌ Warning: platform_key() is deprecated, use platform_key_abi() from now on
│ │ caller = ip:0x0
│ └ @ Core :-1
│ [ Info: Downloading https://github.com/JuliaDiffEq/SundialsBuilder/releases/download/sundials-3.1.1.6/Sundials.v1.0.0.x86_64-w64-mingw32.tar.gz to D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\usr\downloads\Sundials.v1.0.0.x86_64-w64-mingw32.tar.gz...
│ ERROR: LoadError: Could not download https://github.com/JuliaDiffEq/SundialsBuilder/releases/download/sundials-3.1.1.6/Sundials.v1.0.0.x86_64-w64-mingw32.tar.gz to D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\usr\downloads\Sundials.v1.0.0.x86_64-w64-mingw32.tar.gz:
│ ErrorException("")
│ Stacktrace:
│ [1] error(::String) at .\error.jl:33
│ [2] #download#93(::Bool, ::typeof(BinaryProvider.download), ::String, ::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:498
│ [3] #download at .\none:0 [inlined]
│ [4] #download_verify#94(::Bool, ::Bool, ::Bool, ::typeof(download_verify), ::String, ::String, ::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:567
│ [5] #download_verify at .\tuple.jl:0 [inlined]
│ [6] #install#133(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::typeof(install), ::String, ::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\Prefix.jl:314
│ [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at .\tuple.jl:0
│ [8] top-level scope at D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\build.jl:53
│ [9] include at .\boot.jl:328 [inlined]
│ [10] include_relative(::Module, ::String) at .\loading.jl:1094
│ [11] include(::Module, ::String) at .\Base.jl:31
│ [12] include(::String) at .\client.jl:431
│ [13] top-level scope at none:5
│ in expression starting at D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\build.jl:49
│ caused by [exception 2]
│ 
│ Stacktrace:
│ [1] error() at .\error.jl:42
│ [2] #download#93(::Bool, ::typeof(BinaryProvider.download), ::String, ::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:492
│ [3] #download at .\none:0 [inlined]
│ [4] #download_verify#94(::Bool, ::Bool, ::Bool, ::typeof(download_verify), ::String, ::String, ::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:567
│ [5] #download_verify at .\tuple.jl:0 [inlined]
│ [6] #install#133(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::typeof(install), ::String, ::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\Prefix.jl:314
│ [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at .\tuple.jl:0
│ [8] top-level scope at D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\build.jl:53
│ [9] include at .\boot.jl:328 [inlined]
│ [10] include_relative(::Module, ::String) at .\loading.jl:1094
│ [11] include(::Module, ::String) at .\Base.jl:31
│ [12] include(::String) at .\client.jl:431
│ [13] top-level scope at none:5
│ caused by [exception 1]
│ IOError: symlink: operation not permitted (EPERM)
│ Stacktrace:
│ [1] uv_error at .\libuv.jl:90 [inlined]
│ [2] symlink(::String, ::String) at .\file.jl:800
│ [3] probe_symlink_creation(::String) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:121
│ [4] #probe_platform_engines!#30(::Bool, ::typeof(BinaryProvider.probe_platform_engines!)) at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:175
│ [5] probe_platform_engines! at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\PlatformEngines.jl:169 [inlined]
│ [6] __init__ () at D:\Users\jdiegelm\.julia\packages\BinaryProvider\TcAwt\src\BinaryProvider.jl:28
│ [7] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:685
│ [8] _require_search_from_serialized(::Base.PkgId, ::String) at .\loading.jl:765
│ [9] _require(::Base.PkgId) at .\loading.jl:990
│ [10] require(::Base.PkgId) at .\loading.jl:911
│ [11] require(::Module, ::Symbol) at .\loading.jl:906
│ [12] include at .\boot.jl:328 [inlined]
│ [13] include_relative(::Module, ::String) at .\loading.jl:1094
│ [14] include(::Module, ::String) at .\Base.jl:31
│ [15] include(::String) at .\client.jl:431
│ [16] top-level scope at none:5
│ Exception setting "SecurityProtocol": "Cannot convert null to type "System.Net.SecurityProtocolType" due to invalid enumeration values. Speci
│ fy one of the following enumeration values and try again. The possible enumeration values are "Ssl3, Tls"."
│ At line:1 char:35
│ + [System.Net.ServicePointManager]:: <<<< SecurityProtocol =
│ + CategoryInfo : InvalidOperation: (:) [], RuntimeException
│ + FullyQualifiedErrorId : PropertyAssignmentException
│ 
│ Exception calling "DownloadFile" with "2" argument(s): "The underlying connection was closed: An unexpected error occurred on a send."
│ At line:5 char:24
│ + $webclient.DownloadFile <<<< ("https://github.com/JuliaDiffEq/SundialsBuilder/releases/download/sundials-3.1.1.6/Sundials.v1.0.0.x86_64-w64
│ -mingw32.tar.gz", "D:\Users\jdiegelm\.julia\packages\Sundials\CRi5j\deps\usr\downloads\Sundials.v1.0.0.x86_64-w64-mingw32.tar.gz")
│ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
│ + FullyQualifiedErrorId : DotNetMethodException

```

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [October 7, 2019, 2:26pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/16 "2019-10-07T14:26:32Z")

</div>

If I read the error messages above correctly, the error has nothing to do with symlinks:

ERROR: LoadError: Could not download [https://github.com/JuliaDiffEq/SundialsBuilder/releases/download/sundials-3.1.1.6/Sundials.v1.0.0.x86\_64-w64-mingw32.tar.gz](https://github.com/JuliaDiffEq/SundialsBuilder/releases/download/sundials-3.1.1.6/Sundials.v1.0.0.x86_64-w64-mingw32.tar.gz)

For some reason the build process cannot download the above file (even though, surprisingly, it actually exists).

---

<div class="post-metadata">

### Author: ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)
#### Post date: [October 7, 2019, 4:16pm UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/17 "2019-10-07T16:16:47Z")

</div>

That was it! For whatever reason, it’s still having trouble automatically downloading those tar files, but I did it manually and it worked fine.

Slight pain, but at least it’s workable going forward.

Thanks!

---

<div class="post-metadata">

### Author: ![jkwwwwow](https://avatars.discourse-cdn.com/v4/letter/j/ecb155/32.png) [@jkwwwwow](https://discourse.julialang.org/u/jkwwwwow)
#### Post date: [June 11, 2020, 7:16am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/18 "2020-06-11T07:16:17Z")

</div>

can you tell me how to setting `BINARYPROVIDER_COPYDEREF=true` in terminal?

---

<div class="post-metadata">

### Author: ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)
#### Post date: [June 11, 2020, 7:46am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/19 "2020-06-11T07:46:14Z")

</div>

I had the same issue on Windows some time ago. As I remember the solution suggested by @oheil is effective.

---

<div class="post-metadata">

### Author: ![Sijun](https://avatars.discourse-cdn.com/v4/letter/s/b2d939/32.png) [@Sijun](https://discourse.julialang.org/u/Sijun)
#### Post date: [July 13, 2020, 4:04am UTC](https://discourse.julialang.org/t/using-julia-on-windows-without-administrator-privilages/29497/20 "2020-07-13T04:04:56Z")

</div>

It is not a Windows environment variable. Please try this in Julia terminal or startup.jl:

```julia
ENV["BINARYPROVIDER_COPYDEREF"]="true"

```
