Come aggiungere pacchetti a una cache squid-deb-proxy?


10

Per salvare larghezza di banda e dati sul mio piano Internet, ho installato squid-deb-proxy su un desktop, il client su di esso e alcune altre macchine che ho. Tuttavia, in base al post che mi ha messo su questo, sembra che se porto il mio laptop * su una rete diversa e lo aggiorno lì, gli aggiornamenti scaricati NON verranno automaticamente copiati sul server squid-deb-proxy quando ottengo di nuovo sulla mia rete.

Supponendo che ciò sia corretto (testerò più avanti), c'è un modo per inserire questi pacchetti nella cache in modo da non doverli scaricare ancora una volta per altre macchine nella rete?


* Come notato nei commenti, potrei semplicemente fare del laptop il server proxy, ma nel mio caso specifico, il laptop è in realtà 1) una VM che non è sempre in esecuzione, 2) in un laptop che non è aperto tutto il tempo. In quanto tale, quella soluzione, sebbene valida, non funziona nel mio caso.


Dal parlarne con l'autore in passato, fare questo è sorprendentemente non banale, forse qualcuno può escogitare qualcosa di intelligente.
Jorge Castro,

Forse askubuntu.com/q/113983/8724 potrebbe essere d'aiuto. . . .
zpletan,

Questo laptop che stai utilizzando su una rete diversa, il squid-deb-proxyserver?
saji89,

@ saji89: no, tutte le macchine sono sulla stessa rete.
zpletan,

Non credo tu abbia capito la domanda che @ saji89 ha posto e ho la stessa domanda. Se si installa squid-deb-proxy sul laptop e squid-deb-proxy-client sul desktop e sul laptop, il laptop diventa il proxy e lo utilizza localmente. In quanto tale, quando sei lontano da casa, manterrà gli aggiornamenti sul laptop. Quando torni a casa, il desktop riceverà gli aggiornamenti dal laptop.
popey,

Risposte:


2

È possibile utilizzare apt-move(dal pacchetto con lo stesso nome) per creare un repository apt locale dai file nella cache apt del laptop. Quindi utilizzare rsyncper mantenere una copia sincronizzata di questo repository sulla LAN. Infine, punta le altre macchine LAN sulla tua copia LAN del repository locale nella parte superiore di sources.list, in modo che apt preferisca il repository locale rispetto a quelli remoti.


0

Questa è ancora una risposta incompleta, ma potrebbe essere la migliore risposta possibile, quindi continua a leggere se curioso di possibili soluzioni parziali / brutte / complicate.

Domanda intrigante, ho riscontrato lo stesso problema ma non l'ho mai risolto, invece provo solo a limitare il mio apt-ottenere al di fuori della mia lingua locale. Non valeva davvero la pena, al massimo ho sprecato come 20 MB nell'ultimo anno. Il mio seeding di torrent iso lo compensa. Ma!

  1. potresti impostare un tunnel / proxy tra il tuo laptop e casa per utilizzare la tua cache di casa (questa è una buona idea comunque per motivi di privacy), ma poi dipenderesti dalla tua velocità di upload. Non solo sarebbe lento, ma dovresti usare il doppio della larghezza di banda per scaricare la stessa cosa. 1x andando nella tua lan dai mirror di Ubuntu e 1x al bar.

  2. Propongo che sia possibile eseguire il server cache sul laptop e quindi utilizzare rsync per mantenerlo sincronizzato con il server di casa. Ciò presenta tuttavia un problema in quanto quando sei a casa quel server sul tuo laptop sarà ancora in esecuzione. Per far fronte a ciò ho potuto vedere due possibilità. 1. arresta il server cache sul tuo laptop mentre sei a casa 2. conserva tutte le copie memorizzate nella cache che esistono sul tuo server home anche sul tuo laptop (requisiti di spazio extra) e raggiungi questo obiettivo non solo inviando i dati memorizzati nella cache al tuo server con quando ottieni a casa con rsync, ma anche regolarmente trasferendo i dati memorizzati nella cache sul server del laptop. Nel suggerire questo ho ipotizzato che la cache di squid-deb-proxy su un server sia compatibile con un altro e che sia possibile scambiare file dentro e fuori in questo modo. Queste opzioni richiederanno sicuramente anche alcuni script.


0

Usiamo un approccio semplice e stupido: squid-deb-proxy può usare se stesso come proxy. Quindi faccio solo:

  1. Installo il software client sul server squid-deb-proxy:

    apt-get install squid-deb-proxy-client

  2. Ho creato un semplice script che elenca tutti i pacchetti installati e scarica nuovamente ogni pacchetto:

    #!/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
    

In questo modo abbiamo già una cache di base non così male.

Se desideriamo aggiungere tutti i pacchetti di un server esistente alla cache, eseguiamo semplicemente la stessa procedura 1) e 2)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.