Strange Error at Installing Packages `git` failed to clone

Hello,

I am trying to install some packages in Julia. In some cases I get an error and in others I do not. For examples, let’s take the packages Distributions. When I install it, I get the following error message:

(@v1.6) pkg> add Distributions
    Updating registry at `C:\Users\alfaroua\.julia\registries\General`
    Updating git-repo `https://github.com/JuliaRegistries/General.git`
   Resolving package versions...
     Cloning [4c63d2b9-4356-54db-8cca-17b64c39e42c] StatsFuns from https://github.com/JuliaStats/StatsFuns.jl.git
   Installed StatsFuns ─────────── v0.9.8
     Cloning [34da2185-b29b-5c13-b0c7-acf172513d20] Compat from https://github.com/JuliaLang/Compat.jl.git
   Installed Compat ────────────── v3.31.0
     Cloning [ffbed154-4ef7-542d-bbb7-c09d3a79fcae] DocStringExtensions from https://github.com/JuliaDocs/DocStringExtensions.jl.git
   Installed DocStringExtensions ─ v0.8.5
     Cloning [31c24e10-a181-5473-b8eb-7969acd0382f] Distributions from https://github.com/JuliaStats/Distributions.jl.git
   Installed Distributions ─────── v0.25.6
     Cloning [21216c6a-2e73-6563-6e65-726566657250] Preferences from https://github.com/JuliaPackaging/Preferences.jl.git
ERROR: failed to clone from https://github.com/JuliaPackaging/Preferences.jl.git, error: GitError(Code:ERROR, Class:OS, failed to read data: El servidor devolvió una respuesta no válida o no reconocida
)

I do not understand how to fix the error. Also, I do not understand why for so packages (e.g Compat) it works and for some others it does not (Preferences.jl).

It also yields an error with JLD

(@v1.6) pkg> add JLD
   Resolving package versions...
     Cloning [5ced341a-0733-55b8-9ab6-a4889d929147] Lz4_jll from https://github.com/JuliaBinaryWrappers/Lz4_jll.jl.git
ERROR: failed to clone from https://github.com/JuliaBinaryWrappers/Lz4_jll.jl.git, error: GitError(Code:ERROR, Class:OS, failed to read data: El servidor devolvió una respuesta no válida o no reconocida
)

But I do not get it with other packages such as Statistics, Combinatorics or LinearAlgebra. The output when I install this is

(@v1.6) pkg> add LinearAlgebra
   Resolving package versions...
    Updating `C:\Users\alfaroua\.julia\environments\v1.6\Project.toml`
  [37e2e46d] + LinearAlgebra
    Updating `C:\Users\alfaroua\.julia\environments\v1.6\Manifest.toml`
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra

(@v1.6) pkg> add Combinatorics
   Resolving package versions...
     Cloning [861a8166-3701-5b0c-9a16-15d98fcdc6aa] Combinatorics from https://github.com/JuliaMath/Combinatorics.jl.git   Installed Combinatorics ─ v1.0.2
    Updating `C:\Users\XXX\.julia\environments\v1.6\Project.toml`
  [861a8166] + Combinatorics v1.0.2
    Updating `C:\Users\XXX\.julia\environments\v1.6\Manifest.toml`
  [861a8166] + Combinatorics v1.0.2
Precompiling project...
  1 dependency successfully precompiled in 2 seconds

Any help works because I have a whole project written in Julia and this issue with the packages has not allowed me to run my code for a week, so I am very worried.

I think the examples you mention as working are in Base, meaning they are already installed. Try cloning the repo of one other package in the shell to see if that works.

Thanks for the reply!

I think they were not, but correct me if I am wrong, but I ran this before adding all the packages

(@v1.6) pkg> status
      Status `C:\Users\XXX\.julia\environments\v1.6\Project.toml` (empty project)

Still I might be wrong. I do not understand pretty well these issues. Certainly, any help works because I have a whole project written in Julia and this issue with the packages has not allowed me to run my code for a week, so I am very worried. I edited the post above with the code I get when I run the ones that work.

By the way, the same error happens with Conda


(@v1.6) pkg> add Conda
    Updating registry at `C:\Users\alfaroua\.julia\registries\General`
    Updating git-repo `https://github.com/JuliaRegistries/General.git`
   Resolving package versions...
     Cloning [69de0a69-1ddd-5017-9359-2bf0b02dc9f0] Parsers from https://github.com/JuliaData/Parsers.jl.git
   Installed Parsers ──────── v1.1.0
     Cloning [8f4d0f93-b110-5947-807f-2305c1781a2d] Conda from https://github.com/JuliaPy/Conda.jl.git
   Installed Conda ────────── v1.5.2
     Cloning [682c06a0-de6a-54ab-a142-c8b1cf79cde6] JSON from https://github.com/JuliaIO/JSON.jl.git
   Installed JSON ─────────── v0.21.1
     Cloning [81def892-9a0e-5fdd-b105-ffc91e053289] VersionParsing from https://github.com/JuliaInterop/VersionParsing.jl.git
