Czasami trzeba zaktualizować system (lub doinstalować pojedyncze pakiety) na komputerze bez lub z ograniczonym dostępem do sieci. W takiej sytuacji pomocny będzie program apt-offline [1]. Może on wygenerować listę pakietów lub plików ze spisem zawartości repozytorium (pobieranych przez APT podczas akcji update) na jednym komputerze, a następnie zainstalować je po uprzednim pobraniu na innym.

Posiada interfejs tekstowy oraz graficzny (po doinstalowaniu apt-offline-gui [2]; zostanie opisany wkrótce). Program apt-offline zgodny jest z narzędziem apt-get — przetwarzanie zależności takie jak w aptitude nie jest dostępne.

W dalszej części tego tekstu komputer odłączony od sieci, na którym chcemy zaktualizować system, będzie określany jako A, komputer z dostępem do internetu będzie nazywany B.

Opisane tu zostały jedynie podstawowe opcje. Więcej informacji na temat apt-offline można znaleźć w podręczniki systemowym apt-offline(8).

1. Aktualizacja źródeł APT-a (apt-get update)

Najpierw należy zaktualizować źrodła APT-a (odpowiednik apt-get update). W tym celu należy wykonać na komputerze A:

apt-offline set apt-offline.sig --update

W pliku apt-offline.sig zostanie utworzona tzw. sygnatura, czyli lista plików do pobrania. Następnie można pobrać i wczytać indeksy zgodnie z opisami w częściach 3 i 4.

Jeśli komputer A ma dostęp do sieci (jedynie chcemy uniknąć pobierania dużej ilości danych, jaką są same pakiet DEB), można pominąć ten krok i wykonać normalnie apt-get/aptitude update (ilość pobranych danych będzie stosunkowo niewielka).

2. Ustalanie listy pakietów do pobrania

Kiedy na komputerze A mamy już aktualne indeksy pakietów dostępnych w repozytoriach, możemy wygenerować listy pakietów do pobrania.

2.1. Aktualizacja systemu (apt-get upgrade/dist-upgrade)

Aby wykonać bezpieczną aktualizację systemu (odpowiednik apt-get upgrade) należy wykonać na komputerze A:

apt-offline set apt-offline.sig --upgrade

Zaś aby wykonać pełną aktualizację (odpowiednik apt-get dist-upgrade):

apt-offline set apt-offline.sig --upgrade --upgrade-type dist-upgrade

Następnie można pobrać i zainstalować pakiety zgodnie z opisami w częściach 3 i 4.

2.2. Instalowanie wybranych pakietów (apt-get install)

Aby doinstalować tylko wybrane pakiety (odpowiednik apt-get install pakiet1 pakiet2) należy wykonać na komputerze A:

apt-offline set apt-offline.sig --install-packages pakiet1 pakiet2 pakiet3

Następnie można pobrać i zainstalować pakiety zgodnie z opisami w częściach 3 i 4.

3. Pobieranie pakietów

Plik z sygnaturą przenosimy na komputer B, na którym wykonujemy:

apt-offline get apt-offline.sig -d katalog

To pobierze do wskazanego katalogu pakiety (lub indeksy pakietów) zapisane w sygnaturze. Można również je zapisać w pojedynczym archiwum ZIP — zamiast -d katalog należy wtedy wpisać --bundle plik.zip.

4. Instalowanie pakietów

Pobrane pakiety (lub indeksy pakietów) przenosimy na komputer A i wczytujemy je (zależnie od tego czy pobraliśmy dane do katalogu, czy do archiwum):

apt-offline install katalog
apt-offline install plik.zip

Aby zainstalować pakiety można również po prostu przenieść je do /var/cache/apt/archives/ i skorzystać z apt-get/aptitude.

5. Pobieranie danych bez użycia apt-offline

Jeśli na komputerze B jest Debian (lub jego pochodna) bardzo łatwo można zainstalować na nim apt-offline. Jeśli nie — nadal jest to możliwe (program napisany został w Pythonie, zatem jest wieloplatformowy), choć może być nieco trudniejsze.

Dlatego dla wygody można przerobić sygnaturę tworzoną przez apt-offline, aby pobrać dane dowolnym menedżerem pobierania (tutaj korzystamy z wgeta, inne nie powinny stanowić problemu):

cut -d\' -f2 apt-offline.sig >lista.txt

Aby pobrać pliki wgetem wystarczy wykonać:

wget -c -P katalog -i lista.txt

Należy jednak zauważyć, że apt-offline podczas pobierania wykonuje również inne czynności (np. sprawdza sumy kontrolne pakietów). W powyższej sytuacji tracimy te funkcje.

5.1. Windows

O ile systemy uniksowe nie stanowią problemu, Windows jest nieco bardziej kłopotliwy, ponieważ domyślnie nie posiada żadnego menedżera pobierania. Najprościej (nie trzeba niczego instalować na komputerze) będzie skorzystać z windowsowej wersji wgeta: pobieramy do katalogu z plikiem lista.txt wget.exe ze strony users.ugent.be/~bpuype/wget/ [3], następnie w tym samym katalogu tworzymy skrypt pobierz_lista_txt.bat o treści:

wget.exe -c -P katalog -i lista.txt
pause

Aby zacząć pobieranie uruchamiamy go dwuklikiem.

Należy również pamiętać, aby przekonwertować w pliku lista.txt znaki końca linii na te używane w Windows:

unix2dos lista.txt

Przypisy:

  1. http://packages.debian.org/apt-offline
  2. http://packages.debian.org/apt-offline-gui
  3. http://users.ugent.be/~bpuype/wget/