Wie erstelle ich Cargo.lock basierend auf dem letzten Monat crates.io?

8

Ich möchte eine Cargo.lock-Datei in einem Rust-Projekt von Cargo.toml basierend auf dem, was am 22. Februar 2017 verfügbar war, erstellen. Ich muss die Versionsauswahl kompatibel zu dem machen, was an diesem bestimmten Tag passieren würde. (Nein, habe keinen versionskontrollierten Cargo.lock irgendwo herum.)

Ich habe das vergebens versucht:

  1. Klonen Sie den crates.io-Index in ein lokales Verzeichnis und überprüfen Sie eine ältere Festschreibung, die mit dem gewünschten Datum übereinstimmt.
  2. Verwenden Sie die folgenden Zeilen in .cargo / config:

    %Vor%

Trotzdem löst cargo die Abhängigkeiten in Cargo.toml zu den neuesten verfügbaren, nicht zu den neuesten in der angegebenen Kasse.

Wie könnte ich Cargo's Versionsauswahl rechtzeitig zurückverwandeln?

    
Christian Kauhaus 23.03.2017, 14:33
quelle

1 Antwort

1

Da Sie sagen, dass Sie bereits versucht haben, den Index zu klonen, nehme ich an, dass Sie ihn immer noch herumliegen haben. Zum Nutzen anderer Leser scheint das Repository in Git gepflegt zu sein und steht unter Ссылка .

Sie müssen cargo so angeben, dass es mit --frozen läuft, damit es das Netzwerk nicht berührt, q.v. die Fracht-FAQ , und sie wird explodieren, wenn sie denkt, dass sie es braucht. Wenn es bereits Daten heruntergeladen hat, müssen Sie cargo clean ebenfalls verwenden oder den Cache auf andere Weise nuken.

Wenn Sie nicht alle Pakete bereits in der Kaufabwicklung benötigen, müssen Sie auch die spezifischen Versionen herunterladen, die Sie interessieren. Zerlegen von Kisten.io: Bare Minimum Mirror hat eine Erklärung, die ich hier zusammenfasse, falls der Link explodiert.

  

config.json im Stammverzeichnis des Crate Repo hat die URLs zum Herunterladen von Paketen, die offiziell als instabil gelten, aber jetzt funktionieren.

     

Das Beispiel von libc crate, das vom "gmjosack" verwendet wird, zeigt einen Pfad von /api/v1/crates/libc/0.1.10/download zum Herunterladen an, basierend auf dem Schlüssel dl von https://crates.io/api/v1/crates in config.json und der zu diesem Zeitpunkt verfügbaren Version der Post.

Sie müssen wahrscheinlich die Downloads scripten, um Ihren Spiegel zu erstellen. Siehe auch: Herunterladen von Rostkisten mit einem Webbrowser auf stackoverflow.

    
Ben Stern 28.01.2018 23:36
quelle

Tags und Links