Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not possible to install Sundials on Windows due to creation of symbolic links (admin rights needed) #172

Closed
MartinOtter opened this issue Jun 29, 2018 · 12 comments · Fixed by #174
Labels

Comments

@MartinOtter
Copy link

I tried to install Sundials in Julia-0.7.0-beta with "add Sundials" on Windows 7 and this failed. The reason is that when unzipping

HOME\.julia\packages\Sundials\LXBu\deps\usr\downloads\Sundials.x86_64-w64-mingw32.tar.gz

then the unzip-program tries to create symbolic links:

Extracting archive:
ERROR: Can not create symbolic link : Access denied : 
HOME\.julia\packages\Sundials\LXBu\deps\usr\bin\libcolamd.dll
Path =
Type = tar
Code Page = UTF-8
@ Pkg.Operations Operations.jl:973

However, under Windows 7 and 10 creating symbolic links requires administrator rights (that I do not have). Would it be possible to change the setup-procedures so that no symbolic links are set?

@ChrisRackauckas
Copy link
Member

This is an upstream issue with the BinaryProvider.jl. @staticfloat ?

@MartinOtter
Copy link
Author

In order to proceed, I tried to manually fix the installation:

In file HOME.julia\packages\Sundials\LXBu\deps\build.jls uncommented lines 48-61

#=
unsatisfied ...
if haskey(...)
  ...
elseif unsatisfied
   ...
end
=#

Copied manually directory HOME.julia\packages\Sundials\LXBu\deps\usr\bin to D:\otter\home.julia\packages\Sundials\LXBu\usr\bin.

Executing the command

Pkg.build("Sundials")

This was successful (and a correct deps.jl file was generated).

Executing the command

Pkg.test("Sundials")

gave many warnings (many packages seemed to be not yet adapted to Julia 0.7) and the following error:

ERROR: LoadError: LoadError: ArgumentError: Package Sundials does not have Compat in its dependencies:
 - If you have Sundials checked out for development and have
   added Compat as a dependency but haven't updated your primary
   environment's manifest file, try `Pkg.resolve()`.
 - Otherwise you may need to report an issue with Sundials.

Executing the command

Pkg.resolve()

did not do anything. Installing Compat:

Pkg.add("Compat")

was successfull. Executing the command:

Pkg.test("Sundials")

Gave the same error as above. Any hint, how I could continue?

@MartinOtter
Copy link
Author

Tried to install Sundials with the current stable release of Julia (v0.6.3) for Windows 64-bit.

Pkg.add("Sundials")
Pkg.test("Sundials")

This was successful (without any manual intervention). So, it seems that the BinaryProvider.jl used in Julia 0.7.0-beta introduced a new issue, as well as the missing Compat package.

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented Jun 29, 2018

The compat thing was already fixed on master. I just setup the tagging.

@MartinOtter
Copy link
Author

Made a new try: Used nightly build of Juila 0.7.0-Beta (downloaded July 10) and performed the steps from above. The error with "Compat" did no longer occur (due to your fix). However, now another error occurs ("AbstractODEIntegrator not defined"):

ERROR: LoadError: LoadError: UndefVarError: AbstractODEIntegrator not defined
Stacktrace:
 [1] top-level scope at none:0
 [2] include at .\boot.jl:317 [inlined]
 [3] include_relative(::Module, ::String) at .\loading.jl:1034
 [4] include at .\sysimg.jl:29 [inlined]
 [5] include(::String) at HOME\.julia\packages\Sundials\EYmw\src\Sundials.jl:3
 [6] top-level scope at none:0
 [7] include at .\boot.jl:317 [inlined]
 [8] include_relative(::Module, ::String) at .\loading.jl:1034
 [9] include(::Module, ::String) at .\sysimg.jl:29
 [10] top-level scope at none:0
 [11] eval at .\boot.jl:319 [inlined]
 [12] eval(::Expr) at .\client.jl:394
 [13] top-level scope at .\none:3 [inlined]
 [14] top-level scope at .\<missing>:0
in expression starting at HOME\.julia\packages\Sundials\EYmw\src\common_interface\integrator_types.jl:15
in expression starting at HOME\.julia\packages\Sundials\EYmw\src\Sundials.jl:62

@ChrisRackauckas
Copy link
Member

Yes that's expected because the v0.7 compatibility release hasn't come yet for Sundials.jl (hopefully this week though). But the binaries installed correctly?

@MartinOtter
Copy link
Author

Yes that's expected because the v0.7 compatibility release hasn't come yet for Sundials.jl (hopefully this week though).

O.k. (I just wait).

But the binaries installed correctly?

This issue (creation of symbolic links) is still present. But this not so critical, because manually copying the files is possible.

@ChrisRackauckas
Copy link
Member

From @staticfloat on the Slack:

Delete the symlinks inside of the .tar.gz file? Note that this only happens on Windows 7. Windows 10 doesn't require admin privileges to make symlinks

@MartinOtter
Copy link
Author

Windows 10 doesn't require admin privileges to make symlinks

In this blog from Microsoft it is written:

Now in Windows 10 Creators Update, a user (with admin rights) can first 
enable Developer Mode, and then any user on the machine can run the
mklink command without elevating a command-line console.

An this Microsoft documentation states:

 Enabling Developer mode requires administrator access.
 If your device is owned by an organization, this option might be disabled.

So, also for Windows 10 it would be better to not use symbolic links

@ChrisRackauckas
Copy link
Member

I think it would be easiest to discuss this in the #BinDeps2 Slack chatroom or the BinaryProvider.jl page. I'm just acting as the middleman here since this is really just due to how the binary providing system of Julia is setup (Sundials.jl is just using it).

@ChrisRackauckas
Copy link
Member

The fix is in the builder: SciML/SundialsBuilder#12

@ChrisRackauckas
Copy link
Member

Just tagged Sundials.jl v1.6.0 which should have this all fixed up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants