Problem installing Plots.jl (a FFMPEG issue)

Hmpf… Can you try master? That should improve your problem, but it should, in theory, still use the same download method for the actual binaries… But who knows, maybe it’s smarter with that, or it actually manages to pick up the system FFMPEG!

That does not help. I also tried manually downloading the files and putting them in the deps folder, but it still tries do download them (at least the .tar archive, it picking up the .jl file).

Does it error in the same place, or later when trying to download the binaries?

That was a long journey… it turned out that there was a libcurl4.5.0 in the lib folder of my julia installation and after deleting this everything was fine

You say it is a little unusual that my Julia installation is using C:\WINDOWS\System32\curl.exe but checking the Julia code for https://github.com/JuliaLang/julia/blob/master/base/download.jl it seems that it is explicitly pointing to C:\WINDOWS\System32\curl.exe in line 29. I have already checked my powersehell and curl and they appear to work fine. I also tried the same procedure in 5 different computers with Windows (laptops, desktops and a workstation), and in ALL of them I get the same error. :cry:

1 Like

What does Base.find_curl() return for you?

If it’s something different from nothing, let’s try to temporarily override it to use powershell instead: in the REPL, add the following method definition

Base.find_curl() = nothing

and try installing/building FFMPEG again.

I get:

julia> Base.find_curl()
"C:\\WINDOWS\\System32\\curl.exe"

After doing:

Base.find_curl() = nothing

I get a problem again:

I also downloaded and installed the latest version of curl.exe and tried:

Base.find_curl() = "C:\\curl\\curl.exe"

but got exactly the same error message. I checked https://github.com/JuliaLang/julia/blob/master/base/download.jl
and in lines 29-30 I get the impression that download will always look for C:\\WINDOWS\\System32\\curl.exe no matter what :cry:

This looks like a CURL problem, there is an error message about schannel

What alternative do I have, then?

  1. Google the error and try to fix it (being a screenshot it’s not particularly easy for me to google it for you)
  2. Try renaming C:\WINDOWS\System32\curl.exe to something else, so that Julia will not find it and fallback to PowerShell. If you’re lucky, that may work better. if you’re unlucky, you’ll have other problems to fix

Thanks for your time. I’ve done my best, but it seems to me that I will end going back to R, as a statistician and non computer specialist, to deal with this kind of issues is hard: “come for the syntax, stay for the speed, and run away if you are not a computer professional” :cry:

I’m sorry to hear this, I hope you’ll reconsider your decision in the near future.

I just want to point out that the issue is not due to you not being a computer professional, but to the fact that it’s incredibly hard to find a reliable tool to download files from the Internet. Ideally, downloading a file should be something transparent for the user, I’m confident that a solution will be found soon.

3 Likes

I have been using R for more than 20 years, and NEVER had this kind of issues downloading packages in R, neither security problems. Probably I should wait a few more years to try Julia again, I thought that after a 1.0 version of Julia was the right moment for a statistician to jump into it. My mistake :cry:

2 Likes

I see that you work at UNAM, maybe a chat with @dpsanders will make you change your mind :slight_smile:

2 Likes

Good tip! :smiley::+1: I’ll get in touch with him. Thanks a lot!

1 Like

I was finally able to precompile Plots through:

julia> 
(v1.2) pkg> add https://github.com/giordano/FFMPEG.jl#tmp
   Cloning git-repo `https://github.com/giordano/FFMPEG.jl`
  Updating git-repo `https://github.com/giordano/FFMPEG.jl`
 Resolving package versions...
  Updating `C:\Users\aerde\.juliapro\JuliaPro_v1.2.0-1\environments\v1.2\Project.toml`
  [c87230d0] ↑ FFMPEG v0.2.2 ⇒ v0.2.3 #tmp (https://github.com/giordano/FFMPEG.jl)
  Updating `C:\Users\aerde\.juliapro\JuliaPro_v1.2.0-1\environments\v1.2\Manifest.toml`
  [c87230d0] ↑ FFMPEG v0.2.2 ⇒ v0.2.3 #tmp (https://github.com/giordano/FFMPEG.jl)
  Building FFMPEG → `C:\Users\aerde\.juliapro\JuliaPro_v1.2.0-1\packages\FFMPEG\Q8BJv\deps\build.log`

(v1.2) pkg> 

julia> using Plots
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80]

But why one has to do this sort of things to make things work for such a simple task as installing a package? So your personal fork is more reliable than Julia’s https://github.com/JuliaIO/FFMPEG.jl?

Because this is a new way to provide binaries and we’re rounding off the rough edges. The problem with FFMPEG in particular is quite unfortunate, as it wasn’t initially caught by the continuous integration service that we use (AppVeyor) and the Windows installation on Travis is incomplete and broken for use with FFMPEG, thus unreliable.

The fix will go in the official FFMPEG.jl package in the next days. I made the fork to quickly test a possible fix that I found :slight_smile:

6 Likes

Thanks a lot for your help and time, I really appreciate it :smiley: :+1:

1 Like

Would it be a good idea to take a look how is R doing this in windows reliably?

2 Likes