User:Dracorp/sandbox/Offline upgrade
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:
- ftp://ftp.archlinux.org/core/os/i686/core.db.tar.gz
- ftp://ftp.archlinux.org/core/os/i686/core.db
- ftp://ftp.archlinux.org/extra/os/i686/extra.db.tar.gz
- ftp://ftp.archlinux.org/extra/os/i686/extra.db
- ftp://ftp.archlinux.org/community/os/i686/community.db.tar.gz
- ftp://ftp.archlinux.org/community/os/i686/community.db
Dla x86_64:
- ftp://ftp.archlinux.org/core/os/x86_64/core.db.tar.gz
- ftp://ftp.archlinux.org/core/os/x86_64/core.db
- ftp://ftp.archlinux.org/extra/os/x86_64/extra.db.tar.gz
- ftp://ftp.archlinux.org/extra/os/x86_64/extra.db
- ftp://ftp.archlinux.org/community/os/x86_64/community.db.tar.gz
- ftp://ftp.archlinux.org/community/os/x86_64/community.db
- ftp://ftp.archlinux.org/multilib/os/x86_64/multilib.db.tar.gz
- ftp://ftp.archlinux.org/multilib/os/x86_64/multilib.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
--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.
Po więcej opcji uruchom skrypt z parametrem -h lub przeczytają ten wątek.
Zobacz także