Julia: LibGit2 tidak dapat mengkloning atau mengambil di Julia 1.3 / master

Dibuat pada 29 Agu 2019  ·  66Komentar  ·  Sumber: JuliaLang/julia

Membuka masalah ini di sini karena saya cukup yakin Pkg tidak mengubah apa pun, mungkin ini terkait dengan peningkatan 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

Komentar yang paling membantu

@getzze Bagaimana Anda memanggil julia? Mungkin Anda lupa export variabel lingkungan JULIA_PKG_SERVER di shell Anda sebelum memanggil Julia di prompt shell terpisah?

Solusi ini bekerja di _Arch Linux_ menggunakan _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]

Semua 66 komentar

Bekerja untuk saya di Mac.

Oke, saya menggunakan Linux. Mengembalikan # 32806 memperbaiki masalah ini untuk saya.

Reproduser tanpa kode Pkg:

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

Mungkin tidak terkait: Saya melihat kesalahan yang sama di Julia 1.0.4 hari ini di macOS. Saya memperbaikinya dengan membuka registri di terminal saya dan menjalankan git fetch . Setelah itu pembaruan Pkg berhenti menghasilkan peringatan.

Mungkin tidak terkait: Saya melihat kesalahan yang sama di Julia 1.0.4 hari ini di macOS. Saya memperbaikinya dengan membuka registri di terminal saya dan menjalankan git fetch. Setelah itu pembaruan Pkg berhenti menghasilkan peringatan.

Itu tidak memperbaikinya untuk saya. Juga, saya mencoba dari mesin lain tetapi tidak dapat mereproduksi. Ada ide tentang cara men-debug?

Kloning dari awal juga gagal, dengan pesan kesalahan yang sama tentang unrecognized URL prefix .

Ini juga terjadi dengan binari generik btw.

Kemungkinan cara masa depan untuk men-debug ini adalah dengan menguranginya menjadi hanya panggilan lalu melihat ke libgit2 tempat kesalahan dihasilkan.

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)

mengembalikan -1 .

FWIW kedua contoh bekerja di sini pada master terbaru. Adakah yang bisa mereproduksi?

@fredrikekre dapatkah Anda memposting konfigurasi git Anda?

Menarik, saya mengurangi file .gitconfig menjadi

[http]
    proxy =

Saya tidak yakin mengapa itu ada di sana, saya rasa saya tidak menambahkannya sendiri. Sepertinya [email protected] gagal untuk ini, sementara [email protected] menanganinya (seperti halnya git biasa)

Mungkin terkait dengan hal ini dari catatan rilis libgit2 0.28:

Dukungan proxy HTTP sekarang sudah ada di dalamnya; libcurl tidak lagi digunakan untuk mendukung
proxy dan dihapus sebagai dependensi.

Mungkin mengajukan masalah terhadap libgit2? Anda juga dapat mencoba mengembalikan perubahan yang saya buat pada gitcredential.jl di https://github.com/JuliaLang/julia/pull/32806 , untuk berjaga-jaga (diperlukan untuk beberapa pengujian tertentu, tetapi tidak untuk sebagian besar operasi).

Menghapus milestone karena agak aneh memiliki http.proxy kosong, dan kita dapat meningkatkan libgit2 di 1.3.1 atau apa pun.

Saya dapat mereproduksi sesuatu yang serupa, tetapi potongan yang Anda kirim di atas mengembalikan -12 . Tampaknya telah diperkenalkan dalam commit baru-baru ini - julia 1.2.0 berjalan dengan baik tetapi 1.3.0-rc1 dan master / nightlies terbaru (47f2800747) gagal.

Masalah ini juga muncul untuk saya dengan http(s)_proxy ditetapkan sebagai variabel lingkungan. Ini harus tidak disetel (tidak disetel ke string kosong) untuk menghindarinya.

