Problem installing Plots.jl (a FFMPEG issue)

After

import Pkg
Pkg.add("Plots")
Pkg.add("GR")
using Plots

I get the message:

FFMPEG not installed properly, run ] build FFMPEG, restart Julia and try again

which I already did, but didn’t work. Any suggestions?

What system are you on?

1 Like

It’s Windows 10

Ok, got it: nobody cares :unamused:

Please note that not many here have access to a Windows machine, so it is harder to debug these things.

I would recommend that you open an issue for FFMPEG, but first check that it is not

Also, please don’t react like this just because your issue was not addressed promptly. Remember that this is open source software, and the other contributors are volunteering their time. If you invest your time in getting to the bottom of this issue, or providing a PR, it could be fixed quicker.

1 Like

This should not happen - I don’t know if it’s a change to the testing infrastructure in Plots, but Plots installation should not require you to have FFMPEG installed. Creating animations will, though.
A solution to your problems right now would be to just install ffmpeg from here: https://ffmpeg.org/download.html , which will allow you to do animations too.
But we should find out what the actual problem is.
The ideal solution would be to have ffmpeg be a binary defendency of Plots via BinaryBuilder but that’s tricky, or was the last time I checked.

1 Like

cf https://github.com/JuliaPlots/Plots.jl/issues/2184

1 Like

Can you try add FFMPEG#sd-download; build FFMPEG ?

FWIW, I’ve seen that error a couple of times when trying to build documentation for packages that use Plots (but don’t necessarily have any animations). Haven’t really had time to debug this yet though.

1 Like

Thanks for your comments and suggestions. Nothing of the above worked out. I decided to quit trying to install Plots.jl since everything works fine with Gadfly.jl :slightly_smiling_face:

If you’re happy with Gadfly then that’s great. Of course though no one should have any problems installing Plots, so it would be great if you can assist with the troubleshooting here. I’ve never seen this error myself so it’s nice to have an example from the wild. What happened Wyken you followed Simons suggestion from above?

2 Likes

This is what I get:


and this:

and tried to build FFMPEG as suggested in the output and restart Julia but didn’t work either.

1 Like

@aerdely; it looks to me like you’re having issues downloading things; your curl command has failed with a message about checking certificate revocation. Additionally, your Julia installation is using C:\WINDOWS\System32\curl.exe, which is a little unusual, usually we choose powershell on Windows, since it’s more typical for that to be available instead of curl.

Most likely, you have both a broken powershell and curl installation on your system. Could you verify that one or the other actually works outside of Julia? If neither works outside of Julia, then you will just need to reinstall powershell for your version of Windows first, and then try again.

2 Likes

I installed Julia through julia-1.2.0-win64.exe file, and accepted all the defaults from its wizard. I’ll check if I can modify the defaults or reinstall curl and/or powershell. Thank you.

Neither curl or powershell are installed by julia - but julia will assume you have (one of) them installed. So if powershell is broken in your system install, you will get problems with any julia package that has a binary (rather than source) dependency.

1 Like

One other consideration is that on Windows, building FFMPEG (and some other packages) won’t work unless launched from something with administrative privileges. I do my package installs and updates from the REPL and I have changed the shortcut to the REPL to launch with “run as administrator”.

1 Like

I seem to run into a similar issue:

shell> ffmpeg -version
ffmpeg: symbol lookup error: /lib64/libvmaf.so.0: undefined symbol: _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev

shell> which ffmpeg
/usr/bin/ffmpeg

(v1.1) pkg> build FFMPEG
  Building FFMPEG → `~/.julia/packages/FFMPEG/bkWgb/deps/build.log`
┌ Error: Error building `FFMPEG`: 
│ ERROR: LoadError: Could not download https://github.com/JuliaPackaging/Yggdrasil/releases/download/Bzip2-v1.0.6-2/build_Bzip2.v1.0.6.jl to /usr/home/christ/.julia/packages/FFMPEG/bkWgb/deps/build_Bzip2.v1.0.6.jl:
│ ErrorException("")
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #download#89(::Bool, ::Function, ::String, ::String) at /usr/home/christ/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:498
│  [3] download(::String, ::String) at /usr/home/christ/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:485
│  [4] top-level scope at /usr/home/christ/.julia/packages/FFMPEG/bkWgb/deps/build.jl:46
│  [5] include at ./boot.jl:326 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1038
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:403
│  [9] top-level scope at none:0
│ in expression starting at /usr/home/christ/.julia/packages/FFMPEG/bkWgb/deps/build.jl:44
│ curl: symbol lookup error: curl: undefined symbol: curl_url_cleanup
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

julia> versioninfo()
Julia Version 1.1.1
Commit 55e36cc308 (2019-05-16 04:10 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, ivybridge)

The first line is awkward because in a normal shell I get

christ@lbox152 deps > which ffmpeg
/usr/bin/ffmpeg
christ@lbox152 deps > ffmpeg -version
ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9 (GCC)

Did you try the newest version of FFMPEG?
It shouldn’t depend on the system ffmpeg, so that should be irrelevant!

Thats on FFMPEG v0.2.3 which should be the newest available version for julia 1.1.1 ( since I did a ]up before).

It really seems to be a curl issue, since I get the symbol lookup error also this way:

shell> curl --version
curl: symbol lookup error: curl: undefined symbol: curl_url_cleanup

while it also works on the system shell.