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