ERROR: failed to clone from https://github.com/JuliaInterop/VersionParsing.jl.git, error: GitError(Code:ERROR, Class:OS, failed to read data: El servidor devolvió una respuesta no válida o no reconocida
)


@lmiq

Well, most of them (if not all) are Base. You can for instance run using Iterators without adding it.

In a command line, run git --version. What’s the output?

I don’t know if that has anything to do with that, but a weird package problem I had once was solved with this:

Those packages are so called stdlibs, packages which are included with Julia and don’t require a download.

I agree that there’s little obvious system to that. Are you behind a firewall that can interfere with your network traffic? Do you have antivirus software that may overreact to certain files? Does git cloning of the difficult packages work outside of Julia? E.g.

git clone https://github.com/JuliaPackaging/Preferences.jl.git

This looks unrelated since it’s git cloning that fails. Here I would rather suggest trying with the package servers, but since that’s the default and has apparently been disabled I assume that has already been tried.

1 Like

Thanks so much @GunnarFarneback . Yes, I think that this might be related to the firewall or some proxy settings. What is weird is that I can enter to GitHub - JuliaPackaging/Preferences.jl: Project Preferences Package or to GitHub - JuliaInterop/VersionParsing.jl: flexible VersionNumber parsing in Julia through the browser, however, it does not work to download the packages through Julia.

I will try to clone things through the shell to see what I get. However, can you think of any other diagnostic or fix?

1 Like
C:\Users\XXX>git --version
"git" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

I get this output. It basically says in Spanisg something like git is not recognized as an internal or external command, program or file

Git cloning packages does not work in the cmd for example. Weird


$ git clone https://github.com/JuliaPackaging/Preferences.jl.git
Cloning into 'Preferences.jl'...
fatal: unable to access 'https://github.com/JuliaPackaging/Preferences.jl.git/': SSL certificate problem: self signed certificate in certificate chain

I’m not sure how Julia works with this, I never used Julia on a computer where I hadn’t already installed git, but it might be a good idea to google how to install git on Windows and do so. Can’t swear it will help though.

In Git I get the following

XXX@XXX MINGW64 ~
$ git --version
git version 2.32.0.windows.1

XXX@XXX MINGW64 ~
$ git clone https://github.com/Juliapackagin/Preferences.jl.git
Cloning into 'Preferences.jl'...
fatal: unable to access 'https://github.com/Juliapackagin/Preferences.jl.git/': SSL certificate problem: self signed certificate in certificate chain

Might be an antivirus problem, apparently

@GunnarFarneback

I have no experience of SSL failures so can’t really help more than point to GitHub - JuliaLang/NetworkOptions.jl, which mentions a bit of SSL.

I solved the Git issue with the SSL certificates, for example now this works,

XXX@XXX MINGW64 ~
$ git clone https://github.com/JuliaPackaging/Preferences.jl.git
Cloning into 'Preferences.jl'...
remote: Enumerating objects: 91, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 91 (delta 27), reused 72 (delta 21), pack-reused 0
Receiving objects: 100% (91/91), 29.99 KiB | 438.00 KiB/s, done.
Resolving deltas: 100% (27/27), done

I can clone Distributions using the bash as well. However, I still get errors when adding packages to Julia, for example with Distributions:

(@v1.6) pkg> add "https://github.com/JuliaStats/Distributions.jl"
     Cloning git-repo `https://github.com/JuliaStats/Distributions.jl`
    Updating git-repo `https://github.com/JuliaStats/Distributions.jl`
    Updating registry at `C:\Users\alfaroua\.julia\registries\General`
    Updating git-repo `https://github.com/JuliaRegistries/General.git`
   Resolving package versions...
     Cloning [1a297f60-69ca-5386-bcde-b61e274b549b] FillArrays from https://github.com/JuliaArrays/FillArrays.jl.git
   Installed FillArrays ───── v0.11.7
     Cloning [692b3bcd-3c85-4b1f-b108-f13ce0eb3210] JLLWrappers from https://github.com/JuliaPackaging/JLLWrappers.jl.git
ERROR: failed to clone from https://github.com/JuliaPackaging/JLLWrappers.jl.git, error: GitError(Code:ERROR, Class:OS, failed to read data: El servidor devolvió una respuesta no válida o no reconocida
)

try using the bundled SSL?

1 Like

Thanks so much for the suggestion.

I tried to do this by following the steps on @StefanKarpinski post and got the following error


julia>

(@v1.6) pkg>  add "https://github.com/JuliaPackaging/JLLWrappers.jl"
     Cloning git-repo `https://github.com/JuliaPackaging/JLLWrappers.jl`
ERROR: failed to clone from https://github.com/JuliaPackaging/JLLWrappers.jl, error: GitError(Code:ERROR, Class:SSL, Your Julia is built with a SSL/TLS engine that libgit2 doesn't know how to configure to use a file or directory of certificate authority roots, but your environment specifies one via the JULIA_SSL_CA_ROOTS_PATH variable. If you believe your system's root certificates are safe to use, you can `export JULIA_SSL_CA_ROOTS_PATH=""` in your environment to use those instead.)

(@v1.6) pkg>