Julia: LibGit2 kann Julia 1.3 / master nicht klonen oder abrufen

Erstellt am 29. Aug. 2019  Â·  66Kommentare  Â·  Quelle: JuliaLang/julia

Öffnen Sie dieses Problem hier, da ich ziemlich sicher bin, dass Pkg nichts geĂ€ndert hat. Vielleicht hĂ€ngt dies mit dem libgit2-Upgrade (# 32806) zusammen?

$ julia13 -e 'using Pkg; Pkg.Registry.update()'
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
┌ Warning: Some registries failed to update:
│     — /home/fredrik/.julia/registries/General — failed to fetch from repo
└ @ Pkg.Types ~/julia13/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:1189

$ julia12 -e 'using Pkg; Pkg.Registry.update()'
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
bug external dependencies upstream

Hilfreichster Kommentar

@getzze Wie export die Umgebungsvariable JULIA_PKG_SERVER in Ihrer Shell zu verwenden, bevor Sie Julia in einer separaten Shell-Eingabeaufforderung aufgerufen haben?

Die Problemumgehung funktioniert unter _Arch Linux_ mit _Julia_ 1.4.0:

[tamer<strong i="10">@zinc</strong> ~]$ pacman -Q libgit2 julia
libgit2 1:0.99.0-2
julia 2:1.4.0-1

[tamer<strong i="11">@zinc</strong> ~]$ rm -r ~/.julia/registries/General/
[tamer<strong i="14">@zinc</strong> ~]$ julia -e 'using Pkg; Pkg.update()'
    Cloning default registries into `~/.julia`
    Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
Stacktrace:
 [1] up(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:206
 [2] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:201 [inlined]
 [3] #up#47 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [4] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [5] #up#44 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193 [inlined]
 [6] up() at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193
 [7] top-level scope at none:1
caused by [exception 1]
GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
Stacktrace:
 [1] up(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:206
 [2] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:201 [inlined]
 [3] #up#47 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [4] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [5] #up#44 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193 [inlined]
 [6] up() at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193
 [7] top-level scope at none:1
[tamer<strong i="17">@zinc</strong> ~]$ JULIA_PKG_SERVER=pkg.julialang.org julia -e 'using Pkg; Pkg.update()'
    Cloning default registries into `~/.julia`
######################################################################## 100.0%
      Added registry `General` to `~/.julia/registries/General`
   Updating registry at `~/.julia/registries/General`
   Updating `~/.julia/environments/v1.4/Project.toml`
 [no changes]
   Updating `~/.julia/environments/v1.4/Manifest.toml`
 [no changes]

Alle 66 Kommentare

Funktioniert fĂŒr mich auf einem Mac.

Ok, ich bin unter Linux. Das ZurĂŒcksetzen von # 32806 behebt dieses Problem fĂŒr mich.

Reproducer ohne Pkg-Code:

julia> import LibGit2

julia> repo = LibGit2.GitRepo("/home/fredrik/.julia/registries/General");

julia> remoteurl = "https://github.com/JuliaRegistries/General.git";

julia> LibGit2.fetch(repo; remoteurl=remoteurl)
ERROR: GitError(Code:ERROR, Class:Net, unrecognized URL prefix)
Stacktrace:
 [1] #fetch#62(::LibGit2.FetchOptions, ::String, ::typeof(LibGit2.fetch), ::LibGit2.GitRemote, ::Array{AbstractString,1}) at /home/fredrik/julia-master/usr/share/julia/stdlib/v1.4/LibGit2/src/error.jl:101
 [2] #fetch at /home/fredrik/julia-master/usr/share/julia/stdlib/v1.4/LibGit2/src/remote.jl:297 [inlined]
 [3] #fetch#115(::String, ::String, ::Array{AbstractString,1}, ::Nothing, ::Dict{Symbol,Tuple{Ptr{Nothing},Any}}, ::typeof(LibGit2.fetch), ::LibGit2.GitRepo) at /home/fredrik/julia-master/usr/share/julia/stdlib/v1.4/LibGit2/src/LibGit2.jl:290
 [4] (::LibGit2.var"#kw##fetch")(::NamedTuple{(:remoteurl,),Tuple{String}}, ::typeof(LibGit2.fetch), ::LibGit2.GitRepo) at /home/fredrik/julia-master/usr/share/julia/stdlib/v1.4/LibGit2/src/LibGit2.jl:272
 [5] top-level scope at REPL[4]:1

Möglicherweise ohne Bezug: Ich habe heute unter macOS den gleichen Fehler bei Julia 1.0.4 gesehen. Ich habe das Problem behoben, indem ich zur Registrierung in meinem Terminal gegangen bin und git fetch . Danach ergaben Pkg-Updates keine Warnung mehr.

Möglicherweise ohne Bezug: Ich habe heute unter macOS den gleichen Fehler bei Julia 1.0.4 gesehen. Ich habe das Problem behoben, indem ich zur Registrierung in meinem Terminal gegangen bin und git fetch ausgefĂŒhrt habe. Danach ergaben Pkg-Updates keine Warnung mehr.

Das hat es fĂŒr mich nicht behoben. Außerdem habe ich es von einem anderen Computer aus versucht, konnte es aber nicht reproduzieren. Irgendwelche Ideen zum Debuggen?

Das Klonen von Grund auf schlĂ€gt ebenfalls fehl, mit derselben Fehlermeldung ĂŒber unrecognized URL prefix .

Dies passiert ĂŒbrigens auch bei den generischen BinĂ€rdateien.

Ein möglicher zukĂŒnftiger Weg, dies zu debuggen, besteht darin, es auf nur ccalls zu reduzieren und dann in libgit2 zu schauen, wo der Fehler generiert wird.

import LibGit2

const repo_url = "https://github.com/JuliaRegistries/General.git"
const repo_path = "/tmp/General"
const credentials = nothing
const callbacks = LibGit2.Callbacks()
const cred_payload = LibGit2.reset!(LibGit2.CredentialPayload(credentials))
callbacks[:credentials] = (LibGit2.credentials_cb(), cred_payload)
const lbranch = Base.cconvert(Cstring, "")
const remote_callbacks = LibGit2.RemoteCallbacks(callbacks)
const fetch_opts = LibGit2.FetchOptions(callbacks=remote_callbacks)
const clone_opts = LibGit2.CloneOptions(
            bare = Cint(false),
            checkout_branch = Cstring(C_NULL),
            fetch_opts = fetch_opts,
            remote_cb = C_NULL
        )
LibGit2.ensure_initialized()
const clone_opts_ref = Ref(clone_opts)
const repo_ptr_ptr = Ref{Ptr{Cvoid}}(C_NULL)

ccall((:git_clone, :libgit2), Cint,
            (Ptr{Ptr{Cvoid}}, Cstring, Cstring, Ref{LibGit2.CloneOptions}),
            repo_ptr_ptr, repo_url, repo_path, clone_opts_ref)

gibt -1 .

FWIW beide Beispiele arbeiten hier am neuesten Master. Kann sich noch jemand fortpflanzen?

@fredrikekre kannst du deine git config posten?

Interessanterweise habe ich die Datei .gitconfig auf reduziert

[http]
    proxy =

Ich bin mir nicht sicher, warum es dort ist, ich glaube nicht, dass ich es selbst hinzugefĂŒgt habe. Es scheint, als ob [email protected] dafĂŒr fehlschlĂ€gt, wĂ€hrend [email protected] damit

Möglicherweise im Zusammenhang mit diesem Punkt aus libgit2 0.28 Versionshinweisen:

Die HTTP-Proxy-UnterstĂŒtzung ist jetzt integriert. libcurl wird nicht mehr zur UnterstĂŒtzung verwendet
Proxies und wird als AbhÀngigkeit entfernt.

Vielleicht ein Problem gegen libgit2 einreichen? Sie können auch versuchen, die Änderungen, die ich an gitcredential.jl vorgenommen habe, unter https://github.com/JuliaLang/julia/pull/32806 zurĂŒckzusetzen , nur fĂŒr den Fall (sie sind fĂŒr bestimmte Tests erforderlich, jedoch nicht fĂŒr die meisten VorgĂ€nge).

Entfernen vom Meilenstein, da es etwas seltsam ist, ein leeres http.proxy , und wir können libgit2 in 1.3.1 oder was auch immer aktualisieren.

Ich kann etwas Ähnliches reproduzieren, aber das oben gesendete Snippet gibt -12 . Es scheint in einem kĂŒrzlich durchgefĂŒhrten Commit eingefĂŒhrt worden zu sein - Julia 1.2.0 lĂ€uft einwandfrei, aber

Dieses Problem trat auch bei mir auf, wenn http(s)_proxy als Umgebungsvariable festgelegt wurde. Es muss deaktiviert sein (nicht auf leere Zeichenfolge gesetzt), um dies zu vermeiden.

Vielen Dank fĂŒr den Vorschlag @tkluck - leider macht das Deaktivieren von http_proxy und http_proxy keinen Unterschied mehr fĂŒr mich - immer noch -12 RĂŒckkehrcode :(

Ich hatte dieses Problem gerade und möchte die Testergebnisse mit drei neu erstellten Julia-BinÀrdateien in den Zweigen Release-1.0, Release-1.3 und Master melden. (Ich konnte Release-1.2 aufgrund von Buildfehlern nicht testen.) Alle drei Tests wurden mit leeren ~/.julia . Die Umgebungsvariablen http_proxy und https_proxy sind in ~/.bashrc .

Release-1.0 (kein Fehler):

julia> VERSION
v"1.0.6-pre.0"

(v1.0) pkg> update
 Resolving package versions...
   Cloning default registries into /Users/MY_USER_ID/.julia/registries
   Cloning registry General from "https://github.com/JuliaRegistries/General.git"
    Fetching: [========================================>]  99.9 %

Release-1.3 (Fehler):

julia> VERSION
v"1.3.0-rc3.0"

(v1.3) pkg> update
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: Git repository not found at 'https://github.com/JuliaRegistries/General.git'

Master (Fehler):

julia> VERSION
v"1.4.0-DEV.298"

(v1.4) pkg> update
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: Git repository not found at 'https://github.com/JuliaRegistries/General.git'

Hoffe, dass dieses Problem bald behoben wird!

Fehlt Ihrem http_proxy ein abschließender SchrĂ€gstrich? Siehe https://github.com/libgit2/libgit2/issues/5255

@kcajf , deine Lösung funktioniert! Ich danke dir sehr!!!

FĂŒr andere besteht die Lösung hier darin, / am Ende der Proxy-Portnummer zu setzen. Verwenden Sie beispielsweise in ~/.bashrc

export http_proxy=http://your.proxy.address:8080/

Anstatt von

export http_proxy=http://your.proxy.address:8080

Seufzer. Es ist Ă€rgerlich pingelig von libgit2 , sich darum zu kĂŒmmern, ob es einen nachgestellten SchrĂ€gstrich gibt oder nicht.

Ja. Ich kann mir nicht vorstellen, dass es schwierig sein wird, es im Upstream zu reparieren, aber die Frage ist, ob es in einem angemessenen Zeitrahmen fĂŒr 1.3.0 passieren kann. Ich gehe davon aus, dass dies fĂŒr viele Julia-Benutzer in Unternehmen Probleme bereiten wird, da ich davon ausgehen wĂŒrde, dass kein SchrĂ€gstrich das hĂ€ufigste Format ist.

Wir könnten das Problem beheben, indem wir nach der Umgebungsvariablen suchen, das Fehlen eines nachgestellten SchrĂ€gstrichs erkennen und beheben. Es ist ein bisschen komisch, mit Benutzerumgebungsvariablen herumzuspielen, die jedoch nicht einmal Julia-spezifisch sind. Das fĂŒhlt sich irgendwie gefĂ€hrlich an, auch wenn es Ärger spart ...

Es kann auch von ~ / .gitconfig und einigen anderen Stellen abgerufen werden, sodass es keine Gesamtlösung gibt

libgit2-Entwickler haben das noch nicht kommentiert, vielleicht ist das nur ein Versehen. Wenn nicht, können wir versuchen, sie davon zu ĂŒberzeugen, dies zu Ă€ndern ...

Sie haben seitdem kommentiert und es scheint, dass dies in der nÀchsten libgit2-Version behoben wird.

Mit 1.3, Upgrade von 1.1, bekomme ich

(v1.3) pkg> up
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
┌ Warning: Some registries failed to update:
│     — /home/levitta/.julia/registries/General — failed to fetch from repo
└ @ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:1199
 Resolving package versions...

Nach rm -rf .julia bekomme ich

(v1.3) pkg> up
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: Git repository not found at 'https://github.com/JuliaRegistries/General.git'

Ich stehe hinter einem UniversitĂ€ts-Proxy und meine Versionen http_proxy, https_proxy und ihre Caps sind alle korrekt eingestellt (mit einem abschließenden SchrĂ€gstrich).

edit: Ich sollte erwÀhnen, dass das in 1.1 und 1.2 funktioniert hat
edit2: oh, und das obige Skript gibt -12 zurĂŒck.

Informationen zum Extrahieren der eigentlichen Fehlermeldung finden Sie im Code hier: https://github.com/libgit2/libgit2/issues/5255#issuecomment -540705608

Die Proxy-URLs können von den env-Variablen bezogen werden, können aber auch von anderen Orten stammen, z. B. ~/.gitconfig . Vielleicht werden sie woanders eingestellt? Es wĂ€re schön, wenn wir libgit2 dazu bringen könnten, die endgĂŒltige Proxy-URL auszudrucken, die es erkennt.

Ich befĂŒrchte, dass dieses Problem den Benutzern von Unternehmen und UniversitĂ€ten große Probleme bereiten wird. Hoffentlich veröffentlicht libgit2 bald ein Update, das in einer kleineren Julia-Version enthalten sein kann.

Ooooh, sehr guter Fang, es wurde tatsÀchlich in .gitconfig , was Vorrang vor den env-Variablen hat. Damit funktioniert es!

Trailing Slash ist die Lösung, aber Mann, der wirklich dumm ist .....

Zustimmen. Es ist ein libgit2-Fehler, kein Julia-Fehler. Sollte in einer neueren libgit2 behoben werden.

Immer noch ein Problem in Julia 1.3.1

@staticfloat : haben wir libgit2 nicht aktualisiert?

Das letzte Mal, als wir libgit2 neu erstellt haben (z. B. mit neuen BB-Shards neu erstellt), war https://github.com/JuliaLang/julia/commit/e44652ab03ce384444bddfaca270c04b42d968a8

Das letzte Mal, als wir die libgit2-Version aktualisiert haben, war https://github.com/JuliaLang/julia/commit/d0b5d9850fb7b51c7831d3897ad46e4d3478d322

Wenn wir eine bestimmte Version benötigen, die einen Fix enthÀlt, lassen Sie es mich wissen und ich werde neue Versionen erstellen.

0.28.4 hat eine Reihe von Sicherheitskorrekturen, sollte also wahrscheinlich ein Upgrade durchgefĂŒhrt werden?

0.24.4 scheint https://github.com/libgit2/libgit2/commit/c6ab183e9c960b74471a7d106a4deb0c8b28a8ec nicht zu enthalten, wodurch dieses Problem angeblich behoben wurde (https://github.com/libgit2/libgit2/issue5/issue5/issue8) ).

Ich denke also, die Frage ist, ob wir libgit2 patchen wollen oder nur warten, bis sie eine Veröffentlichung machen, die dieses Update enthÀlt.

Ich hatte keinen Proxy und hatte dieses Problem. Ich habe es behoben, indem ich libgit2 von 0.99.0 auf 0.27.8 herabgestuft habe

Ich hatte keinen Proxy und hatte dieses Problem. Ich habe es behoben, indem ich libgit2 von 0.99.0 auf 0.27.8 herabgestuft habe

Kann bestÀtigen. Ich hatte auch dieses Problem, ohne dass ein Proxy eingerichtet war (zumindest nicht in meinem .gitconfig ). Ich habe es genauso behoben - indem ich libgit2 von 0.99.0 auf 0.27.8 herabgestuft habe.

Ich hatte keinen Proxy und hatte dieses Problem. Ich habe es behoben, indem ich libgit2 von 0.99.0 auf 0.27.8 herabgestuft habe

Kann bestÀtigen. Ich hatte auch dieses Problem, ohne dass ein Proxy eingerichtet war (zumindest nicht in meinem .gitconfig ). Ich habe es genauso behoben - indem ich libgit2 von 0.99.0 auf 0.27.8 herabgestuft habe.

Ich habe dies auch unter Arch Linux - libgit2 ist 1: 0.99.0-2

Ein Downgrade von libgit2 ist keine Option. Ich brauche entweder etwas, das ich in meine .gitconfig einfĂŒgen kann, damit es verschwindet, ohne etwas anderes zu beschĂ€digen, oder eine Korrektur in Julia.

$ julia --version
julia version 1.3.1

...

julia> using Pkg

julia> Pkg.add("IJulia")
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
Stacktrace:
 [1] top-level scope at REPL[2]:1
caused by [exception 1]
GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
Stacktrace:
 [1] top-level scope at REPL[2]:1

Sie können die bald erscheinende Julia 1.4 mit JULIA_PKG_SERVER=pkg.julialang.org und libgit2 wird fĂŒr die Installation registrierter Pakete ĂŒberhaupt nicht verwendet.

Ich stimme diesem Fehler zu. Ich verwende manjaro .. libgit2 wurde auf 0.99 aktualisiert und meine julia-Umgebung (1.3.1) ist gerade kaputt .... Ich habe julia auf einem neuen Computer installiert. Es ist auch kaputt. Ich habe festgestellt, dass der Fehler nur die Aktualisierung der Registrierung von Github betrifft. Pakete können jedoch weiterhin installiert werden, wenn die Registrierung manuell unter ~ / .julia / registries / General geklont wird. Ich gehe davon aus, dass die Aktualisierung auch manuell durchgefĂŒhrt werden kann.

Wann wird das passieren?

Sie können die bald erscheinende Julia 1.4 mit JULIA_PKG_SERVER=pkg.julialang.org und libgit2 wird fĂŒr die Installation registrierter Pakete ĂŒberhaupt nicht verwendet.

Sie können dies jetzt tun, wenn Sie einen Release Candidate oder JuliaPro 1.3 verwenden .

Ich habe libgit2 auf freebsd auf 0.99 aktualisiert und habe das gleiche Problem. Die Problemumgehung fĂŒr pkg besteht darin, ~/.julia/registries/General manuell zu aktualisieren.

Bitte melden Sie sich stattdessen beim libgit2-Repo (es sei denn, es handelt sich um ein Duplikat von https://github.com/libgit2/libgit2/issues/5220, in dem Sie dieses Problem möglicherweise beheben können.)

Die in den Kommentaren gemeldeten Probleme mit LibGit2 0.99.0 haben nichts mit dem ursprĂŒnglichen Fehlerbericht zu tun. Siehe Problem Nr. 35043 und PR Nr. 35232 fĂŒr eine vorgeschlagene Lösung.

Sie können die bald erscheinende Julia 1.4 mit JULIA_PKG_SERVER=pkg.julialang.org und libgit2 wird fĂŒr die Installation registrierter Pakete ĂŒberhaupt nicht verwendet.

Diese Problemumgehung funktioniert leider nicht, ich verwende Julia 1.4.

@getzze Wie export die Umgebungsvariable JULIA_PKG_SERVER in Ihrer Shell zu verwenden, bevor Sie Julia in einer separaten Shell-Eingabeaufforderung aufgerufen haben?

Die Problemumgehung funktioniert unter _Arch Linux_ mit _Julia_ 1.4.0:

[tamer<strong i="10">@zinc</strong> ~]$ pacman -Q libgit2 julia
libgit2 1:0.99.0-2
julia 2:1.4.0-1

[tamer<strong i="11">@zinc</strong> ~]$ rm -r ~/.julia/registries/General/
[tamer<strong i="14">@zinc</strong> ~]$ julia -e 'using Pkg; Pkg.update()'
    Cloning default registries into `~/.julia`
    Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
Stacktrace:
 [1] up(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:206
 [2] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:201 [inlined]
 [3] #up#47 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [4] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [5] #up#44 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193 [inlined]
 [6] up() at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193
 [7] top-level scope at none:1
caused by [exception 1]
GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
Stacktrace:
 [1] up(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:206
 [2] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:201 [inlined]
 [3] #up#47 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [4] up at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:196 [inlined]
 [5] #up#44 at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193 [inlined]
 [6] up() at /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:193
 [7] top-level scope at none:1
[tamer<strong i="17">@zinc</strong> ~]$ JULIA_PKG_SERVER=pkg.julialang.org julia -e 'using Pkg; Pkg.update()'
    Cloning default registries into `~/.julia`
######################################################################## 100.0%
      Added registry `General` to `~/.julia/registries/General`
   Updating registry at `~/.julia/registries/General`
   Updating `~/.julia/environments/v1.4/Project.toml`
 [no changes]
   Updating `~/.julia/environments/v1.4/Manifest.toml`
 [no changes]

Wenn Sie die Registrierung bereits als Git-Klon haben, wird sie weiterhin als Git-Klon verwendet, anstatt den Pkg-Server zu verwenden. Deshalb mĂŒssen Sie sie löschen.

Danke, ich habe nicht verstanden, dass Sie die Register vorher entfernen mĂŒssen.
Ich verwende jedoch die Entwicklungsversion einiger Pakete, sodass ich von git abrufen muss. Wenn ein Paket nicht abgerufen werden kann, schlÀgt das gesamte Update fehl.

AusfĂŒhren von Julia 1.4.0. Verwenden Sie keinen Proxy. Windows 10 Pkg.add funktioniert, unter Linux Manjaro fĂŒr dasselbe Paket wird der obige Fehler ausgegeben :(

@ Tuhtah- Lösung funktioniert jedoch

Hallo, ich bin auf Manjaro Linux. In meinem Fall hat das geholfen

mkdir -p /home/terabyte/.julia/registries/General && git clone https://github.com/JuliaRegistries/General.git ~/.julia/registries/General

Dann in Julia

julia> using Pkg

julia> Pkg.add("IJulia")

Es ist nicht erforderlich, einen Ordner zu löschen. Mit...

X<strong i="6">@alienware</strong>: ~/ pacman -Q libgit2 julia
libgit2 1:1.0.0-1
julia 2:1.4.0-1

Ich bekomme

X<strong i="10">@alienware</strong>: ~/ julia -e 'using Pkg; Pkg.update()'
   Updating registry at '/usr/applications/academia/julia/registries/General'
   Updating git-repo 'https://github.com/JuliaRegistries/General.git'
┌ Warning: Some registries failed to update:
│     — /usr/applications/academia/julia/registries/General — failed to fetch from repo
└ @ Pkg.Types /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/Types.jl:1122
   Updating '/usr/applications/academia/julia/environments/v1.4/Project.toml'
 [no changes]
   Updating '/usr/applications/academia/julia/environments/v1.4/Manifest.toml'
 [no changes]

Ich habe ursprĂŒnglich die @gwatcha-Problemumgehung angewendet, jedoch mit

X<strong i="15">@alienware</strong>: General/ pwd
/usr/applications/academia/julia/registries/General
                              --   --   (master î € origin)     
X<strong i="16">@alienware</strong>: General/ git pull

Macht den gleichen Job. Als ich zurĂŒck zu Julia ging und versuchte, die Pakete zu aktualisieren ... haben sie aktualisiert:

(@v1.4) pkg> update
   Updating registry at `/usr/applications/academia/julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
┌ Warning: Some registries failed to update:
│     — /usr/applications/academia/julia/registries/General — failed to fetch from repo
└ @ Pkg.Types /build/julia/src/julia-1.4.0/usr/share/julia/stdlib/v1.4/Pkg/src/Types.jl:1122
  Installed RecipesPipeline ─ v0.1.2
  Installed Plots ─────────── v1.0.8
   Updating `/usr/applications/academia/julia/environments/v1.4/Project.toml`
  [91a5bcdd] ↑ Plots v1.0.4 ⇒ v1.0.8
   Updating `/usr/applications/academia/julia/environments/v1.4/Manifest.toml`
  [91a5bcdd] ↑ Plots v1.0.4 ⇒ v1.0.8
  [01d81517] + RecipesPipeline v0.1.2
   Building Plots → `/usr/applications/academia/julia/packages/Plots/7U0ob/deps/build.log`

All dies, weil ich Plots 1.0 nicht von JULIA_PKG_SERVER=pkg.julialang.org . Wenn Sie also die neueste Version der Pakete benötigen, benötigen Sie die Aktualisierung der Registrierungen von Hand, bis Julia und libgit2 wieder miteinander sprechen.

Bearbeiten: anscheinend ist es jetzt in pkg.julialang.org (nur bis v0.28, als ich es versuchte). Es ist einen Versuch wert, wenn Sie nicht mit Ordnern herumspielen und Pakete herabstufen möchten.

Git Problem hier gleich

ERROR: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)


env: Arch, julia1.4.0, libgit2 1.0.0

Wenn Sie mit Julia 1.4 arbeiten, können Sie export JULIA_PKG_SERVER=pkg.julialang.org ausfĂŒhren und mĂŒssen git nicht fĂŒr Pkg-Operationen verwenden. Sie mĂŒssen zuerst rm -rf ~/.julia/registries/General ausfĂŒhren, um die allgemeine Registrierung auf die Verwendung des Pkg-Protokolls anstelle von git zu aktualisieren.

Dieses Problem sollte Arch gemeldet werden. Sie benötigen einen Patch wie https://github.com/JuliaLang/julia/pull/35233, wenn sie libgit2 1.0 verwenden.

FĂŒr die Aufzeichnung wurde ich erneut von diesem Versuch getroffen, Julia 1.5 zum ersten Mal bei der Arbeit erneut zu versuchen, wobei der auf dem Proxy benötigte SchrĂ€gstrich in ~/.gitconfig nachgestellt wurde.

Jemand, der sich darum kĂŒmmert, muss das libgit2-Projekt belĂ€stigen und sicherstellen, dass er tatsĂ€chlich eine Version erstellt, die eine Fehlerbehebung dafĂŒr enthĂ€lt. Es funktioniert nicht, darauf zu warten, dass sie es selbst reparieren.

Bei mir ist dieser Fehler aufgetreten, weil ich einen socks5-Proxy verwende (.gitconfig und git clone funktionieren mannully mit socks5-Proxy). Wechsel zu http Proxy behoben.

21. Januar

Ich denke also, die Frage ist, ob wir libgit2 patchen wollen oder nur warten, bis sie eine Veröffentlichung machen, die dieses Update enthÀlt.

21. August

Es funktioniert nicht, darauf zu warten, dass sie es selbst reparieren.

Also mit dem ersteren gehen? (Patch libgit2) Möglicherweise können Sie den Patch sogar dazu beitragen.

Es ist ein wenig unfair, Benutzer zu bitten, Probleme einzureichen / sich mit vorgelagerten Bibliotheken zu befassen, IMO (es sind schließlich die Benutzer, die sich am Ende darum kĂŒmmern werden).

Fair oder nicht, ich stoße nicht auf dieses Problem und habe keine Lust, in libgit2 herumzuspielen, um dies zu beheben. Wenn Sie dafĂŒr bezahlen möchten, dass jemand daran arbeitet, wenden Sie sich an [email protected], und wir können einen Beratungsvertrag ausarbeiten. Sie können auch JuliaTeam kaufen, und dann tritt dieses Problem nicht auf, da Sie eine Verbindung zu einem Paketserver herstellen können, der sich innerhalb Ihrer Firewall befindet, sodass Sie ĂŒberhaupt keinen Proxy verwenden mĂŒssen (es gibt auch viele andere nette Vorteile ). Zumindest könnten Sie auf https://github.com/libgit2/libgit2/issues/5220 statt hier etwas LĂ€rm machen. @fredrikekre ist buchstĂ€blich die einzige Person, die dort gepostet hat. Stattdessen nervt uns jeder und ich denke, wir werden die libgit2-Entwickler fĂŒr sie belĂ€stigen? Wenn jeder, der hier gepostet hat, auch eine Beschwerde ĂŒber das libgit2-Repo gepostet hat, hat er diese möglicherweise inzwischen behoben.

Ich habe jetzt alle angerufen , die hier und in verwandten Problemen gepostet haben, in denen dieser libgit2-Fehler die zugrunde liegende Ursache fĂŒr ihr Problem in Bezug auf das relevante libgit2-Problem war. Bitte melden Sie sich mit Ihren diesbezĂŒglichen Fehlerberichten an.

Vielleicht wĂŒrde https://github.com/JuliaLang/julia/pull/35233 helfen? Ich habe nicht in die Patchnotizen geschaut.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

ararslan picture ararslan  Â·  3Kommentare

i-apellaniz picture i-apellaniz  Â·  3Kommentare

yurivish picture yurivish  Â·  3Kommentare

omus picture omus  Â·  3Kommentare

musm picture musm  Â·  3Kommentare