Lustereczko, powiedz przecie… 6


Jako że opisywane przez mnie niedawno narzędzie APTonCD nie ma jeszcze opcji pozwalającej na wykonywanie kopii zdalnych repozytoriów a ja bardzo dbam o postawiony niedawno serwer, postanowiłem poszukać jakiegoś innego rozwiązania pozwalającego na potraktowanie tej maszyny pakietami z sekcji security. Poszukałem i znalazłem. Znalazłem apt-mirror.

Niewielki ten perłowy skrypt robi dokładnie to, co robić powinien: lusterkuje zawartość wybranego repozytorium lub repozytoriów. Kluczem do sukcesu jest edycja pliku /etc/apt/mirror.list, w którym określamy:

  • base_path – ścieżkę dostępu do katalogu, w którym powstanie kopia repozytorium.
  • mirror_path, skel_path, var_path – ścieżki dostępu do trzech podkatalogów którymi posiłkuje się narzędzie, tworzone – uwaga! – od zdefiniowanej powyżej ścieżki bazowej. Najlepiej zostawić to w postaci zakomentowanej, co oznacza że w podanym w base_path katalogu tworzymy trzy podkatalogi: mirror, skel i var.
  • defaultarch – tutaj definiujemy architekturę, która nas interesuje (i386, amd64 czy inną, wedle uznania).
  • nthreads – oznacza ilość wątków wget-a, w których pobierane będą pliki. apt-mirror wykorzystuje to nieocenione narzędzie do zasysania danych. Na moich nędznych 256 kb/sek nie ma sensu ustawiać tej zmiennej na więcej niż 2.

To w zasadzie wszystko. Teraz wystarczy w kolejnych liniach wymienić adresy interesujących nas repozytoriów dokładnie w takiej samej postaci, jak robimy to w /etc/apt/sources.list, czyli na przykład:

deb http://pl.archive.ubuntu.com/ubuntu edgy-security main restricted universe

Ważna uwaga: oprócz definiowania defaultarch program umożliwia tuningowanie architektur na poziomie pojedynczego repozytorium.

deb-i386 http://pl.archive.ubuntu.com/ubuntu edgy-security main restricted universe
deb-amd64 http://pl.archive.ubuntu.com/ubuntu edgy-security main restricted universe

Rozumiemy się? Świetnie.

Został jeszcze skrypt czyszczący, który na życzenie użytkownika uruchamiany jest po pobraniu całego repozytorium czy repozytoriów i który po prostu porównuje indeks zainstalowanych w systemie pakietów z tym, co znalazło się na dysku a następnie usuwa z lokalnego repozytorium wszystkie pliki nie znajdujące się w indeksie.

Repo podlegające oczyszczeniu definiujemy prosto:

clean http://ftp.us.debian.org/

Można wykluczyć z tego procesu określone katalogi:

skip-clean http://ftp.us.debian.org/debian-cd/

Jak już wyżej wspomniałem pobierałem jedynie sekcję security a i tak wyszło tego ponad 900 MB. Na szczęście pracę narzędzia można w każdej chwili przerwać przez Ctrl+C a potem bez problemu wznowić. Program jeszcze raz pobierze indeksy, ale ściąganie pakietów rozpocznie od momentu, w którym zostało zerwane połączenie.


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

6 komentarzy do “Lustereczko, powiedz przecie…

  • byte

    jang:

    Uzupełnię może 🙂 Przykładowy wpis

    deb http://192.168.1.10/ubuntu/ feisty main universe

    gdzie 192.168.1.10 to przykładowe IP serwera (w przypadku własnego komputera będzie to localhost) ubuntu to katalog, gdzie znajduje się kopia repozytorium, feisty to wersja dystrybucji, main i universe to Twoje skopiowane z internetu repozytoria.

  • jang

    Dzięki za odpowiedź.
    [quote post=”113″]Został jeszcze skrypt czyszczący, który na życzenie użytkownika uruchamiany jest po …[/quote]
    Szkoda że nie ma takiej opcji aby pobrał tylko to co jest w systemie.