Terima kasih atas saran @tkluck - sayangnya -12 kode pengembalian :(

Saya baru saja mengalami masalah ini dan ingin melaporkan hasil pengujian dengan tiga binari Julia yang baru dibuat di rilis-1.0, rilis-1.3, dan cabang master. (Saya tidak dapat menguji rilis-1.2 karena kesalahan pembuatan.) Ketiga pengujian dilakukan dengan ~/.julia kosong. Variabel lingkungan http_proxy dan https_proxy didefinisikan dalam ~/.bashrc .

release-1.0 (tidak ada kesalahan):

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

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

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'

Semoga masalah ini segera teratasi!

Apakah http_proxy tidak memiliki garis miring? Lihat https://github.com/libgit2/libgit2/issues/5255

@kcajf , solusi Anda berhasil! Terima kasih banyak!!!

Bagi yang lain, solusi di sini adalah dengan meletakkan / di akhir nomor port proxy. Misalnya, dalam ~/.bashrc , gunakan

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

dari pada

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

Mendesah. Sangat merepotkan libgit2 untuk peduli apakah ada garis miring atau tidak.

Ya. Saya tidak dapat membayangkan akan sulit untuk memperbaikinya di bagian hulu, tetapi pertanyaannya adalah apakah ini dapat terjadi dalam jangka waktu yang wajar untuk 1.3.0. Saya berharap ini akan menimbulkan masalah bagi banyak pengguna perusahaan Julia, karena saya kira bahwa tanpa-jejak-garis miring adalah format yang lebih umum.

Kami dapat memperbaikinya di pihak kami dengan mencari variabel lingkungan dan mendeteksi kurangnya garis miring dan memperbaikinya. Agak aneh mengotak-atik variabel lingkungan pengguna yang bahkan tidak spesifik untuk Julia. Itu terasa agak berbahaya bahkan jika itu menyelamatkan beberapa masalah ...

Itu juga dapat diambil dari ~ / .gitconfig dan beberapa tempat lain, jadi tidak ada solusi keseluruhan

libgit2 devs belum berkomentar tentang itu, mungkin itu hanya kekeliruan. Jika tidak, kami dapat mencoba meyakinkan mereka untuk mengubah ini ...

Mereka telah berkomentar sejak itu dan sepertinya ini akan diperbaiki pada rilis libgit2 berikutnya.

Dengan 1.3, mengupgrade dari 1.1, saya mengerti

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

Setelah rm -rf .julia , saya mengerti

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

Saya berada di belakang proxy universitas, dan http_proxy, https_proxy saya, serta versi topi mereka semuanya disetel dengan benar (dengan garis miring).

edit: Saya harus menyebutkan bahwa bekerja di 1.1 dan 1.2
edit2: oh, dan skrip di atas mengembalikan -12.

lihat kode di sini untuk mengetahui cara mengekstrak pesan kesalahan yang sebenarnya: https://github.com/libgit2/libgit2/issues/5255#issuecomment -540705608

url proxy dapat bersumber dari env vars, tetapi juga dapat berasal dari tempat lain misalnya ~/.gitconfig . Mungkin mereka sedang diatur di tempat lain? Akan lebih baik jika kita bisa mendapatkan libgit2 untuk mencetak url proxy terakhir yang dideteksi.

Saya khawatir masalah ini akan menyebabkan banyak masalah bagi pengguna korporat & universitas .. Semoga libgit2 segera merilis pembaruan yang dapat disertakan dalam versi julia minor.

Ooooh, tangkapan yang sangat bagus, ini memang disetel di .gitconfig , yang diutamakan pada variabel env. Dengan itu, itu berhasil!

Trailing slash adalah perbaikannya, tapi pria itu benar-benar bodoh .....

Setuju. Ini adalah bug libgit2, bukan bug Julia. Harus diperbaiki di libgit2 yang lebih baru.

Masih menjadi masalah di Julia 1.3.1

@staticfloat :

Terakhir kali kami membangun kembali libgit2 (mis. Dibangun kembali dengan pecahan BB baru) adalah https://github.com/JuliaLang/julia/commit/e44652ab03ce384444bddfaca270c04b42d968a8

Terakhir kali kami meningkatkan versi libgit2 adalah https://github.com/JuliaLang/julia/commit/d0b5d9850fb7b51c7831d3897ad46e4d3478d322

Jika kami memerlukan versi tertentu yang berisi perbaikan, beri tahu saya dan saya akan membuat versi baru.

0.28.4 memiliki banyak perbaikan keamanan, jadi sebaiknya Anda meningkatkan versi?

0.24.4 tampaknya tidak menyertakan https://github.com/libgit2/libgit2/commit/c6ab183e9c960b74471a7d106a4deb0c8b28a8ec meskipun yang seharusnya memperbaiki masalah ini (https://github.com/libgit2/libgit2/issues/5255#issuecomment-541589326 ).

Jadi saya kira pertanyaannya adalah apakah kita ingin menambal libgit2 atau hanya menunggu sampai mereka membuat rilis yang menyertakan perbaikan ini.

Saya tidak memiliki proxy dan saya mengalami masalah ini, saya memperbaikinya dengan menurunkan libgit2 dari 0.99.0 menjadi 0.27.8

Saya tidak memiliki proxy dan saya mengalami masalah ini, saya memperbaikinya dengan menurunkan libgit2 dari 0.99.0 menjadi 0.27.8

Bisa konfirmasi. Saya juga mengalami masalah ini, tanpa pengaturan proxy (setidaknya tidak di .gitconfig ). Saya memperbaikinya dengan cara yang persis sama - dengan menurunkan libgit2 dari 0.99.0 menjadi 0.27.8 .

Saya tidak memiliki proxy dan saya mengalami masalah ini, saya memperbaikinya dengan menurunkan libgit2 dari 0.99.0 menjadi 0.27.8

Bisa konfirmasi. Saya juga mengalami masalah ini, tanpa pengaturan proxy (setidaknya tidak di .gitconfig ). Saya memperbaikinya dengan cara yang persis sama - dengan menurunkan libgit2 dari 0.99.0 menjadi 0.27.8 .

Saya memiliki ini juga di Arch Linux - libgit2 adalah 1: 0.99.0-2

Menurunkan libgit2 bukanlah suatu pilihan. Saya membutuhkan sesuatu untuk dimasukkan ke dalam .gitconfig saya yang akan membuat ini hilang tanpa merusak apa pun, atau memperbaikinya di 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

Anda dapat menggunakan Julia 1.4 yang akan segera dirilis dengan JULIA_PKG_SERVER=pkg.julialang.org dan tidak akan menggunakan libgit2 sama sekali untuk menginstal paket terdaftar.

Saya setuju dengan bug ini. Saya menggunakan manjaro .. libgit2 ditingkatkan ke 0.99 dan lingkungan julia saya (1.3.1) rusak sekarang .... Saya telah menginstal julia ke komputer baru. Itu juga rusak. Saya perhatikan bahwa bug hanya memengaruhi pembaruan registri dari github. Tetapi paket masih dapat diinstal jika register secara manual di-clone di bawah ~ / .julia / registries / General ... Saya kira pembaruan dapat ditangani secara manual juga ...

Kapan ini akan terjadi?

Anda dapat menggunakan Julia 1.4 yang akan segera dirilis dengan JULIA_PKG_SERVER=pkg.julialang.org dan tidak akan menggunakan libgit2 sama sekali untuk menginstal paket terdaftar.

Anda dapat melakukannya sekarang jika Anda menggunakan kandidat rilis atau JuliaPro 1.3 .

Saya telah mengupgrade libgit2 ke 0.99 di freebsd, dan mendapat masalah yang sama. Solusi untuk pkg adalah memperbarui ~/.julia/registries/General secara manual.

Silakan laporkan ke repo libgit2 sebagai gantinya (kecuali jika itu adalah duplikat dari https://github.com/libgit2/libgit2/issues/5220, di mana Anda mungkin dapat mengatasi masalah itu.)

Masalah dengan LibGit2 0.99.0 yang dilaporkan di komentar tidak terkait dengan laporan bug asli, lihat masalah # 35043 sebagai gantinya dan PR # 35232 untuk perbaikan yang disarankan.

Anda dapat menggunakan Julia 1.4 yang akan segera dirilis dengan JULIA_PKG_SERVER=pkg.julialang.org dan tidak akan menggunakan libgit2 sama sekali untuk menginstal paket terdaftar.

Sayangnya, solusi ini tidak berhasil, saya menggunakan julia 1.4.

@getzze Bagaimana Anda memanggil julia? Mungkin Anda lupa export variabel lingkungan JULIA_PKG_SERVER di shell Anda sebelum memanggil Julia di prompt shell terpisah?

Solusi ini bekerja di _Arch Linux_ menggunakan _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]

Jika Anda sudah memiliki registri sebagai klon git, ia akan tetap menggunakannya sebagai klon git alih-alih menggunakan server Pkg, itulah mengapa Anda harus menghapusnya.

Terima kasih, saya tidak mengerti bahwa Anda harus menghapus registri sebelumnya.
Namun, saya menggunakan versi pengembangan dari beberapa paket jadi saya perlu mengambil dari git dan satu paket gagal diambil membuat semua pembaruan gagal.

Menjalankan Julia 1.4.0. Tidak menggunakan proxy apa pun. Windows 10 Pkg.add berfungsi, di Linux Manjaro untuk paket yang sama muncul kesalahan di atas :(

Solusi @tuhtah berhasil

Hai, saya menggunakan manjaro Linux. Dalam kasus saya, ini membantu

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

Lalu di julia

julia> using Pkg

julia> Pkg.add("IJulia")

Tidak perlu menghapus folder apa pun. Dengan...

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

saya mendapat

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]

Saya awalnya menerapkan solusi @gwatcha , namun menggunakan

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

Melakukan pekerjaan yang sama. Ketika saya kembali ke julia dan mencoba memutakhirkan paket ... mereka meningkatkan:

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

Semua ini karena saya tidak bisa mendapatkan Plot 1.0 dari JULIA_PKG_SERVER=pkg.julialang.org . Jadi, jika Anda menyukai / membutuhkan versi terbaru dari paket-paket tersebut, memperbarui pendaftar secara manual dapat melakukan trik sampai julia dan libgit2 berbicara satu sama lain lagi.

Edit: ternyata sekarang di pkg.julialang.org (hanya sampai v0.28 ketika saya mencoba). Layak dicoba jika Anda tidak ingin mengotak-atik folder dan menurunkan paket.

masalah git sama di sini

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

Jika Anda menggunakan Julia 1.4, Anda dapat melakukan export JULIA_PKG_SERVER=pkg.julialang.org dan Anda tidak perlu menggunakan git untuk operasi Pkg. Anda harus melakukan rm -rf ~/.julia/registries/General terlebih dahulu untuk memutakhirkan registri Umum agar menggunakan protokol Pkg alih-alih git.

Masalah itu harus dilaporkan ke Arch, mereka membutuhkan patch seperti https://github.com/JuliaLang/julia/pull/35233 jika mereka menggunakan libgit2 1.0.

Sebagai catatan, saya terkena ini lagi mencoba Julia 1.5 untuk pertama kalinya di tempat kerja lagi, garis miring diperlukan pada proxy di ~/.gitconfig .

Seseorang yang peduli tentang hal ini harus mengganggu proyek libgit2 dan memastikan mereka benar-benar membuat rilis yang menyertakan perbaikan bug untuk ini. Jelas menunggu mereka untuk memperbaikinya sendiri tidak berhasil.

Bagi saya, kesalahan ini terjadi karena saya menggunakan proxy socks5 (.gitconfig, dan git clone secara mannully bekerja dengan proxy socks5). Ubah ke proxy http memperbaikinya.

21 Jan

Jadi saya kira pertanyaannya adalah apakah kita ingin menambal libgit2 atau hanya menunggu sampai mereka membuat rilis yang menyertakan perbaikan ini.

21 Agustus

Jelas menunggu mereka untuk memperbaikinya sendiri tidak berhasil.

Jadi pergi dengan yang pertama? (patch libgit2) Anda bahkan mungkin bisa memberikan kontribusi patch untuk mereka.

Meminta pengguna untuk mengajukan masalah / menangani pustaka hulu agak tidak adil, IMO (bagaimanapun, para pengguna yang akan peduli pada akhirnya)

Adil atau tidak, saya tidak mengalami masalah ini dan saya tidak ingin menyia-nyiakan di libgit2 untuk memperbaikinya. Jika Anda ingin membayar seseorang untuk mengerjakan ini, hubungi [email protected] dan kami dapat mencari tahu kontrak konsultasi. Anda juga dapat membeli JuliaTeam dan kemudian Anda tidak akan mengalami masalah ini karena Anda dapat terhubung ke server paket yang ada di dalam firewall Anda, jadi Anda tidak perlu melalui proxy sama sekali (ada banyak manfaat bagus lainnya juga ). Paling tidak, Anda bisa membuat keributan di https://github.com/libgit2/libgit2/issues/5220 alih-alih di sini. @fredrikekre secara harfiah adalah satu-satunya orang yang memposting di sana. Sebaliknya semua orang mengganggu kami dan saya kira mengharapkan kami mengganggu pengembang libgit2 untuk mereka? Jika semua orang yang memposting di sini juga memposting keluhan di repo libgit2, mereka mungkin telah memperbaikinya sekarang.

Saya sekarang telah melakukan ping ke semua orang yang telah memposting di sini dan dalam masalah terkait di mana bug libgit2 ini adalah penyebab utama masalah mereka pada masalah libgit2 yang relevan. Silakan berpadu di sana dengan laporan bug Anda tentang ini.

Mungkin https://github.com/JuliaLang/julia/pull/35233 akan membantu? Saya belum melihat catatan tempel.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat