it-swarm.com.de

Wie kann ich verhindern, dass apt-mirror ALLE Pakete herunterlädt?

Ich versuche, apt-mirror zu konfigurieren, es funktioniert gut für Ubuntu-Upstreams, aber wenn ich es für etwas wie GitLab verwende, werden alle Paketversionen heruntergeladen.

Gitlab-ce hat zum Beispiel 72 GB, jede Version hat weniger als 300 MB. Wie kann ich nur die neuesten oder sogar die letzten 1 oder 2 Pakete behalten, nicht 459?

1
Jacob Evans

APT Mirror soll das gesamte Repository nur von mirror.list Einträgen spiegeln.

In ein paar Sätzen funktioniert apt-mirror so:

  1. Ruft Indexdateien aus dem Repository ab und verarbeitet sie (der gleiche Vorgang wie bei apt update).

  2. Lädt Dateien aus gesammelten Indexdateien herunter, wenn sie lokal nicht vorhanden sind. Die Ordnerstruktur bleibt dabei erhalten (ähnlich wie bei wget -c -x <url_file_array>).

Für detailliertere Informationen zur Funktionsweise von apt-mirror und zur Bestätigung, dass das Repository nicht teilweise gespiegelt werden kann, um nur die neuesten Versionen zu erhalten , können Sie dies tun Siehe Der Quellcode von apt-mirror (geschrieben in Perl).

Was ist also zu tun, um die neuesten Versionen aus großen Repositorys zu erhalten?

Meine vorübergehende Problemumgehung für Ihre Situation (Beispiel: gitlab-ce Repository für Ubuntu 18.04 - Bionic):

  1. Geben Sie den Pfad für die Spiegelung ein:

    cd /path/to/mirroring
    
  2. Backup sources.list:

    Sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  3. Öffne und kommentiere jede Zeile in sources.list:

    Sudo nano /etc/apt/sources.list
    
  4. Fügen Sie die gewünschten Repositorys für die Spiegelung hinzu:

    4.1. Fügen Sie dies zu sources.list hinzu und beenden Sie die Datei: deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main

    4.2. GPG hinzufügen:

    curl -L https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | Sudo apt-key add -
    
  5. Indexdateien aktualisieren:

    Sudo apt update
    
  6. Holen Sie sich die URL der neuesten Pakete aus dem hinzugefügten Repository und schreiben Sie sie in die Datei:

    Sudo apt-get install '*' --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list
    
  7. Laden Sie die URLs mit Ordnerstruktur herunter. Aufgrund der Option -c werden keine vorhandenen Dateien heruntergeladen:

    wget -i download-list -c -x
    

    Genießen!!!

    Um alles zurückzusetzen, ersetzen Sie einfach die Datei sources.list durch die alte Datei sources.list.bak und führen Sie folgende Schritte aus:

    Sudo apt update
    
2
Olimjon