User:Dracorp/sandbox/Offline upgrade

From ArchWiki
Jump to navigation Jump to search

Aktualizacja systemu bez dostępu do internetu

Poniższy artykuł opisze proces zaktualizowania systemu na komputerze bez dostępu do internetu. Zostanie opisany proces aktualizacji pakietów dostępnych ze standardowych repozytoriów jak i z AUR.

Dla uproszczenia dalszego procesu zakładamy, że mamy dwie maszyny:

  • host_offline - maszyna bez dostępu do internetu
  • host_online - maszyna z dostępem do internetu

Na przemian

Na początku należy zaktualizować listę dostępnych pakietów, normalnie realizowane przez polecenie pacman -Sy. Pobieramy bazy pakietów z host_online z katalogu /var/lib/pacman/sync lub bezpośrednio z serwerów:

Dla i686:

Dla x86_64:

Note: Zasadniczo wystarczą same pliki *.db

Oczywiście należy powyższą listę dostosować do repozytoriów które są wyszczególnione w /etc/pacman.conf. Pliki *.db kopiujemy do /var/lib/pacman/sync/ na host_offline i nadpisujemy stare. Następnie musimy pobrać adresy URL pakietów do aktualizacji (host_offline):

pacman -Sup --noconfirm > lista_pakietów

Mając powyższą listę, pobieramy pakiety na host_line:

wget -i lista_pakietów

A same pakiety kopiujemy do katalogu /var/cache/pacman/pkg/ na host_offline i wykonujemy polecenie pacman -Su. Ewentualnie można od razu zainstalować pakiety np. z pendrive'a pacman -U ./*.xz.

Jednokrotny proces

W tym sposobie "aktualizacja" oprogramowania odbędzie się od razu na maszynie host_online, bez naprzemiennego zmieniania maszyn.

Na początku należy przygotować "środowisko" do pracy. Kopiujemy z host_offline:

  • plik /etc/pacman.conf
  • katalog /var/lib/pacman

do np. katalogu ~/Arch/host_offline na komputerze host_online.

Na czas aktualizacji warto utworzyć alias i użyć jednej zmienne:

alias pacman-off='sudo pacman -b $CHROOT/var/lib/pacman \
--config $CHROOT/etc/pacman.conf \
--cachedir $CHROOT/var/cache/pacman/pkg \
--logfile $CHROOT/var/log/pacman/pacman.log'
CHROOT=/home/piecia/Arch/host_offline
Note: Brak lepszego pomysłu, a pacman musi być użyty z uprawnieniami roota. Zawsze można użyć yaourtAUR.
Note: Powyższe ustawienia można zweryfikować poprzez dodanie opcji -v do polecenia pacman-off
Note: Można jeszcze zmodyfikować ścieżkę do katalogu gpg: --gpgdir $CHROOT/etc/pacman.d/gnupg.

Przystępujemy do aktualizacji systemu:

$ pacman-off -Sy
$ pacman-off -Suw

Następnie kopiujemy zawartość katalogu ~/Arch/host_offline/var/{cache/pkg,lib/pacman/sync} na komputer host_offline i wykonujemy polecenie pacman -Su na host_offline.

AUR

Pobieramy skrypt z [offline-upgrade.sh] i uruchamiamy go na host_offline:

$ offline-upgrade.sh -l > lista_lokalnych_pakietow

Następnie na host_online uruchamiamy ten sam skrypt:

$ offline-upgrade.sh -i lista_lokalnych_pakietow

W katalogu export_dir zostaną wyeksportowane zbudowane pakiety, które potem można zainstalować na host_offline.

Note: Chwilowo skrypt chyba nie działa

Po więcej opcji uruchom skrypt z parametrem -h lub przeczytają ten wątek.

Zobacz także