Julia: LibGit2 no puede clonar o recuperar en Julia 1.3 / master

Creado en 29 ago. 2019  ·  66Comentarios  ·  Fuente: JuliaLang/julia

Abriendo este problema aquí porque estoy bastante seguro de que Pkg no ha cambiado nada, ¿tal vez esto esté relacionado con la actualización de libgit2 (# 32806)?

$ 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

Comentario más útil

@getzze ¿Cómo export la variable de entorno JULIA_PKG_SERVER en su shell antes de invocar a Julia en un indicador de shell separado?

La solución alternativa funciona en _Arch Linux_ usando _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]

Todos 66 comentarios

Funciona para mí en una mac.

Ok, estoy en Linux. Revertir # 32806 me soluciona este problema.

Reproductor sin ningún código de paquete:

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

Posiblemente no relacionado: vi el mismo error en Julia 1.0.4 hoy en macOS. Lo arreglé yendo al registro en mi terminal y ejecutando git fetch . Después de eso, las actualizaciones de Pkg dejaron de producir la advertencia.

Posiblemente no relacionado: vi el mismo error en Julia 1.0.4 hoy en macOS. Lo arreglé yendo al registro en mi terminal y ejecutando git fetch. Después de eso, las actualizaciones de Pkg dejaron de producir la advertencia.

Eso no me solucionó. Además, probé desde una máquina diferente pero no pude reproducir. ¿Alguna idea sobre cómo depurar?

La clonación desde cero también falla, con el mismo mensaje de error sobre unrecognized URL prefix .

Esto también sucede con los binarios genéricos por cierto.

Una posible forma futura de depurar esto es reducirlo a solo ccalls y luego buscar en libgit2 donde se genera el error.

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)

devuelve -1 .

FWIW ambos ejemplos funcionan aquí en el último maestro. ¿Alguien más puede reproducirse?

@fredrikekre, ¿puedes publicar tu configuración de git?

Interesante, reduje el archivo .gitconfig a

[http]
    proxy =

No estoy seguro de por qué está allí, no creo que lo haya agregado yo mismo. Parece que [email protected] falla para esto, mientras que [email protected] lo maneja (al igual que git regular)

Tal vez relacionado con este punto de las notas de la versión libgit2 0.28:

El soporte de proxy HTTP ahora está incorporado; libcurl ya no se usa para soportar
proxies y se elimina como una dependencia.

¿Quizás presentar un problema contra libgit2? También puede intentar revertir los cambios que hice en gitcredential.jl en https://github.com/JuliaLang/julia/pull/32806 , por si acaso (son necesarios para algunas pruebas específicas, pero no para la mayoría de las operaciones).

Eliminando de milestone ya que es un poco extraño tener un http.proxy vacío, y podemos actualizar libgit2 en 1.3.1 o lo que sea.

Puedo reproducir algo similar, pero el fragmento que envió anteriormente devuelve -12 . Parece que se ha introducido en una confirmación reciente: julia 1.2.0 funciona bien pero 1.3.0-rc1 y master / latest nightlies (47f2800747) fallan.

Este problema también apareció para mí con http(s)_proxy establecido como una variable de entorno. Debe desarmarse (no configurarse como cadena vacía) para evitarlo.

