Julia: لا يمكن لـ LibGit2 الاستنساخ أو الجلب في Julia 1.3 / master

تم إنشاؤها على ٢٩ أغسطس ٢٠١٩  ·  66تعليقات  ·  مصدر: JuliaLang/julia

فتح هذه المشكلة هنا لأنني متأكد تمامًا من أن Pkg لم يغير أي شيء ، فربما يكون هذا متعلقًا بترقية 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

التعليق الأكثر فائدة

getzze كيف export متغير البيئة JULIA_PKG_SERVER في قشرتك قبل استدعاء Julia في موجه shell منفصل؟

يعمل الحل البديل على _Arch Linux_ باستخدام _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]

ال 66 كومينتر

يعمل معي على جهاز Mac.

حسنًا ، أنا على نظام Linux. عودة # 32806 إلى إصلاح هذه المشكلة بالنسبة لي.

الناسخ بدون أي كود 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

ربما لا علاقة له بالموضوع: لقد رأيت نفس الخطأ على Julia 1.0.4 اليوم على macOS. أصلحته بالذهاب إلى السجل في الجهاز الطرفي وتشغيل git fetch . بعد ذلك توقفت تحديثات Pkg عن إصدار التحذير.

ربما لا علاقة له بالموضوع: لقد رأيت نفس الخطأ على Julia 1.0.4 اليوم على macOS. أصلحته من خلال الانتقال إلى السجل في الجهاز الطرفي وتشغيل git fetch. بعد ذلك توقفت تحديثات Pkg عن إصدار التحذير.

هذا لم يصلح لي. أيضًا ، جربت من جهاز مختلف ولكني لم أستطع التكاثر. أي أفكار حول كيفية التصحيح؟

فشل الاستنساخ من الصفر أيضًا ، مع ظهور نفس رسالة الخطأ حول unrecognized URL prefix .

يحدث هذا أيضًا مع الثنائيات العامة بالمناسبة.

تتمثل الطريقة المستقبلية المحتملة لتصحيح هذا الخطأ في تقليله إلى مجرد ccalls ثم البحث في libgit2 حيث يتم إنشاء الخطأ.

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)

إرجاع -1 .

يعمل كلا المثالين FWIW هنا على أحدث نسخة رئيسية. هل يمكن لأي شخص آخر أن يتكاثر؟

fredrikekre هل يمكنك نشر تكوين git الخاص بك؟

مثير للاهتمام ، لقد قمت بتخفيض ملف .gitconfig إلى

[http]
    proxy =

لست متأكدًا من سبب وجودها ، ولا أعتقد أنني أضفتها بنفسي. يبدو أن [email protected] فشل في ذلك ، بينما يعالجها [email protected] (كما يفعل git العادي)

ربما تتعلق بهذه النقطة من ملاحظات إصدار libgit2 0.28:

تم بناء دعم وكيل HTTP الآن ؛ لم يعد يستخدم libcurl لدعم ملفات
الوكلاء ويتم إزالتها باعتبارها تبعية.

ربما رفع قضية ضد libgit2؟ يمكنك أيضًا محاولة إعادة التغييرات التي أجريتها على gitcredential.jl في https://github.com/JuliaLang/julia/pull/32806 ، فقط في حالة (تكون مطلوبة لبعض الاختبارات المحددة ، ولكن ليس لمعظم العمليات).

الإزالة من المعلم لأنه من الغريب أن يكون لديك http.proxy فارغًا ، ويمكننا ترقية libgit2 في 1.3.1 أو أيًا كان.

يمكنني إعادة إنتاج شيء مشابه ، لكن المقتطف الذي أرسلته أعلاه يُرجع -12 . يبدو أنه قد تم تقديمه في التزام حديث - جوليا 1.2.0 تعمل بشكل جيد ولكن 1.3.0-rc1 والماجستير / أحدث النوادي الليلية (47f2800747) تفشل.

