Nedladdningar från Cargos register fungerar, men Git-beroenden misslyckas
Separera Cargos HTTP-väg för registret från hämtning av Git-källor och välj Git-implementation medvetet när proxybeteendet skiljer sig.
Läs URL:en till källan som misslyckades innan du ändrar Cargos proxy. Registermetadata, ett crate-arkiv och ett Git-beroende kan använda olika vägar för hämtning och autentisering. En SSH Git-URL behöver också en annan transportkonfiguration än HTTPS.
För Cargos relevanta HTTP-begäranden kan rutten ställas in så här:
[http]
proxy = "http://203.0.113.10:8080"Byt ut dokumentationens slutpunkt mot din HTTP-proxy. För en offentlig registerväg där offentliga proxyer är tillåtna finns kandidater i HTTP-proxylistan. Det bevisar inte att ett externt Git-program fick samma konfiguration.
Om källan som misslyckas är Git kan Cargo välja Git CLI i stället för den inbyggda implementationen:
[net]
git-fetch-with-cli = trueCARGO_NET_GIT_FETCH_WITH_CLI=true väljer den för ett kommando. Extern Git behöver nu sin egen proxykonfiguration och autentiseringsuppgifter. Jämför samma Git-URL i samma startmiljö; ett orelaterat arkiv som fungerar i en annan terminal är inte testet.
En saknad revision, nekad åtkomst till arkivet eller ett SSH-hostnyckelfel är samma problem även efter byte av implementation. Alternativet väljer en klient som stöds, men reparerar inte beroenden generellt.
Håll diagnosen på projekt- eller kommandonivå: globala Git-inställningar och användarens Cargo-inställningar kan påverka andra arbetsytor. En register-URL väljer paketdata, inte en mellanhand. När Git-vägen fungerar kör du hela den avsedda Cargo-åtgärden igen, eftersom arkiv, omdirigeringar och nedladdningar under bygget kan införa andra vägar.