web-dev-qa-db-fra.com

Comment puis-je empêcher apt-mirror de télécharger TOUS les paquets

J'essaie de configurer apt-mirror, cela fonctionne très bien pour ubuntu en amont, mais lorsque je l'utilise pour quelque chose comme GitLab, toutes les versions de paquet sont téléchargées.

Par exemple, gitlab-ce fait 72 Go, chaque version fait moins de 300 Mo. Comment puis-je conserver uniquement le dernier ou même les derniers 1 ou 2 derniers paquets, et non 459?

1
Jacob Evans

APT Mirror est conçu pour mettre en miroir tout le référentiel à partir de mirror.list entrées uniquement.

En quelques phrases, apt-mirror fonctionne comme suit:

  1. Obtient les fichiers d'index du référentiel et les traite (le même processus que apt update).

  2. Télécharge les fichiers à partir des fichiers d'index collectés, s'ils n'existent pas localement. La structure de dossiers est conservée dans ce processus (comme pour wget -c -x <url_file_array>).

Pour plus d'informations sur le fonctionnement de apt-mirror et pour confirmer que , il est impossible de mettre partiellement en miroir le référentiel pour obtenir les dernières versions uniquement , vous pouvez: se référer à Le code source d'apt-mirror (écrit en Perl).

Alors, que faire pour obtenir les dernières versions à partir de grands référentiels?

Ma solution temporaire à votre situation (en prenant, par exemple, gitlab-ce référentiel pour Ubuntu 18.04 - Bionic):

  1. Entrez le chemin pour la mise en miroir:

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

    Sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  3. Ouvrez et commentez chaque ligne de sources.list:

    Sudo nano /etc/apt/sources.list
    
  4. Ajoutez votre ou vos référentiel (s) souhaité (s) pour la mise en miroir:

    4.1. Ajoutez ceci à sources.list et quittez le fichier: deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main

    4.2. Ajoutez le GPG:

    curl -L https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | Sudo apt-key add -
    
  5. Mettre à jour les fichiers d'index:

    Sudo apt update
    
  6. Récupérez les derniers paquets depuis le référentiel ajouté et écrivez-les dans le fichier:

    Sudo apt-get install '*' --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list
    
  7. Téléchargez les urls avec la structure de dossiers, à cause de l'option -c, les fichiers existants ne seront pas téléchargés:

    wget -i download-list -c -x
    

    Prendre plaisir!!!

    Pour tout revenir en arrière, remplacez simplement le fichier sources.list par l'ancien sources.list.bak et faites:

    Sudo apt update
    
2
Olimjon