Gracias por la sugerencia @tkluck ; desafortunadamente, deshabilitar http_proxy y http_proxy no hace una diferencia más para mí, todavía obtengo -12 código de retorno :(

Tuve este problema en este momento y me gustaría informar los resultados de la prueba con tres binarios de Julia recién construidos en la versión 1.0, la versión 1.3 y las ramas maestras. (No pude probar la versión 1.2 debido a errores de compilación). Las tres pruebas se realizaron con ~/.julia vacíos. Las variables de entorno http_proxy y https_proxy se definen en ~/.bashrc .

release-1.0 (sin error):

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 (error):

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'

maestro (error):

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'

¡Espero que este problema se resuelva pronto!

¿Falta una barra diagonal en su http_proxy ? Ver https://github.com/libgit2/libgit2/issues/5255

@kcajf , ¡tu solución funciona! ¡¡¡Muchas gracias!!!

Para otros, la solución aquí es poner / al final del número de puerto del proxy. Por ejemplo, en ~/.bashrc , use

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

en vez de

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

Suspiro. Es molesto que libgit2 preocupe si hay una barra al final o no.

Si. No puedo imaginar que sea difícil arreglarlo en la fase inicial, pero la pregunta es si puede suceder en un plazo razonable para 1.3.0. Espero que esto cause problemas a muchos usuarios corporativos de Julia, ya que supongo que no-trailing-slash es el formato más común.

Podríamos arreglarlo por nuestra parte buscando la variable de entorno y detectando la falta de barra diagonal y arreglándolo. Sin embargo, es un poco extraño jugar con variables de entorno de usuario que ni siquiera son específicas de Julia. Eso se siente un poco peligroso incluso si evita algunos problemas ...

También se puede obtener de ~ / .gitconfig y algunos otros lugares, por lo que no hay una solución general

Los desarrolladores de libgit2 aún no han comentado sobre eso, tal vez sea solo un descuido. Si no, podemos intentar convencerlos de que cambien esto ...

Han comentado desde entonces y parece que esto se solucionará en la próxima versión de libgit2.

Con 1.3, actualizando desde 1.1, obtengo

(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...

Después de rm -rf .julia , obtengo

(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'

Estoy detrás de un proxy de la universidad, y mi http_proxy, https_proxy y sus versiones en mayúsculas están configuradas correctamente (con una barra inclinada).

editar: Debo mencionar que funcionó en 1.1 y 1.2
edit2: oh, y el script anterior devuelve -12.

consulte el código aquí para saber cómo extraer el mensaje de error real: https://github.com/libgit2/libgit2/issues/5255#issuecomment -540705608

las URL del proxy se pueden obtener de las variables de entorno, pero también pueden provenir de otros lugares, por ejemplo, ~/.gitconfig . ¿Quizás se establezcan en otro lugar? Sería bueno si pudiéramos hacer que libgit2 imprima la URL del proxy final que está detectando.

Me temo que este problema va a causar muchos problemas a los usuarios corporativos y universitarios. Con suerte, libgit2 lanzará pronto una actualización que pueda incluirse en una versión menor de julia.

Ooooh, muy buena captura, de hecho se estableció en .gitconfig , que tiene prioridad sobre las variables env. ¡Con eso, funciona!

La barra diagonal es la solución, pero hombre, eso es realmente estúpido ...

De acuerdo. Es un error de libgit2, no un error de Julia. Debería corregirse en un libgit2.

Sigue siendo un problema en Julia 1.3.1

@staticfloat : ¿no actualizamos libgit2?

La última vez que reconstruimos libgit2 (por ejemplo, reconstruimos con nuevos fragmentos BB) fue https://github.com/JuliaLang/julia/commit/e44652ab03ce384444bddfaca270c04b42d968a8

La última vez que actualizamos la versión libgit2 fue https://github.com/JuliaLang/julia/commit/d0b5d9850fb7b51c7831d3897ad46e4d3478d322

Si necesitamos una versión específica que contenga una solución, avíseme y crearé nuevas versiones.

0.28.4 tiene un montón de correcciones de seguridad, por lo que probablemente debería actualizarse.

0.24.4 no parece incluir https://github.com/libgit2/libgit2/commit/c6ab183e9c960b74471a7d106a4deb0c8b28a8ec, aunque supuestamente solucionó este problema (https://github.com/libgit2/libgit2/issues/5255#issue326 ).

Así que supongo que la pregunta es si queremos parchear libgit2 o simplemente esperar hasta que hagan un lanzamiento que incluya esta corrección.

No tenía proxy y tuve este problema, lo solucioné bajando libgit2 de 0.99.0 a 0.27.8

No tenía proxy y tuve este problema, lo solucioné bajando libgit2 de 0.99.0 a 0.27.8

Puede confirmar. También tuve este problema, sin ningún proxy configurado (al menos no en mi .gitconfig ). Lo arreglé exactamente de la misma manera: rebajando libgit2 de 0.99.0 a 0.27.8 .

No tenía proxy y tuve este problema, lo solucioné bajando libgit2 de 0.99.0 a 0.27.8

Puede confirmar. También tuve este problema, sin ningún proxy configurado (al menos no en mi .gitconfig ). Lo arreglé exactamente de la misma manera: rebajando libgit2 de 0.99.0 a 0.27.8 .

También tengo esto en Arch Linux: libgit2 es 1: 0.99.0-2

La degradación de libgit2 no es una opción. O necesito algo para poner en mi .gitconfig que hará que esto desaparezca sin romper nada más, o una solución en 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

Puede usar Julia 1.4 que se lanzará próximamente con JULIA_PKG_SERVER=pkg.julialang.org y no usará libgit2 en absoluto para instalar paquetes registrados.

Estoy de acuerdo con este error. Estoy usando manjaro ... libgit2 se actualizó a 0.99 y mi entorno julia (1.3.1) está roto en este momento ... He instalado julia en una nueva máquina. También está roto. Noté que el error solo afecta la actualización del registro desde github. Pero los paquetes aún se pueden instalar si el registro se clona manualmente en ~ / .julia / registros / General ... Supongo que la actualización también se puede manejar manualmente ...

¿Cuándo sucederá esto?

Puede usar Julia 1.4 que se lanzará próximamente con JULIA_PKG_SERVER=pkg.julialang.org y no usará libgit2 en absoluto para instalar paquetes registrados.

Puede hacerlo ahora mismo si utiliza una versión candidata o JuliaPro 1.3 .

He actualizado libgit2 a 0,99 en freebsd y tengo el mismo problema. La solución alternativa para pkg es actualizar manualmente ~/.julia/registries/General .

En su lugar, informe al repositorio libgit2 (a menos que sea un duplicado de https://github.com/libgit2/libgit2/issues/5220, en el que tal vez pueda solucionar ese problema).

Los problemas con LibGit2 0.99.0 informados en los comentarios no están relacionados con el informe de error original; en su lugar, consulte el número 35043 y el PR # 35232 para obtener una solución sugerida.

Puede usar Julia 1.4 que se lanzará próximamente con JULIA_PKG_SERVER=pkg.julialang.org y no usará libgit2 en absoluto para instalar paquetes registrados.

Desafortunadamente, esta solución no funciona, estoy usando julia 1.4.

@getzze ¿Cómo export la variable de entorno JULIA_PKG_SERVER en su shell antes de invocar a Julia en un indicador de shell separado?

La solución alternativa funciona en _Arch Linux_ usando _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]

Si ya tiene el registro como un clon de git, seguirá usándolo como un clon de git en lugar de usar el servidor Pkg, por eso tiene que eliminarlo.

Gracias, no entendí que debías eliminar los registros antes.
Sin embargo, estoy usando la versión de desarrollo de algunos paquetes, por lo que necesito buscar desde git y un paquete que no se obtiene hace que toda la actualización falle.

Ejecutando Julia 1.4.0. No usar ningún proxy. Windows 10 Pkg.add funciona, en Linux Manjaro para el mismo paquete arroja el error anterior :(

Aunque la solución

Hola, estoy en manjaro Linux. En mi caso, esto ayudó

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

Luego en julia

julia> using Pkg

julia> Pkg.add("IJulia")

No es necesario eliminar ninguna carpeta. Con...

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

yo obtengo

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]

Originalmente apliqué la solución

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

Hace el mismo trabajo. Cuando volví a julia e intenté actualizar los paquetes ... se actualizaron:

(@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`

Todo esto porque no pude obtener Plots 1.0 desde JULIA_PKG_SERVER=pkg.julialang.org . Entonces, si te apetece / necesitas la última versión de los paquetes, actualizar los registros manualmente puede ser suficiente hasta que julia y libgit2 se hablen de nuevo.

Editar: aparentemente ahora está en pkg.julialang.org (solo hasta v0.28 cuando lo intenté). Vale la pena intentarlo si no quiere meterse con carpetas y degradar paquetes.

git problema mismo aquí

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

Si está en Julia 1.4, puede hacer export JULIA_PKG_SERVER=pkg.julialang.org y no necesitará usar git para las operaciones Pkg. Sin embargo, deberá hacer rm -rf ~/.julia/registries/General primero para actualizar el registro general para usar el protocolo Pkg en lugar de git.

Ese problema debe informarse a Arch, necesitan un parche como https://github.com/JuliaLang/julia/pull/35233 si usan libgit2 1.0.

Para que conste, esto me golpeó nuevamente al intentar Julia 1.5 por primera vez en el trabajo nuevamente, se necesita una barra diagonal en el proxy en ~/.gitconfig .

Alguien a quien le importe esto tendrá que acosar al proyecto libgit2 y asegurarse de que realmente haga una versión que incluya una corrección de errores para esto. Claramente, esperar a que lo arreglen por sí mismos no está funcionando.

Para mí, este error ocurrió porque estoy usando un proxy socks5 (.gitconfig, y git clone mannully funciona con el proxy socks5). Cambiar a proxy http lo solucionó.

21 de enero

Así que supongo que la pregunta es si queremos parchear libgit2 o simplemente esperar hasta que hagan un lanzamiento que incluya esta corrección.

21 de agosto

Claramente, esperar a que lo arreglen por sí mismos no está funcionando.

Entonces, ¿ir con el primero? (parche libgit2) Incluso podría contribuir con el parche.

Pedirles a los usuarios que presenten problemas / que se ocupen de las bibliotecas ascendentes es un poco injusto, en mi opinión (después de todo, son los usuarios los que se preocuparán)

Justo o no, no encuentro este problema y no tengo ganas de perder el tiempo en libgit2 para solucionarlo. Si desea pagarle a alguien para que trabaje en esto, comuníquese con [email protected] y podemos resolver un contrato de consultoría. También puede comprar JuliaTeam y luego no tendrá este problema porque puede conectarse a un servidor de paquetes que está dentro de su firewall, por lo que no necesita pasar por un proxy (también hay muchos otros beneficios interesantes ). Como mínimo, podría hacer algo de ruido en https://github.com/libgit2/libgit2/issues/5220 en lugar de aquí. @fredrikekre es literalmente la única persona que ha publicado allí. En su lugar, todos nos molestan y supongo que esperan que acosemos a los desarrolladores de libgit2 por ellos. Si todos los que han publicado aquí también publicaron una queja sobre el repositorio libgit2, es posible que ya lo hayan solucionado.

Ahora he hecho ping a todos los que han publicado aquí y en problemas relacionados donde este error libgit2 era la causa subyacente de su problema en el problema libgit2 relevante. Por favor, intervenga allí con sus informes de errores con respecto a esto.

¿Quizás https://github.com/JuliaLang/julia/pull/35233 ayudaría? No he mirado las notas del parche.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

tkoolen picture tkoolen  ·  3Comentarios

omus picture omus  ·  3Comentarios

sbromberger picture sbromberger  ·  3Comentarios

TotalVerb picture TotalVerb  ·  3Comentarios

iamed2 picture iamed2  ·  3Comentarios