Jak dodać pakiety do pamięci podręcznej squid-deb-proxy?


10

Aby zaoszczędzić przepustowość i dane w moim abonamencie internetowym, zainstalowałem squid-deb-proxy na pulpicie, a na nim klienta i kilka innych maszyn, które mam. Jednak w oparciu o post, który mnie do tego wprowadził, wygląda na to, że jeśli zabiorę laptopa * do innej sieci i tam go zaktualizuję, pobrane aktualizacje NIE zostaną automatycznie skopiowane z powrotem na serwer squid-deb-proxy, gdy otrzymam z powrotem w mojej sieci.

Zakładając, że jest to poprawne (będę testował później), czy istnieje sposób, aby włożyć te pakiety do pamięci podręcznej, aby nie musiałem ich pobierać jeszcze raz na inne maszyny w sieci?


* Jak zauważono w komentarzach, mogę po prostu uczynić laptopa serwerem proxy, ale w moim konkretnym przypadku laptop to tak naprawdę 1) maszyna wirtualna, która nie działa cały czas, 2) w laptopie, który nie jest cały otwarty czas. Jako takie rozwiązanie, choć dobre, nie działa w moim przypadku.


Z rozmowy z autorem na ten temat w przeszłości robienie tego jest zaskakująco nietrywialne, może ktoś może jednak wymyślić coś sprytnego.
Jorge Castro,

Być może może pomóc askubuntu.com/q/113983/8724 . . . .
zpletan

Czy ten laptop, którego używasz w innej sieci, na squid-deb-proxyserwerze?
saji89

@ saji89: nie, wszystkie maszyny są w tej samej sieci.
zpletan

Nie sądzę, że zrozumiałeś pytanie @ saji89 i mam to samo pytanie. Jeśli zainstalujesz squid-deb-proxy na laptopie i squid-deb-proxy-client na pulpicie i laptopie, wówczas laptop staje się proxy i używa proxy lokalnie. W związku z tym, gdy jesteś poza domem, będzie aktualizować na laptopie. Po powrocie do domu komputer otrzyma aktualizacje z laptopa.
popey

Odpowiedzi:


2

Możesz użyć apt-move(z pakietu o tej samej nazwie), aby utworzyć lokalne repozytorium apt z plików w pamięci podręcznej apt laptopa. Następnie użyj, rsyncaby zachować zsynchronizowaną kopię tego repozytorium w sieci LAN. Na koniec skieruj inne maszyny LAN na twoją kopię LAN lokalnego repozytorium na górze sources.list, aby apt wolał lokalne repozytorium od zdalnych.


0

To wciąż jest niepełna odpowiedź, ale może to być najlepsza możliwa odpowiedź, więc czytaj dalej, jeśli jesteś ciekawy możliwych częściowych / brzydkich / skomplikowanych rozwiązań.

Intrygujące pytanie, napotkałem ten sam problem, ale nigdy go nie naprawiłem, zamiast tego po prostu staram się ograniczyć moje apt-get poza moją lokalną siecią LAN. To naprawdę nie było warte kłopotów, co najwyżej zmarnowałem około 20 MB w ciągu ostatniego roku. Nadrabia to mój iso torrent seeding. Ale!

  1. możesz skonfigurować tunel / serwer proxy między laptopem a domem, aby korzystać z domowej pamięci podręcznej (i tak jest to dobry pomysł ze względu na prywatność), ale wtedy byłbyś zależny od prędkości wysyłania. Byłoby to nie tylko wolne, ale użyłbyś 2x przepustowości, aby pobrać to samo. 1x pójście do twojej sieci LAN z luster Ubuntu i 1x wyjście do kawiarni.

  2. Proponuję, aby możliwe było uruchomienie serwera pamięci podręcznej na laptopie, a następnie użycie rsync do synchronizacji z serwerem domowym. Stanowi to jednak problem, ponieważ gdy jesteś w domu, serwer na twoim laptopie nadal będzie działał. Aby sobie z tym poradzić, widziałem dwie możliwości. 1. zatrzymaj serwer pamięci podręcznej na swoim laptopie, gdy jesteś w domu 2. zachowaj wszystkie buforowane kopie, które istnieją na twoim serwerze domowym również na twoim laptopie (dodatkowe miejsce) i osiągnij to, nie tylko wypychając buforowane dane na serwer, kiedy otrzymasz home z rsync, ale także regularnie ściągając buforowane dane na serwer laptopa. Sugerując to, założyłem, że pamięć podręczna squid-deb-proxy na jednym serwerze jest kompatybilna z innym i że możesz w ten sposób wymieniać pliki. Te opcje z pewnością również wymagają trochę skryptów.


0

Używamy prostego i głupiego podejścia: squid-deb-proxy może używać się jako proxy. Dlatego po prostu robię:

  1. Instaluję oprogramowanie klienckie na serwerze squid-deb-proxy:

    apt-get install squid-deb-proxy-client

  2. Stworzyłem prosty skrypt, który wyświetla listę wszystkich zainstalowanych pakietów - i ponownie pobieram każdy pakiet:

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

W ten sposób mamy już niezłą podstawową pamięć podręczną.

Jeśli chcielibyśmy dodać wszystkie pakiety istniejącego serwera do pamięci podręcznej, wykonujemy tę samą procedurę 1) i 2)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.