ظهرت هذه المشكلة أيضًا بالنسبة لي مع تعيين http(s)_proxy كمتغير بيئة. يجب أن يكون غير مضبوط (غير مضبوط على سلسلة فارغة) لتجنب ذلك.

شكرًا على الاقتراح tkluck - للأسف عدم ضبط http_proxy و http_proxy لا يحدثان فرقًا أكثر مني - لا يزال الحصول على رمز الإرجاع -12 :(

واجهت هذه المشكلة الآن وأود الإبلاغ عن نتائج الاختبار مع ثلاثة ثنائيات جوليا حديثة الإنشاء في الإصدار 1.0 والإصدار 1.3 والفروع الرئيسية. (لم أتمكن من اختبار الإصدار 1.2 بسبب أخطاء في الإصدار.) تم إجراء جميع الاختبارات الثلاثة باستخدام ~/.julia فارغًا. يتم تعريف متغيرات البيئة http_proxy و https_proxy في ~/.bashrc .

الإصدار 1.0 (لا يوجد خطأ):

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 %

الإصدار 1.3 (خطأ):

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'

سيد (خطأ):

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'

آمل أن يتم حل هذه المشكلة قريبًا!

هل يفتقد http_proxy شرطة مائلة لاحقة؟ راجع https://github.com/libgit2/libgit2/issues/5255

kcajf ، الحل الخاص بك يعمل! شكرا جزيلا لك!!!

بالنسبة للآخرين ، الحل هنا هو وضع / في نهاية رقم منفذ الوكيل. على سبيل المثال ، في ~/.bashrc ، استخدم

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

بدلا من

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

تنهد. إنه أمر مزعج للغاية من libgit2 الاهتمام إذا كان هناك شرطة مائلة أم لا.

بلى. لا أستطيع أن أتخيل أنه سيكون من الصعب إصلاحه قبل ذلك ، ولكن السؤال هو ما إذا كان يمكن أن يحدث في إطار زمني معقول لـ 1.3.0. أتوقع أن يتسبب هذا في مشكلات للكثير من مستخدمي Julia من الشركات ، حيث أعتقد أن الشكل الأكثر شيوعًا هو عدم وجود شرطة مائلة.

يمكننا إصلاحه من جانبنا من خلال البحث عن متغير البيئة واكتشاف عدم وجود الشرطة المائلة اللاحقة وإصلاحه. من الغريب بعض الشيء العبث بمتغيرات بيئة المستخدم التي ليست خاصة بجوليا. هذا يبدو نوعًا من الخطورة حتى لو وفر بعض المتاعب ...

يمكن أيضًا الحصول عليه من ~ / .gitconfig وعدد قليل من الأماكن الأخرى ، لذلك لا يوجد حل شامل

libgit2 devs لم يعلقوا على ذلك بعد ، ربما هذا مجرد سهو. إذا لم يكن كذلك ، فيمكننا محاولة إقناعهم بتغيير هذا ...

لقد علقوا منذ ذلك الحين ويبدو أنه سيتم إصلاح هذا في إصدار libgit2 التالي.

مع 1.3 ، الترقية من 1.1 ، أحصل على

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

بعد rm -rf .julia ، أحصل على

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

أعمل خلف وكيل جامعي ، وتم تعيين كل من http_proxy و https_proxy وإصداراتهم بشكل صحيح (بشرطة مائلة لاحقة).

تحرير: يجب أن أذكر أنه يعمل في 1.1 و 1.2
تحرير 2: أوه ، ويعود النص أعلاه -12.

انظر الرمز هنا لمعرفة كيفية استخراج رسالة الخطأ الفعلية: https://github.com/libgit2/libgit2/issues/5255#issuecomment -540705608

يمكن الحصول على عناوين URL للوكيل من متغيرات env ، ولكن يمكن أن تأتي أيضًا من أماكن أخرى مثل ~/.gitconfig . ربما تم تعيينهم في مكان آخر؟ سيكون من الرائع أن نحصل على libgit2 لطباعة عنوان url النهائي للوكيل الذي يكتشفه.

أخشى أن تسبب هذه المشكلة الكثير من المتاعب لمستخدمي الشركات والجامعات .. آمل أن يصدر libgit2 تحديثًا قريبًا يمكن تضمينه في إصدار جوليا الصغير.

Ooooh ، صيد جيد جدًا ، لقد تم تعيينه بالفعل في .gitconfig ، والذي له الأسبقية على متغيرات env. مع ذلك ، يعمل!

الخط المائل هو الإصلاح ، لكن هذا الرجل غبي حقًا .....

يوافق على. إنه خطأ libgit2 ، وليس خطأ جوليا. يجب إصلاحه في إصدار libgit2 أحدث.

لا تزال مشكلة في Julia 1.3.1

staticfloat : ألم نقم بترقية libgit2؟

آخر مرة قمنا فيها بإعادة بناء libgit2 (على سبيل المثال إعادة بنائه باستخدام أجزاء BB جديدة) كانت https://github.com/JuliaLang/julia/commit/e44652ab03ce384444bddfaca270c04b42d968a8

آخر مرة قمنا فيها بترقية إصدار libgit2 كانت https://github.com/JuliaLang/julia/commit/d0b5d9850fb7b51c7831d3897ad46e4d3478d322

إذا احتجنا إلى إصدار معين يحتوي على إصلاح ، فيرجى إبلاغي بذلك وسأقوم بإنشاء إصدارات جديدة.

يحتوي الإصدار 0.28.4 على مجموعة من الإصلاحات الأمنية ، لذا من المحتمل أن تقوم بالترقية؟

لا يبدو أن 0.24.4 يتضمن https://github.com/libgit2/libgit2/commit/c6ab183e9c960b74471a7d106a4deb0c8b28a8ec على الرغم من أنه من المفترض أنه أصلح هذه المشكلة (https://github.com/libgit2/libgit2/issues/5255#issuecom6 ).

لذا أعتقد أن السؤال هو ما إذا كنا نريد تصحيح libgit2 أو الانتظار حتى يصدروا إصدارًا يتضمن هذا الإصلاح.

لم يكن لدي وكيل وكان لدي هذه المشكلة ، لقد أصلحتها عن طريق الرجوع إلى إصدار أقدم من libgit2 من 0.99.0 إلى 0.27.8

لم يكن لدي وكيل وكان لدي هذه المشكلة ، لقد أصلحتها عن طريق الرجوع إلى إصدار أقدم من libgit2 من 0.99.0 إلى 0.27.8

يمكن تأكيد. لدي أيضًا هذه المشكلة ، بدون أي إعداد وكيل (على الأقل ليس في .gitconfig ). لقد أصلحته بنفس الطريقة بالضبط - عن طريق الرجوع إلى إصدار أقدم من libgit2 من 0.99.0 إلى 0.27.8 .

لم يكن لدي وكيل وكان لدي هذه المشكلة ، لقد أصلحتها عن طريق الرجوع إلى إصدار أقدم من libgit2 من 0.99.0 إلى 0.27.8

يمكن تأكيد. لدي أيضًا هذه المشكلة ، بدون أي إعداد وكيل (على الأقل ليس في .gitconfig ). لقد أصلحته بنفس الطريقة بالضبط - عن طريق الرجوع إلى إصدار أقدم من libgit2 من 0.99.0 إلى 0.27.8 .

لدي هذا أيضًا على Arch Linux - libgit2 هو 1: 0.99.0-2

لا يعد الرجوع إلى إصدار أقدم من libgit2 خيارًا. إما أن أحتاج شيئًا لأضعه في ملف .gitconfig الخاص بي والذي سيجعل هذا يختفي دون كسر أي شيء آخر ، أو إصلاح في 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

يمكنك استخدام Julia 1.4 الذي سيصدر قريبًا مع JULIA_PKG_SERVER=pkg.julialang.org ولن يستخدم libgit2 على الإطلاق لتثبيت الحزم المسجلة.

أنا أتفق مع هذا الخطأ. أنا أستخدم manjaro .. تمت ترقية libgit2 إلى 0.99 وبيئة جوليا (1.3.1) معطلة الآن .... لقد قمت بتثبيت julia على جهاز جديد. هو أيضا معطل أيضا. لقد لاحظت أن الخطأ يؤثر فقط على تحديث التسجيل من جيثب. ولكن لا يزال من الممكن تثبيت الحزم إذا تم استنساخ السجل يدويًا ضمن ~ / .julia / registrates / General ... أفترض أنه يمكن معالجة التحديث يدويًا أيضًا ...

متى سيحدث هذا؟

يمكنك استخدام Julia 1.4 الذي سيصدر قريبًا مع JULIA_PKG_SERVER=pkg.julialang.org ولن يستخدم libgit2 على الإطلاق لتثبيت الحزم المسجلة.

يمكنك القيام بذلك الآن إذا كنت تستخدم الإصدار المرشح أو JuliaPro 1.3 .

لقد قمت بترقية libgit2 إلى 0.99 على freebsd ، وحصلت على نفس المشكلة. الحل البديل لـ pkg هو تحديث ~/.julia/registries/General يدويًا.

يرجى إبلاغ libgit2 repo بدلاً من ذلك (ما لم يكن نسخة مكررة من https://github.com/libgit2/libgit2/issues/5220 ، حيث يمكنك أن تصطدم بهذه المشكلة.)

لا تتعلق المشكلات المتعلقة بـ LibGit2 0.99.0 التي تم الإبلاغ عنها في التعليقات بتقرير الخطأ الأصلي ، راجع المشكلة رقم 35043 بدلاً من ذلك و PR # 35232 للحصول على إصلاح مقترح.

يمكنك استخدام Julia 1.4 الذي سيصدر قريبًا مع JULIA_PKG_SERVER=pkg.julialang.org ولن يستخدم libgit2 على الإطلاق لتثبيت الحزم المسجلة.

هذا الحل لا يعمل لسوء الحظ ، فأنا أستخدم جوليا 1.4.

getzze كيف export متغير البيئة JULIA_PKG_SERVER في قشرتك قبل استدعاء Julia في موجه shell منفصل؟

يعمل الحل البديل على _Arch Linux_ باستخدام _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]

إذا كان لديك التسجيل بالفعل باعتباره git clone ، فسيستمر في استخدامه كنسخة git بدلاً من استخدام خادم Pkg ، ولهذا السبب يتعين عليك حذفه.

شكرًا ، لم أفهم أنه يتعين عليك إزالة السجلات من قبل.
ومع ذلك ، فأنا أستخدم إصدار التطوير لبعض الحزم ، لذا أحتاج إلى الجلب من git وفشل حزمة واحدة في الجلب يجعل كل التحديث يفشل.

تشغيل جوليا 1.4.0. عدم استخدام أي وكيل. يعمل Windows 10 Pkg.add ، على Linux Manjaro للحزمة نفسها ، يلقي الخطأ أعلاه :(

حل tuhtah يعمل بالرغم من ذلك

مرحبًا ، أنا على manjaro Linux. في حالتي ، هذا ساعد

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

ثم في جوليا

julia> using Pkg

julia> Pkg.add("IJulia")

ليست هناك حاجة لحذف أي مجلد. مع...

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

انا حصلت

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]

لقد قمت في الأصل بتطبيق حل gwatcha ، ولكن باستخدام

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

يقوم بنفس الوظيفة. عندما عدت إلى جوليا وحاولت ترقية الحزم ... قاموا بالترقية:

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

كل هذا لأنني لم أستطع الحصول على قطع أرض 1.0 من JULIA_PKG_SERVER=pkg.julialang.org . لذلك ، إذا كنت تريد / تحتاج إلى أحدث إصدار من الحزم ، فإن تحديث السجلات يدويًا يمكن أن يؤدي إلى الحيلة حتى تتحدث جوليا و libgit2 مع بعضهما البعض مرة أخرى.

تحرير: يبدو أنه أصبح الآن في pkg.julialang.org (فقط حتى الإصدار 0.28 عندما حاولت). إنه يستحق التصوير إذا كنت لا تريد العبث بالمجلدات وخفض الحزم.

مشكلة بوابة نفسها هنا

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

إذا كنت تستخدم Julia 1.4 ، فيمكنك عمل export JULIA_PKG_SERVER=pkg.julialang.org ولن تحتاج إلى استخدام git لعمليات Pkg. ستحتاج إلى تنفيذ rm -rf ~/.julia/registries/General أولاً لترقية السجل العام لاستخدام بروتوكول Pkg بدلاً من git بالرغم من ذلك.

يجب إبلاغ Arch بهذه المشكلة ، فهم يحتاجون إلى تصحيح مثل https://github.com/JuliaLang/julia/pull/35233 إذا كانوا يستخدمون libgit2 1.0.

للتسجيل ، لقد أصبت بهذا مرة أخرى بمحاولة Julia 1.5 لأول مرة في العمل مرة أخرى ، مطلوب شرطة مائلة على الوكيل في ~/.gitconfig .

سيتعين على الشخص الذي يهتم بهذا الأمر أن يضايق مشروع libgit2 ويتأكد من إصداره بالفعل الذي يتضمن إصلاحًا للأخطاء لهذا الغرض. من الواضح أن انتظارهم لإصلاحها بأنفسهم لا ينجح.

بالنسبة لي ، حدث هذا الخطأ لأنني أستخدم بروكسي socks5 (.gitconfig ، ويعمل git clone يدويًا مع وكيل socks5). التغيير إلى وكيل http إصلاحه.

21 يناير

لذا أعتقد أن السؤال هو ما إذا كنا نريد تصحيح libgit2 أو الانتظار حتى يصدروا إصدارًا يتضمن هذا الإصلاح.

21 أغسطس

من الواضح أن انتظارهم لإصلاحها بأنفسهم لا ينجح.

لذا اذهب مع السابق؟ (تصحيح libgit2) قد تتمكن حتى من المساهمة في التصحيح لهم.

إن مطالبة المستخدمين بتقديم مشكلات / التعامل مع المكتبات الأولية أمر غير عادل إلى حد ما ، IMO (المستخدمون هم الذين سيهتمون في النهاية ، بعد كل شيء)

عادل أم لا ، لا أواجه هذه المشكلة ولا أشعر بالرغبة في التلاعب في libgit2 لإصلاح ذلك. إذا كنت تريد أن تدفع مقابل عمل شخص ما على هذا ، فاتصل بـ [email protected] ويمكننا إبرام عقد استشارة. يمكنك أيضًا شراء JuliaTeam ومن ثم لن تواجه هذه المشكلة لأنه يمكنك الاتصال بخادم الحزمة الموجود داخل جدار الحماية الخاص بك ، لذلك لا تحتاج إلى المرور عبر وكيل على الإطلاق (هناك الكثير من المزايا الرائعة الأخرى أيضًا ). على الأقل ، يمكنك إحداث بعض الضوضاء على https://github.com/libgit2/libgit2/issues/5220 بدلاً من هنا. fredrikekre هو حرفياً الشخص الوحيد الذي نشر هناك. بدلاً من ذلك ، يزعجنا الجميع وأعتقد أنه يتوقع منا مضايقة مطوري libgit2 نيابة عنهم؟ إذا قام كل من قام بالنشر هنا أيضًا بنشر شكوى على libgit2 repo ، فربما يكون قد أصلحه الآن.

لقد قمت الآن باختبار اتصال كل من نشر هنا وفي المشكلات ذات الصلة حيث كان هذا الخطأ في libgit2 هو السبب الأساسي لمشكلتهم في مشكلة libgit2 ذات الصلة. يرجى الرنين هناك مع تقارير الأخطاء الخاصة بك بخصوص هذا.

ربما https://github.com/JuliaLang/julia/pull/35233 من شأنه أن يساعد؟ لم ألق نظرة على ملاحظات التصحيح.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات