
                        Używanie APT w trybie offline


-----------------------------------------------------------------------------
                                      
                               Jason Gunthorpe

                              <jgg@debian.org>

                                Version 3.2.0

-----------------------------------------------------------------------------

Copyright © 1999 Jason Gunthorpe

License Notice

    "APT" i ten dokument są oprogramowaniem wolnodostępnym, które można
    rozpowszechniać oraz zmieniać zgodnie z postanowieniami drugiej albo
    (wedle uznania) dowolnej późniejszej wersji "Ogólnej Licencji Publicznej
    GNU" (GNU General Public License) publikowanej przez "Fundację Wolnego
    Oprogramowania (Free Software Foundation).

    Więcej szczegółów można uzyskać, przeglądając plik zawierający pełen
    tekst licencji (w systemach Debian jest to plik /usr/share/
    common-licenses/GPL).

Abstrakt

Dokument ten opisuje używanie programu APT w środowiskach pozbawionych
dostępu, do sieci, a w szczególności metodę pozwalającą na przeprowadzanie
aktualizacji systemu.

-----------------------------------------------------------------------------

Spis treści

1. Wstęp
    1.1. Wprowadzenie
2. Używanie programu APT na obu komputerach
    2.1. Wprowadzenie
    2.2. Plik konfiguracyjny
3. Używanie programów APT i wget
    3.1. Wprowadzenie
    3.2. Kolejne kroki

Rozdział 1. Wstęp

Spis treści

1.1. Wprowadzenie

1.1. Wprowadzenie

    Zazwyczaj APT wymaga bezpośredniego dostępu do archiwów Debiana przez
    sieć lokalną albo przez sieć internetową. Kolejną niedogodnością może być
    fakt, że nasz komputer, który pracuje na powolnym łączu takim jak modem,
    jest znacznie oddalony od innego komputera z szybkim łączem.

    Rozwiązaniem tego problemu jest użycie pojemnych przenośnych nośników
    takich jak dyskietka Zip lub dysk SuperDisk. Nośniki te nie są
    wystarczająco pojemne, by zgromadzić kompletne archiwum Debiana, ale
    można śmiało dopasować podzbiór dużego archiwum wystarczający dla
    większości użytkowników. Pomysł polega na tym, by użyć programu APT do
    wygenerowania listy pakietów, które są wymagane, a następnie pobraniu ich
    na dysk, używając innego komputera z właściwą zwartością. Jest nawet
    możliwe, by użyć innego komputera z Debianem z zainstalowanym programem
    APT lub zupełnie innym systemem operacyjnym i programem narzędziowym do
    pobierania plików takim jak wget.

    This is achieved by creatively manipulating the APT configuration file.
    The essential premise to tell APT to look on a disc for it's archive
    files. Note that the disc should be formatted with a filesystem that can
    handle long file names such as ext2, fat32 or vfat.

Rozdział 2. Używanie programu APT na obu komputerach

Spis treści

2.1. Wprowadzenie
2.2. Plik konfiguracyjny

2.1. Wprowadzenie

    APT dostępny na obu komputerach daje najprostszą kombinację. Zasadniczym
    pomysłem tej metody jest umieszczenie kopii pliku status na dysku i
    użycie odległego komputera, aby uzyskać najnowsze pliki pakietów i
    zdecydować, które pakiety trzeba pobrać. Struktura katalogów na dysku
    powinna wyglądać następująco:

      /disc/
        archives/
           partial/
        lists/
           partial/
        status
        sources.list
        apt.conf

2.2. Plik konfiguracyjny

    Plik konfiguracyjny powinien informować program APT, aby przechowywał
    swoje pliki na dysku, a także używał plików konfiguracyjnych z dysku.
    Plik sources.list powinien zawierać prawidłowe odnośniki, których należy
    użyć na zdalnym komputerze, a plik status powinien być kopią /var/lib/
    dpkg/status. Należy zauważyć, że podczas używania lokalnego archiwum
    trzeba użyć tych samych odnośników o identycznej składni.

    apt.conf musi zawierać niezbędne wpisy, by APT korzystał z dysku:

     APT
     {
       /* Wpis nie jest wymagany, jeśli oba komputery mają tę samą architekturę;
        podaje architekturę naszego komputera programowi APT na odległym komputerze */
       Architecture "i386";

       Get::Download-Only "true";
     };

     Dir
     {
       /* Używaj katalogu disc na informacje stanu i przekieruj plik status
          z domyślnego /var/lib/dpkg */
       State "/disc/";
       State::status "status";

       // Katalog lokalnie przechowywanych pakietów binarnych
       Cache::archives "/disc/archives/";
       Cache "/tmp/";

       // Lokalizacja pliku sources.list.
       Etc "/disc";
     };

    Więcej szczegółów można zobaczyć w stronie podręcznika apt.conf i w
    przykładowym pliku konfiguracyjnym /usr/share/doc/apt/examples/apt.conf.

    Pierwszą rzeczą, jaką należy zrobić na oddalonym komputerze z Debianem to
    zamontować dysk i przekopiować na niego plik /var/lib/dpkg/status. Trzeba
    także utworzyć strukturę katalogów przedstawioną we "Wprowadzeniu": 
    archives/partial/ i lists/partial/. Następnie należy przenieść dysk do
    oddalonego komputera z szybkim łączem i skonfigurować plik sources.list.
    Na oddalonym komputerze wykonujemy kolejno:

     # export APT_CONFIG="/disc/apt.conf"
     # apt-get update
     [ APT aktualizuje ustawienia ]
     # apt-get dist-upgrade
     [ APT pobiera wszystkie pakiety potrzebne do aktualizacji Twojego systemu ]

    Polecenie dist-upgrade można zastąpić każdym innym podstawowym poleceniem
    APT, w szczególności dselect-upgrade. Można nawet użyć APT jako metody
    dostępu dla dselect. Jednak stworzy to problem w przeniesieniu Twoich
    operacji wyborów z powrotem na lokalny komputer.

    W tej chwili katalog disc zawiera wszystkie pliki indeksowe oraz archiwa
    niezbędne do aktualizacji maszyny z Debianem. Bierzemy dysk z powrotem do
    siebie i wpisujemy:

      # export APT_CONFIG="/disc/apt.conf"
      # apt-get check
      [ APT tworzy lokalną kopię plików cache ]
      # apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade
      [ Może też być inne polecenie programu APT ]

    Do prawidłowego działania koniecznie należy podać plik status z lokalnej
    maszyny. To jest bardzo ważne!

    Jeśli używasz dselect, możesz wykonać bardzo ryzykowną operację
    skopiowania disc/status do /var/lib/dpkg/status, tak że wszystkie zmiany,
    których dokonałeś na odległym komputerze, będą przeniesione. Mocno
    zalecam, aby dokonywać doboru pakietów tylko na lokalnym komputerze, ale
    nie zawsze jest to możliwe. NIE podmieniaj pliku status, jeśli dpkg lub
    APT były uruchamiane w międzyczasie!

Rozdział 3. Używanie programów APT i wget

Spis treści

3.1. Wprowadzenie
3.2. Kolejne kroki

3.1. Wprowadzenie

    wget jest popularnym i przenośnym programem narzędziowym pobierania
    plików, który działa prawie na każdym komputerze. W przeciwieństwie do
    metody opisanej powyżej ta wymaga, aby na lokalnym komputerze była
    aktualna lista dostępnych pakietów.

    Należy stworzyć katalog disc tylko na pakiety do pobrania z innego
    komputera. Użyta zostanie do tego opcja --print-uris programu apt-get, a
    następnie przygotujemy skrypt dla programu wget, który pobierze właściwe
    pakiety.

3.2. Kolejne kroki

    W odróżnieniu od poprzedniej metody działania ta nie wymaga specjalnych
    plików konfiguracyjnych. Używamy jedynie podstawowych poleceń APT, by
    wygenerować listę plików.

     # apt-get dist-upgrade
     [ Wybierz "no" po znaku zachęty, upewnij się, czy to właściwy wybór ]
     # apt-get -qq --print-uris dist-upgrade > uris
     # awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script

    Można tu użyć także polecenia innego niż dist-upgrade, na przykład
    dselect-upgrade.

    Plik skryptu /disc/wget-script będzie teraz zawierać listę wywołań
    programu wget, niezbędnych do pobrania potrzebnych archiwów. Skrypt ten
    należy uruchomić w bieżącym katalogu o punkcie montowania disc, tak aby
    zapisywał dane na tym dysku.

    Na oddalonym komputerze należy wykonać coś takiego

      # cd /disc
      # sh -x ./wget-script
      [ czekaj.. ]

    Gdy archiwa zostaną pobrane i dysk wróci do komputera z Debianem,
    instalowanie można prowadzić dalej poleceniem:

      # apt-get -o dir::cache::archives="/disc/" dist-upgrade

    Które użyje pobranych uprzednio archiwów z dysku.

