web-dev-qa-db-fra.com

Comment ajouter des paquets à un cache squid-deb-proxy?

Pour économiser la bande passante et les données de mon forfait Internet, j'ai installé squid-deb-proxy sur un ordinateur de bureau, ainsi que le client et les autres ordinateurs que j'ai. Cependant, sur la base de le post qui m'a mis sur cette question, il semblerait que si je transfère mon ordinateur portable * sur un autre réseau et le mets à jour, les mises à jour téléchargées ne seront PAS automatiquement copiées dans le calmar- serveur deb-proxy quand je reviens sur mon réseau.

En supposant que cela soit correct (je le testerai plus tard), y a-t-il un moyen de coller ces paquets dans le cache afin que je n'ai pas à les télécharger une fois de plus pour les autres machines du réseau?


* Comme indiqué dans les commentaires, je pourrais simplement faire de l'ordinateur portable le serveur proxy, mais dans mon cas spécifique, l'ordinateur portable est en fait 1) un VM qui ne fonctionne pas tout le temps, 2) dans un ordinateur portable ce n'est pas ouvert tout le temps. En tant que telle, cette solution, bien que bonne, ne fonctionne pas dans mon cas.

10
zpletan

Vous pouvez utiliser apt-move (du paquetage du même nom) pour créer un référentiel local apt à partir des fichiers du cache apt de votre ordinateur portable. Ensuite, utilisez rsync pour conserver une copie synchronisée de ce référentiel sur votre réseau local. Enfin, pointez les autres machines du réseau local vers votre copie du réseau local du référentiel local en haut de sources.list, de manière à ce que apt préfère le référentiel local aux machines distantes.

2
Robie Basak

C'est toujours une réponse incomplète, mais ce pourrait être la meilleure réponse possible, alors poursuivez votre lecture si vous êtes curieux des solutions partielles/laides/compliquées.

Question intrigante, j'ai rencontré le même problème mais je ne l'ai jamais corrigé. J'essaie simplement de limiter mon apt-obtention en dehors de mon réseau local. Cela ne valait vraiment pas la peine, au plus j'ai gaspillé 20 Mo au cours de la dernière année. Mon ensemencement iso torrent compense cela. Mais!

  1. vous pouvez configurer un tunnel/proxy entre votre ordinateur portable et votre domicile pour utiliser votre cache d'origine (c'est quand même une bonne idée pour des raisons de confidentialité), mais vous seriez alors dépendant de votre vitesse de téléchargement. Non seulement cela serait lent, mais vous utiliseriez 2 fois plus de bande passante pour télécharger la même chose. 1 fois dans votre réseau depuis les miroirs Ubuntu et 1 fois au café.

  2. Je propose qu'il soit possible d'exécuter le serveur de cache sur votre ordinateur portable, puis d'utiliser rsync pour le synchroniser avec votre serveur domestique. Cela pose toutefois un problème: lorsque vous êtes chez vous, ce serveur sur votre ordinateur portable sera toujours en marche. Pour faire face à cela, je pouvais voir deux possibilités. 1. arrêtez le serveur de cache sur votre ordinateur portable lorsque vous êtes à la maison 2. conservez également toutes les copies en cache qui existent sur votre serveur domestique sur votre ordinateur portable (espace supplémentaire requis) et ne le faites pas uniquement en repoussant les données en cache sur votre serveur rsync à la maison, mais aussi en extrayant régulièrement les données en cache sur votre serveur portable. En suggérant cela, j'ai supposé que le cache squid-deb-proxy sur un serveur était compatible avec un autre et que vous pouviez échanger des fichiers de cette manière. Ces options nécessiteront également certainement des scripts. Le cache pour moi se trouve dans/var/cache/squid-deb-proxy/et en dessous, cela n’est pas immédiatement compréhensible pour l’homme.

0
David A

Nous utilisons une approche simple et stupide: le squid-deb-proxy peut s’utiliser lui-même en tant que proxy. Par conséquent je fais juste:

  1. J'installe le logiciel client sur le serveur squid-deb-proxy:

    apt-get install squid-deb-proxy-client

  2. J'ai créé un script simple qui répertorie tous les packages installés - et retélécharge chaque package:

    #!/bin/bash  
    # Create temp dir & change into it
    tmpdir=$(mktemp -d) 
    pushd $tmpdir   
    # Get all installed packages and re-download them
    for package in $(dpkg --get-selections | cut -f 1); do apt-get download $package; done;
    popd
    # Delete tmp dir
    

De cette façon, nous avons déjà un cache de base pas si mal.

Si nous souhaitons ajouter tous les packages d’un serveur existant au cache, alors nous exécutons la même procédure 1) et 2)

0
Tom