It's a star sign, not disease ;)
In: Job / Praca|NetBSD
28 maj 2007Jeśli jesteś tu pierwszy raz być może warto dodać mój kanał RSS lub zasubskrybować nowości przez e-mail. Dzięki za odwiedziny!
Update paczek w NetBSD to temat rzeka, jest kilka programów w samym pkgsrc (pkg_chk, pkgmanager), jednak zawsze wiąże się to z ryzykiem odinstalowania paczki i błędem przy kompilacji (czasem bardzo długotrwałej) nowej. Dlatego też poniżej opiszę moim zdaniem najbezpieczniejszy sposób update’u. Zakładam, że masz działające NetBSD z jakimiś tam paczkami.
Co nam będzie potrzebne:
1. pkg_chk
2. pkg_comp
3. pkg_tarup
4. audit-packages
5. setsy z nasza wersją NetBSD
Howto:
1. Instalujemy to co w punktach 1,2,3,4 akapit wyżej w standardowy sposób:
1 2 3 4 | cd /usr/pkgsrc/pkgtools/pkg_chk && make install clean cd /usr/pkgsrc/pkgtools/pkg_comp && make install clean cd /usr/pkgsrc/pkgtools/pkg_tarup && make install clean cd /usr/pkgsrc/security/audit-packages && make install clean |
2. Sciagamy najnowsze vulnerability-list
1 | download-vulnerability-list |
3. Tworzymy wzór konfiguracji pkg_comp (domyślnie w $HOME/pkg_comp)
1 2 | pkg_comp maketemplate pkg_comp: /usr/home/cancer/pkg_comp/default.conf created. Edit the file by hand now. |
4. Domyślne ustawienia w większości są w porządku, odnajdź tylko linijkę DISTRIBDIR=”/var/pub/NetBSD” i zmień scieżkę na taką gdzie będziesz trzymał setsy, ja to wrzucam zaraz obok configa czyli w moim przypadku linijka ta wygląda tak:
1 | DISTRIBDIR="/usr/home/cancer/pkg_comp" |
Ważne aby katalog nie kończył się slashem i aby w katalogu pkg_comp znajdował się katalog binary (nie sets, ani i386 ani nic podobnego)
5. Sciagamy z ftp.netbsd.org setsy dla właściwej wersji NetBSD czyli dla currenta np (stan na dzien 28 maja 2007)
1 | wget -r ftp.netbsd.org/pub/NetBSD-daily/HEAD/200705240000Z/i386/binary/ |
Po ściągnięciu robimy porządek (ponieważ w $HOME/pkg_comp będzie cała scieżka do binary a nie sam binary ;)
6. Jeśli do tej pory wszystko jest dobrze to powinno nam się teraz utworzyć środowisko w którym będziemy budować swoje nowe paczki bez konfliktu z istniejącymi.
1 | pkg_comp makeroot |
Po tym poleceniu nastąpi utworzenie katalogu w /var/chroot, zostaną tam rozpakowane setsy i zainstalowane podstawowe programy (digest).
7. Właściwie można by juz teraz zacząć budować paczki, ale przed tym zróbmy backup obecnie zainstalowanych (ostrożności nigdy za wiele)
1 2 3 4 | cd mkdir backup cd backup pkg_tarup -d ./ \* |
Ostatnie polecenie stworzy nam *.tgz ze wszystkich zainstalowanych w naszym systemie programów w katalogu w którym akurat się znajdujemy.
8. Sprawdzamy co wymaga update’u…
1 | pkg_chk -i |
9. … i budujemy nową paczke (załóżmy że będzie to tcsh)
1 | pkg_comp build shells/tcsh |
Budowa paczki z pkg_comp wygląda mniej więcej tak samo jak instalowanie z pkgsrc z tą różnicą, że dostajemy gotową paczkę *.tgz do zainstalowania przez pkg_add. Gotowe paczki znajdują się w /usr/pkgsrc/packagaes/All.
10. Update’ujemy tcsh.
pkg_info | grep tcsh
cd /usr/pkgsrc/packages/All
pkg_add -u tcsh.tgz
pkg_info | grep tcsh
Oczywiście pierwszą i ostatnia linijkę można pominąć, służą one tylko do pokazania wersji i zweryfikowaniu czy update nam zadziałał. tcsh.tgz również będzie nazywało sie inaczej, ale piszę to z pamięci więc tylko taki przykład :)
I to by było na tyle, w razie problemów proszę o maila lub można mnie złapać na ircu.
Popularity: 9% [?]
Viewed 64 times by 40 viewers
Witaj czytelniku! Nazywam się Bartosz Maciejewski i jestem Administratorem sieci oraz systemów UNIX/Windows. Na moim blogu znajdziesz zatem wpisy dotyczące głównie tej tematyki. Od czasu do czasu pisuję też bardziej prywatnie zwłaszcza o mojej córce Tosi Miłego Czytania! EOF ;)
3 Komentarzy to pkg_comp czyli Bezpieczny update paczek w NetBSD
Damian
Lipiec 3rd, 2007 at 1:14 pm
Czesc!
Napisze po angliesku, bo moj polski jest troche „rusty” ;-)
Thanks for the great article! But I have one question: How do you update packages then? Let’s say you compiled apache, and a few weeks later there’s a new version out there. If I run again pkg_comp build www/apache2 it complains that it was already installed. The way I am doing it right now is to pkg_comp chroot deinstall apache, exit chroot and pkg_comp build… again. Maybe you know a better way?
Dziekuje, i pozdrowienia!
Damian
Kazelulu
Sierpień 15th, 2008 at 9:10 am
Hi webmaster!
stephanazs
Wrzesień 20th, 2008 at 6:28 pm
Interesting facts.I have bookmarked this site. stephanazs