Comment créer un référentiel local en utilisant apt-mirror et mirrorkit?

9

Avoir un référentiel local peut être très utile. Il est possible d'utiliser rsyncpour créer un miroir de référentiel, mais cela entraîne le téléchargement de toutes les versions, même les plus anciennes, et inclurait des fichiers pour les architectures qui pourraient ne pas être nécessaires.

apt-mirrorpermet de choisir de manière sélective des parties du référentiel. mirrorkitfournit une interface à apt-mirror.

Quelle est la meilleure façon de créer un miroir de référentiel local pour des parties sélectionnées des archives Ubuntu?

Par exemple, on pourrait souhaiter inclure:

  • Principal, Restreint, Univers, Multivers, Tous Ubuntu et Lubuntu mais exclut les autres dérivés, tels que Kubuntu et Xubuntu.

  • Seulement AMD64 et i386 mais exclut les autres architectures.

  • Seulement Trusty Tahr, mais pas Precise Penguin ou Utopic Unicorn.

On peut souhaiter configurer le processus pour qu'il soit téléchargé à partir d'un miroir local, plutôt que des archives principales.

Comment puis-je créer un référentiel local en utilisant apt-mirroret mirrorkitpour une architecture, une version ou une variante Ubuntu sélectionnée?

user75798
la source
Exclure Kubuntu? Vous voulez dire exclure les ISO Kubuntu ou exclure tout paquet utilisé par Kubuntu?
muru
Exclure les ISO Kubuntu et Xubuntu, par exemple. Il y en a peut-être énormément (Precise Kubuntu ARM, Precise Kubuntu i386, Quantal Kubuntu ARM, Quantal Kubuntu i386 ...) et le téléchargement initial du miroir pourrait être terminé plus rapidement sans ces ISO. Mais s'il ne s'agit que de quelques gigaoctets de plus, cela n'a peut-être pas tant d'importance.
user75798
1
Les ISO sont hébergés séparément des packages. Vous pouvez donc utiliser apt-mirror comme vous le feriez normalement pour mettre en miroir les référentiels de packages et utiliser un autre outil pour les ISO. La question devient alors de trouver des filtres d'exclusion appropriés pour cet outil (par exemple rsync).
muru
"vous pouvez utiliser apt-mirror comme vous le feriez normalement" Je suis désolé, je ne sais pas comment faire. C'est exactement ce que j'aimerais qu'on m'explique.
user75798

Réponses:

9

Le référentiel CD et le référentiel logiciel sont deux composants distincts (ils ont même des pages Launchpad distinctes: les miroirs cd et les miroirs d'archivage ). Par conséquent, leur mise en miroir est deux tâches distinctes. De plus, alors que les différentes versions ont des dossiers différents sur le référentiel CD, elles partagent un référentiel logiciel. Vous pouvez donc reproduire sélectivement les images par saveur, mais pas le logiciel. Pour le référentiel de logiciels, vous pouvez mettre en miroir de manière sélective en fonction:

  • libérer ( trusty, precise, etc.)
  • l' architecture ( amd64, i386, etc.)
  • type de package (binaire [ deb] vs source [ deb-src])
  • canaux ( trusty, trusty-updates, trusty-backports, etc.)
  • sections ( main, multiverse, etc.)

Pour mettre en miroir le référentiel de logiciels, utilisez apt-mirror.

apt-mirrorest configuré à l'aide de /etc/apt/mirror.list. Il a un format très similaire à sources.list. Le fichier de configuration installé par le package contient quelques options commentées qui répertorient leurs valeurs par défaut. Si vous le souhaitez, vous pouvez les décommenter et les modifier.

Pour mettre en miroir un référentiel, vous devez ajouter une ligne mirror.listcomme vous le feriez pour sources.list:

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

La valeur par défaut est de ne refléter que l'architecture de l'hôte, donc si vous êtes sur un Ubuntu 64 bits, seule amd64sera mise en miroir. Vous devez ajouter une autre ligne du formulaire:

deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Et pour les packages source:

deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Si vous cherchez un miroir raisonnablement complet, ces lignes seraient le minimum (je recommanderais également la -updateschaîne):

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe

Enfin, vous devez ajouter une cleanligne pour que les packages qui ne sont plus disponibles dans le référentiel soient filtrés pour suppression:

clean http://us.archive.ubuntu.com/ubuntu

Disons que vos variables sont ainsi (les valeurs par défaut):

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh

Alors:

  • Le référentiel sera mis en miroir $mirror_path/parent-hostname/directory(donc /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu)
  • Le clean.sh(qui sera un ensemble de rmcommandes pour supprimer les packages et répertoires obsolètes) le sera /var/spool/apt-mirror/var/clean.sh.
  • Les journaux iront à /var/spool/apt-mirror/var.

Le apt-mirrorpackage installe un travail cron ( /etc/cron.d/apt-mirror), que vous devez modifier pour l'activer (en décommentant la ligne contenant /usr/bin/apt-mirror). Vous devez également ajouter un travail cron pour l'exécution clean.sh(je l'exécute chaque semaine).

Bien sûr, vous devez le remplacer http://us.archive.ubuntu.com./ubuntupar le miroir que vous préférez.

muru
la source
1
Est-ce vraiment deb-amd64ou deb arch=amd64? Je ne peux trouver que ce dernier dans la page de manuel
Anwar
1
@Anwar l'ancien. Ce dernier est pour sources.list, qui a un format similaire mais pas identique. Voir manpages.ubuntu.com/manpages/trusty/en/man1/apt-mirror.1.html , où se deb-powerpctrouve dans l'exemple.
muru
Oh! Je n'avais aucune expérience avec apt-mirror. Je pensais que c'était pour sources.list. Merci
Anwar
2

Je recommande apt-cacher pour ceux qui ont un espace limité ou ceux qui ont des prix Internet exorbitants dans leur pays.

apt-mirror, prétendument, nécessite au moins 15 Go pour chaque saveur (32/64 bits) de la distribution que vous souhaitez. apt-cacher utilise uniquement les packages que vous avez installés.

Lisez Créer un référentiel Ubuntu local en utilisant Apt-Mirror et Apt-Cacher pour plus de détails / instructions s'il vous plaît.

nyxee
la source