Difference between revisions of "User:Dracorp/sandbox/Offline upgrade"

From ArchWiki
Jump to: navigation, search
(Created page with "== Aktualizacja systemu bez dostępu do internetu == Poniższy artykuł opisze proces zaktualizowania systemu na komputerze bez dostępu do internetu. Zostanie opisany proces...")
 
(AUR)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Aktualizacja systemu bez dostępu do internetu ==
 
== 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|Official Repositories] jak i z [AUR].
+
Poniższy artykuł opisze proces zaktualizowania systemu na komputerze bez dostępu do internetu. Zostanie opisany proces aktualizacji pakietów dostępnych ze [[Official Repositories|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 {{ic|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
 +
{{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):
 +
{{bc
 +
|pacman -Sup --noconfirm > lista_pakietów}}
 +
 
 +
Mając powyższą listę, pobieramy pakiety na '''host_line''':
 +
 
 +
{{bc|
 +
wget -i lista_pakietów}}
 +
A same pakiety kopiujemy do katalogu ''/var/cache/pacman/pkg/'' na '''host_offline''' i wykonujemy polecenie {{ic|pacman -Su}}.
 +
Ewentualnie można od razu zainstalować pakiety np. z pendrive'a {{ic|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:
 +
{{bc|1=
 +
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 {{pkg|pacman}} musi być użyty z uprawnieniami roota. Zawsze można użyć {{AUR|yaourt}}.}}
 +
{{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: {{ic|--gpgdir $CHROOT/etc/pacman.d/gnupg}}.}}
 +
Przystępujemy do aktualizacji systemu:
 +
 
 +
{{bc|
 +
$ 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 {{ic|pacman -Su}} na '''host_offline'''.
 +
 
 +
=== AUR ===
 +
 
 +
Pobieramy skrypt z [[https://raw.github.com/dracorp/offline-upgrade/master/offline-upgrade.sh offline-upgrade.sh]] i uruchamiamy go na '''host_offline''':
 +
 
 +
{{bc|
 +
$ offline-upgrade.sh -l > lista_lokalnych_pakietow}}
 +
 
 +
Następnie na '''host_online''' uruchamiamy ten sam skrypt:
 +
{{bc|
 +
$ 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ą [http://archlinux.pl/forum/topic/254/ ten wątek].
  
 
== Zobacz także ==
 
== Zobacz także ==
 
* [https://wiki.archlinux.org/index.php/Offline_Installation_of_Packages Offline Installation of Packages]
 
* [https://wiki.archlinux.org/index.php/Offline_Installation_of_Packages Offline Installation of Packages]
 +
 +
<!--[[Category:Package management]]
 +
[[Category:Arch User Repository]]-->

Latest revision as of 15:00, 18 March 2013

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