Do stabilnej gałęzi systemu wydawane są co pewien czas łatki bezpieczeństwa. Ich celem jest oczywiście załatanie dziur w systemie, nie dodają one jednak żadnych nowych funkcji. Ich listę można znaleźć tutaj (dla wersji 4.8).
Pobranie źródeł systemu
Na początku potrzebny jest nam kod źródłowy systemu oraz jądra. Pliki można ściągnąć używając CVS’a lub zwyczajnie przez http/ftp. Źródła jądra znajdują się w pliku sys.tar.gz
, systemu w src.tar.gz
. Rozpakowujemy je później w katalogu /usr/src
.
root@fw-s:/>cd /usr/src root@fw-s:/usr/src>wget ftp://ftp.spline.de/pub/OpenBSD/4.8/sys.tar.gz root@fw-s:/usr/src>wget ftp://ftp.spline.de/pub/OpenBSD/4.8/src.tar.gz root@fw-s:/usr/src>tar xzf sys.tar.gz root@fw-s:/usr/src>tar xzf src.tar.gz
Teraz czas na patch’e. Linki wraz z krótkim opisem znajdują się na podanej wyżej stronie. Można też ściągnąć archiwum z wszystkimi łatkami:
root@fw-s:/usr/src>wget http://ftp.openbsd.org/pub/OpenBSD/patches/4.8.tar.gz root@fw-s:/usr/src>tar xzf 4.8.tar.gz
Łatanie jądra systemu
Jeżeli chodzi o sposób kompilacji łatek, można je podzielić na 2 grupy: te które dotyczą bezpośrednio jądra systemu, oraz te które łatają plikwać wszystkie łai binarne/biblioteki. Przykładowo patch nr.3 naprawia błąd w sterowniku vr
(karta sieciowa). Krótki opis instalacji jest dostępny na samej górze tego pliku:
Apply by doing: /usr/src patch -p0 < 003_vr.patch Then build and install a new kernel.
, więc zgodnie z insruckją:
root@fw-s:/usr/src>patch -p0 < 003_vr.patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Apply by doing: | /usr/src | patch -p0 < 003_vr.patch | |Then build and install a new kernel. | |Index: sys/dev/pci/if_vr.c |=================================================================== |RCS file: /cvs/src/sys/dev/pci/if_vr.c,v |retrieving revision 1.105 |retrieving revision 1.105.2.1 |diff -u -r1.105 -r1.105.2.1 |--- sys/dev/pci/if_vr.c 19 May 2010 15:27:35 -0000 1.105 |+++ sys/dev/pci/if_vr.c 2 Oct 2010 03:00:52 -0000 1.105.2.1 -------------------------- Patching file sys/dev/pci/if_vr.c using Plan A... Hunk #1 succeeded at 1. Hunk #2 succeeded at 1562. done
Kolejny krok to rekompilacja jądra systemu:
root@fw-s:/usr/src>cd sys/arch/i386/conf/ root@fw-s:/usr/src/sys/arch/i386/conf>/usr/sbin/config GENERIC Don't forget to run "make depend" root@fw-s:/usr/src/sys/arch/i386/conf>cd /usr/src/sys/arch/i386/compile/GENERIC root@fw-s:/usr/src/sys/arch/i386/compile/GENERIC>make clean && make depend && make .... root@fw-s:/usr/src/sys/arch/i386/compile/GENERIC>make install rm -f /obsd ln /bsd /obsd cp bsd /nbsd mv /nbsd /bsd
Na koniec trzeba ponownie uruchomić system, żeby załadować nowe jądro. W przypadku jakichkolwiek problemów, stare jądro jest dostępne jako obsd
(wystarczy wpisac obsd>
w boot-loaderze). Kompilacja zajmuje trochę czasu, więc warto przed jej wykonaniem zastosować wszystkie łatki dotyczące kernel’a.
Łatanie binarek/bibliotek
Tutaj także znajdziemy dokładny opis instalacji w pliku, przykładowo dla pierwszej łatki:
Apply by doing: cd /usr/src patch -p0 < 001_bgpd.patch Rebuild and install the bgp daemon: cd usr.sbin/bgpd make obj make depend make make install
Po skompilowaniu i zainstalowaniu patcha wystarczy jedynie zrestartować odpowiednią aplikacje/daemona (jeżeli z niego korzystamy).
0 Komentarze.