User:Dracorp/sandbox/Offline upgrade

From ArchWiki
< User:Dracorp‎ | sandbox
Revision as of 14:59, 18 March 2013 by Dracorp (Talk | contribs) (AUR)

Jump to: navigation, 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 wykonujemy polecenia 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.

Zobacz także