czwartek, 20 listopada 2008 
Start arrow FreeBSD arrow PORTY I PACZKI arrow Portupgrade
Menu BSD4u
FreeBSD
OpenBSD
NetBSD
Dla *BSD
FAQ BSD4u
Forum BSDGuru.org
Security Advisory
Licencje
Images BSD
Menu ogólne
Start
Aktualności
Download
Sondy
Szukaj
Linki
Książki
About BSD4u
Info
Team BSD4u
Regulamin
Kanał #BSD4u
Kontakt
Sondy
Co sądzisz o naszym nowym Projekcie, i jak oceniasz zmianę koncepcji Projektu?
 
Popularne
Kompilacja i konfigu...
SQUID - najpopularni...
Neostrada+ i modem ...
NATowanie czyli jak ...
Samba - serwer plikó...
Upgrade systemu
Apache (konfiguracja...
Praktyczne IPFW
MRTG - statystyki ru...
CVSup - pomocny podc...
Neostrada na modemie...
Postfix z autoryzacj...
Postfix - bezpieczny...
System Portów (Kolek...
Dummynet - dzielenie...
Top Download
File icon Postfix - "Krok po kroku" v1.16694
File icon Postfix - "Krok po kroku" v1.06601
File icon PPTPd - "Prosty i szybki VPN" v1.0b6066
File icon sdi.sh3842
File icon uEagle 1.0p12963
File icon named.sh2908
File icon uEagle 0.99b2864
File icon cs.sh2785
File icon uEagle 1.02752
File icon uEagle 1.12555
Ostatnie komentarze
transparent a virus...
Dodał: grzywka18
Dnia: 2008-05-13 11:19:58
hmm
Dodał: dzibi
Dnia: 2007-12-12 10:01:14
Bez tytułu
Dodał: grzywka18
Dnia: 2007-12-11 17:46:06
Bez tytułu
Dodał: termid
Dnia: 2007-05-09 18:01:11
Bez tytułu
Dodał: sarelo33
Dnia: 2006-12-30 23:50:14
Jest ok ale..
Dodał: theviant
Dnia: 2006-11-16 08:10:05
Google

Google


Newsletter
Zapisz się na nasz newsletter, jeżeli chcesz być na bieżąco informowany o aktualnościach..




Portupgrade - aktualizacja i zarz?dzanie portami we FreeBSD Drukuj E-mail
Oceny: / 15
KiepskiBardzo dobry 
piątek, 08 kwietnia 2005 - Napisał: Artur Zdoliński (18049 odsłon)

Portupgrade jest to narzędzie zarządzające portami/paczkami w naszym systemie. Dowiemy się z niego jak w prosty i szybki sposób aktualizować już zainstalowane porty/paczki, jak sprawdzać "świeżość" naszych programów oraz jak instalować nowe porty/paczki poprzez portupgrade itp. Opracowanie to ma przedstawić w obrazowy i prosty sposób zarządzanie, aktualizację i wyszukiwania informacji w portach dla systemu FreeBSD.

Aktualizacja i zarządzanie portami FreeBSD - „Krok po kroku” v.1.0

Copyright @ 2004-10-10 Warszawa Zdolny

Od autora…

Opracowanie to ma przedstawić w obrazowy i prosty sposób zarządzanie, aktualizację i wyszukiwania informacji w portach dla systemu FreeBSD. Opracowanie to może być rozpowszechniane bez ograniczeń jednakże musi być nieodpłatne i nie komercyjne.

Autorzy:
- KaCzY - kaczy(AT)xl.wp.pl
- Kulda Artur - arti(AT)bsd4u.org
- Zdoliński Artur - zdolny(AT)poczta.onet.pl (opracowanie całości)

Aktualizacja drzewa portów przy użyciu cvsup

http://tlumaczenie.freebsd.pl/doc/pl_PL.ISO8859-2/books/handbook/cvsup.html

Instalacja:

# cd /usr/ports/net/cvsup-without-gui
# make install clean

CVSup można wykorzystać do dwóch rzeczy - aktualizacji systemu operacyjnego jak i kolekcji portów. Tutaj zademonstruje jak w łatwy i dość szybki sposób uaktualnić drzewo portów.

Tworzymy plik ports-supfile
# touch /root/ports-supfile
# ee /root/ports-supfile

Ten plik pozwoli nam na aktualizacje całego drzewa, lecz jak widać, możliwa jest aktualizacja poszczególnych gałęzi z osobna:

--- ports-supfile ---

# Hosty dla Polski:
# cvsup.pl.FreeBSD.org
# cvsup2.pl.FreeBSD.org
# cvsup3.pl.FreeBSD.org
*default host=cvsup.pl.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress

## Ports Collection.
ports-all

--- end ports-supfile ---

Oryginalny plik powinien znajdować się pod adresem /usr/share/examples/cvsup/ports-supfile

Zwróć uwagę, że =. (kropka) w linii z release=cvs tag jest ważna, więc upewnij się czy i twój plik tez ją posiada.

Następnie wydajemy polecenie:

# cvsup -g -L 2 /root/ports-supfile

No i trochę sobie poczekamy…

Portupgrade

Jest to narzędzie zarządzające portami/paczkami w naszym systemie. Dowiemy się z niego jak w prosty i szybki sposób aktualizować już zainstalowane porty/paczki, jak sprawdzać "świeżość" naszych programów oraz jak instalować nowe porty/paczki poprzez portupgrade itp.

Instalacja portupgrade

Tak jak w przypadku innych portów tak i tu, aby zainstalować portupgrade wystarczy przejść do jego katalogu i wydać polecenie:

# cd /usr/ports/sysutils/portupgrade
# make install clean

Użyjmy sztuczki i sprawdźmy, które manuale, a w związku z tym i narzędzia zostały zainstalowane:

# pkg_info -xL portupgrade | grep man
/usr/local/man/man1/pkg_deinstall.1.gz
/usr/local/man/man1/pkg_fetch.1.gz
/usr/local/man/man1/pkg_glob.1.gz
/usr/local/man/man1/pkg_sort.1.gz
/usr/local/man/man1/pkgdb.1.gz
/usr/local/man/man1/portcvsweb.1.gz
/usr/local/man/man1/portsclean.1.gz
/usr/local/man/man1/portsdb.1.gz
/usr/local/man/man1/portupgrade.1.gz
/usr/local/man/man1/portversion.1.gz
/usr/local/man/man5/pkgtools.conf.5.gz
/usr/local/man/man1/pkg_which.1.gz
/usr/local/man/man1/portinstall.1.gz
/usr/local/man/man1/ports_glob.1.gz

Najwyższa pora poświęcić trochę czasu i przejrzeć te manuale. Będziesz miał obraz jak potężna i elastyczna jest kolekcja portów i odkryjesz sztuczki o których nigdy nie miałeś pojęcia. Jednakże, nie przerażaj się, jeśli czujesz się odrobinę przytłoczony ilością dostępnych informacji.

Na początek przyjrzymy się strukturze portów, gdzie one lezą w systemie i jak utrzymać ich aktualność.

Kiedy instalowałeś FreeBSD i zdecydowałeś się, że chcesz zainstalować kolekcję portów, to katalog /usr/ports/, jego zawartość została utworzone tak jak sobie tego zażyczyłeś. Jeśli wylistujesz zawartość katalogu /usr/ports spostrzeżesz, że kolekcja ta podzielona jest na podkatalogi tworzące logiczne kategorie. Jak chociażby podkatalogi dla mail, www i databases. Każdy podkatalog zawiera podkatalog dla odpowiednich aplikacji, więc www ma podkatalogi dla mozilla i lynx. Każdy z tych katalogów zawiera informacje potrzebne do zainstalowania tej konkretnej aplikacji. Na przykład:

# ls -F /usr/ports/www/mozilla
Makefile distinfo pkg-descr pkg-message
README.html files/ pkg-descr.gtk2

Kolekcja portów jest ciągle poddawana procesowi aktualizacji. Nowe porty dodawane są regularnie, zwykle codziennie. Jeśli jesteś ciekawski i chcesz zobaczyć rozkład kiedy i jakie porty zostały dodane, http://www.freshports.org/ stanie się nieocenionym źródłem informacji dla ciebie.

Bardzo dobrze jest mieć taką dynamiczną kolekcję portów, ale oznacza to, że twoje drzewko portów - tzn. struktura katalogów /usr/ports - może szybko się zdezaktualizować. Aby utrzymać ją w synchronizacji ze zmianami i być pewnym, że zawsze masz możliwość zbudowania jakiegokolwiek portu trzeba zastosować cvsup.

Synchronizacja drzewa portów

Polecenie cvsup ściągnie wszystkie najnowsze kawałki z kolekcji portów i dodaje je do twojego drzewa portów – to już wiemy. Jest to tego typu komenda, z której uzyskamy wymierne korzyści jeśli będziemy ją odpalać codziennie, więc być może zechcesz ją dodać jako zadanie dla cron'a (będzie odpalane codziennie o 2.00 w nocy):

# ee /etc/crontab

--- crontab ---

0  2  *  *  *  root  /usr/local/bin/cvsup -g -L 2 /root/ports-supfile > /dev/null 2>&1

--- end crontab ---

Proces cvsup również uaktualni plik /usr/ports/INDEX (jak i /usr/ports/INDEX-5 niezależnie czy korzystamy z gałęzi 4.X czy 5.X). Plik ten zawiera całą listę portów. Aby sprawdzić jak bardzo aktualne mamy porty, skorzystaj z polecenia:

# ls -l /usr/ports/INDEX

UWAGA! - Bazowanie na tym odczycie nie jest najlepszym wyjściem - INDEX{-5} jest uaktualniany tylko 2 razy w miesiącu, a zmiany w kolekcji portów są nanoszone codziennie (sami możemy sobie wygenerować ten indeks kiedy tylko chcemy przy pomocy polecenia portsdb -U)

Przykład:

# ls -l /usr/ports/INDEX
-rw-r--r-- 1 root wheel 4251062 15 Lis 2003 /usr/ports/INDEX

Na tej maszynie INDEX jest z dnia 15 listopada i od czasu instalacji systemu nie był aktualizowany. Jeśli porównam to do pliku po aktualizacji, możemy zobaczyć różnicę:

# ls -l /usr/ports/INDEX
-rw-r--r-- 1 root wheel 5089899 30 Sie 2004 /usr/ports/INDEX

Widać ze rozmiar pliku, a w związku z tym ilość portów wzrosła znacznie w przeciągu niecałego roku.

Aktualizacja zainstalowanych portów

portsdb -Uu

Parametry:

-U – generuje /usr/ports/INDEX
-u – generuje /usr/ports/INDEX.db

Po każdym cvsup, odpal polecenie:

# portsdb -Uu
Updating the ports index ... Generating INDEX.tmp - please wait.. Done.
[Updating the portsdb <format:bdb1_btree> in /usr/ports ... - 13677 port entries found
.........1000.........2000.........3000.........4000.........5000.........6000........
.7000.........8000.........9000.........10000.........11000.........12000.........13000
...........done]

Gdy pierwszy raz skorzystasz z tego polecenia zostanie utworzona baza INDEX.db w katalogu /usr/ports. Ta baza będzie uaktualnia za każdym razem, gdy powtórzysz polecenie portsdb po świeżej operacji cvsup. Jeśli skorzystasz z narzędzia file, zobaczysz, że nie będziesz mógł przejrzeć zawartości INDEX.db (w przeciwieństwie do /usr/ports/INDEX{-5}), ponieważ nie jest to zwykły plik ASCII:

# file /usr/ports/INDEX.db
/usr/ports/INDEX.db: Berkeley DB 1.85/1.86 (Btree, version 3, native byte-order)

Jednak kilka narzędzi z pakietu portupgrade będzie korzystać z tej bazy. Btree wskazuje na typ bazy, której algorytmy zostały zaprojektowane do szybkiego przeszukiwania dużych ilości danych. Jest to idealne rozwiązanie dla opasłej kolekcji portów - przekonamy się ze niektóre narzędzia portupgrade są szybsze i bardziej wydajne niż narzędzia z base systemu, to właśnie z powodu Btree.

Musisz wykazać się odrobiną cierpliwości bo portsdb potrzebuje chwilki czasu, aby zakończyć swoje działanie. Gdy skończy, jesteś gotowy by odpalić portversion i przekonać się czy którykolwiek z zainstalowanych portów wymaga aktualizacji. Pamiętasz to polecenie?

portversion -v -l

Parametry:

-l – określa z jakim statusem mają zostać pokazane wersje portów
(port jest starszy czy aktualnie mamy najnowszą wersję)

-v – Włącza pokazywanie szczegółowych opcji portversion (Turn on verbose output)

# portversion -v -l "<"
gqview-devel-1.3.1 < needs updating (port has 1.3.5)

Jeśli komenda ta coś zwróci, to twoim następnych krokiem będzie aktualizacja tych konkretnych przestarzałych portów. Nie bądź zdziwiony, gdy będziemy używać portupgrade, wywołując go jako portinstall (czyli do instalacji również nowych portów a nie tylko aktualizacji obecnych)

portupgrade -a

W najprostszej postaci, 'portupgrade -a' zaktualizuje wszystkie (ang. all (-a)) nieaktualne porty. Czasami proces ten może zakończyć się na portach które odmówią aktualizacji. Ta pozorna anomalia to nie ograniczenie portupgrade, ale kwestia zależności.

Porty maja dwa typy zależności. Pierwszy zwany jest 'zbuduj zależność' (ang. build dependency) i wskazuje na inne porty, które muszą zostać zainstalowane zanim właściwy port pomyślnie zostanie dodany do systemu. Drugi typ zależności odnosi się do portów, które zależą od tego konkretnego portu, który chcesz sobie uaktualnić. Zauważ, że pkg_delete nie pozwolił usunąć tych aplikacji, jeśli inne aplikację zależały od nich.

Jeśli tylko podbijesz numerek aplikacji, ale nie sprawdzisz czy zależności również wymagają aktualizacji, ostatecznie skończysz z aplikacjami, które odmówią uaktualnienia. Aby się przed tym zabezpieczyć, wywołuj portupgrade z dodatkowymi dwoma rekursywnymi przełącznikami czyli:

# portupgrade -arR

portupgrade -r -R

Parametry:

'-R' sprawdzi zależności wymagane (required by) do kompilacji portu
'-r' zatroszczy się o aplikacje zależne od portu (depends on), który jest uaktualniany.

To ochroni twój system przed przestarzałymi zależności i niekompatybilnością oprogramowania. Czasami, podczas korzystania z portupgrade lub któregoś z jego narzędzi, może pojawić się wiadomość z prośbą o 'pkgdb -F'. Mogłeś zapewne domyślić się po nazwie, że te narzędzie uaktualnia bazę paczek będących w systemie. Baza ta znajduje się w /var/db/pkg/pkgdb.db. I także tu baza ta wykorzystuje Btree ze względu na optymalny czas przeszukiwania. Jeśli kiedykolwiek zostaniesz poproszony o uruchomienie 'pkgdb -F' po prostu zrób to. Jednakże, z własnej inicjatywy nie przerywaj pracy temu poleceniu bo skończysz z niespójną bazą. Jeśli jednak znajdziesz się w takiej pechowej sytuacji, to polecenie naprawi spójność twojej bazy (czasami to jest doskonałe remedium na dziwne zachowanie portupgrade):

pkgdb -F

Uruchomienie pkgdb z '-F' pozwoli interaktywnie naprawić bazę (właściwie to skorygować zależności):

# pkgdb -F
---> Checking the package registry database
Stale dependency: mod_php4-4.3.4_4,1 -> apache-1.3.29_1 (www/apache13):
apache-2.0.48_1 (score:57%) ? ([y]es/[n]o/[a]ll) [no] yes
New dependency? (? to help):
[Enter] to skip, [Ctrl]+[D] to delete, [.][Enter] to abort, [Tab] to complete

Odpalenie pkgdb z przełącznikiem '-F' interaktywnie pozwoli skorygować tą bazę. To znaczy pkgdb zatrzyma się i zapyta co zamierzasz zrobić, zanim to wykona.

pkgdb -fu

To polecenie natomiast jest bardzo podobne do pkgdb –F – jednak parametr –u spowoduje iż baza danych paczek zainstalowanych i zawarta w bazie /var/db/pkg/pkgdb.db zostanie stworzona (jeżeli takowa nie istnieje) lub też uaktualniona. W razie wystąpienia przekłamania w portach, zostanie ono automatycznie naprawione. Flaga –f (force) spowoduje naprawienie bazy, z naciskiem na „odcisk czasowy” plików.

# pkgdb -fu
---> Updating the pkgdb [Rebuilding the pkgdb in /var/db/pkg ...
............................................................ done]

pkgdb -a

Jeśli jesteś przesadnie ostrożny, alternatywą może być '-Fa', czyli pkgdb poprawi tylko te rozbieżności co do których nie będzie miał żadnych wątpliwości. To wszystko tylko tak brzmi przerażająco, w rzeczywistości jest inaczej. Jest mało prawdopodobne, że kiedykolwiek będziesz poproszony o uruchomienie 'pkgdb -F'. Aplikacja pkgdb jest wykorzystywana również do innych celów, i w związku z tym zwana jest tez pkg_which.

Korzystanie z pkg_which

which

pkg_which (lub pkgdb) można wykorzystać, aby odszukać do którego portu należy konkretny plik. A oto prosty przykład demonstrujący różnice między wbudowana komenda which i pkg_which:

# which pkgdb
/usr/local/sbin/pkgdb

Polecenie 'which' jest wykorzystywane do odnalezienia ścieżki do aplikacji. Natomiast pkg_which jest w stanie powiedzieć mi do którego portu należy dany plik (binarka, manual, plik nagłówkowy ... czyli jeśli coś przyszło z portem pkg_which powie dokładnie z którym).

# pkg_which pkgdb portupgrade-20030723

A to polecenie jest równoważne z poprzednim poleceniem:

# pkgdb pkgdb portupgrade-20030723

A o to następny przykład. Powiedzmy, że myszkujesz w /usr/local/, jest to struktura katalogów zawierająca pliki wykorzystywane przez zainstalowane aplikacje. Znalazłeś cala garść plików i nie masz najmniejszego pojęcia skąd one się wzięły lub do której aplikacji nalezą. To zadanie dla pkg_which.

Spójrz na przykładowy fragment z mojego systemu:

# ls /usr/local/bin | grep yaf
tryaffix*
yaf-cdda*
yaf-mpgplay*
yaf-splay*
yaf-tplay*
yaf-vorbis
yaf-yuv*

pkg_which

Zobaczmy do której aplikacji one nalezą:

# pkg_which *yaf*
ispell-3.2.06_3
kdemultimedia-3.1.3
kdemultimedia-3.1.3
kdemultimedia-3.1.3
kdemultimedia-3.1.3
kdemultimedia-3.1.3
kdemultimedia-3.1.3

pkg_which -o

Polecenie 'pkg_which' ma kilka pożytecznych opcji. Jedna z nich to '-o', czyli pochodzenie (ang. origin (-o)). Załóżmy ze nie pamiętasz z której gałęzi portów wywodzi się kdemultimedia-3.1.3. Spróbuj tego:

# pkg_which -o kdemultimedia-3.1.3
multimedia/kdemultimedia3

Wyjście wskazuje nazwę podkatalogu z którego ten port został zbudowany czyli /usr/ports/multimedia/kdemultimedia3.

pkg_which -v

Również opcja '-v' może się przydać. Jeśli chciałbym się dowiedzieć, które aplikacje KDE mam obecnie zainstalowane to:

# pkg_which -v kde*
kde-config: kdelibs-3.1.3
kdebugdialog: kdebase-3.1.3
kded: kdelibs-3.1.3
kdeeject: kdebase-3.1.3
kdeinit: kdelibs-3.1.3
kdeinit_shutdown: kdelibs-3.1.3
kdeinit_wrapper: kdelibs-3.1.3
kdepasswd: kdeutils-3.1.3
kdeprintfax: kdebase-3.1.3
kdesktop: kdebase-3.1.3
kdesktop_lock: kdebase-3.1.3
kdessh: kdeutils-3.1.3
kdesu: kdebase-3.1.3
kdesu_stub: kdelibs-3.1.3
kdesud: kdebase-3.1.3
kdevdlg2ui: kdevelop-2.1.5
kdevelop: kdevelop-2.1.5

Jak widać wyjście z polecenia jest dość gadatliwe. Każda linia pokazuje nazwę aplikacji, później znak : (znak pełniący tylko funkcje ogranicznika), i na końcu nazwa portu z której pochodzi ta aplikacja. Wygląda na to, że na tej maszynie jest KDE w wersji 3.1.3

Zanim przejdziemy dalej, podsumujmy kroki niezbędne, aby mieć zainstalowane najświeższe oprogramowanie:
- uruchom 'cvsup' w celu synchronizacji drzewa portów /usr/ports
- uruchom portsdb, żeby zaktualizować /usr/ports/INDEX.db
- użyj portversion, aby ustalic które aplikacje wymagają aktualizacji
- wykorzystaj portupgrade do aktualizacji tych aplikacji

Dodatkowe opcje portupgrade

portupgrade -F

Portupgrade dostarcza kilku opcji, które pozwalają skrupulatnie wybrać jakie aplikacje uaktualnić i jak to zrobić. Jedna z bardziej pożytecznych opcji wtedy, gdy nie masz stałego łącza to '-F'. Zazwyczaj, kiedy aktualizujesz, portupgrade korzysta z sieci wtedy gdy potrzebuje pliku a potem rozpoczyna kompilacje. Jeśli robisz większa aktualizacja jak chociażby KDE, to potrzebuje on, abyś przebywał online przez parę ładnych godzin. Natomiast to polecenie wyskoczy na chwile do Internetu i tylko ściągnie wszystkie pliki których potrzebujesz do aktualizacji portu:

# portupgrade -aFrR

portupgrade -n

Gdy już zassałeś wszystkie niezbędne pliki, możesz już zerwać połączenie z siecią i tradycyjnie rozpocząć aktualizacje 'portupgrade -arR'. Kolejna dostępna opcja to '-n'. Przełącznik ten pokaże co portupgrade zrobi, ale właściwie bez wykonywania tego tak na prawdę (czyli symulacja). Przydatna opcja, gdy jesteś pełen obaw i chcesz wiedzieć już zawczasu co się stanie z twoim oprogramowaniem. A o to wyjście z takiej sesji:

# portupgrade -anrR
---> Session started at: Sun, 17 Aug 2003 22:06:00 -0400
...
---> Reporting the results (+:done / -:ignored / *:skipped / !:failed)
- lang/ruby16 (ruby-1.6.8.2003.04.19)
- net/cvsup-without-gui (cvsup-without-gui-16.1h)
+ lang/ruby16-shim-ruby18 (ruby-shim-ruby18-1.8.0.p2.2003.04.19)
+ databases/ruby-bdb1 (ruby-bdb1-0.1.9)
- sysutils/portupgrade (portupgrade-20030723)
- www/lynx (lynx-2.8.4.1d)
---> Session ended at: Sun, 17 Aug 2003 22:06:02 -0400 (consumed 00:00:02)

Przeanalizujmy ten output. Portupgrade przebrnął przez każdy zainstalowany port w systemie a wynik umieścił w raporcie. Każda linia raportu to pochodzenie portu, obecnie zainstalowana wersja i symbol wskazujący czy wymagana jest aktualizacja czy tez nie. W tym powyższym raporcie tylko dwa porty wymagają aktualizacji. Są to te których linie zaczynają się od znaku '+'. Przyrównując ten raport do portversion, wyniki będą podobne, ale przedstawione w inny sposób:

# portversion -l "<"
ruby-bdb1 ruby-shim-ruby18

portupgrade -i

Jeśli twoją dewiza jest "ostrożności nigdy za wiele" to do gustu może ci przypaść opcja '-i' (ang. interactive (-i)) czyli opcja interakcyjna. Dodając ja do reszty opcji, portupgrade po prostu będzie zatrzymywał się przed każdym uaktualnianym pakietem. To zatrzymanie będzie wyglądało tak:

# portupgrade -ianrR
...
---> Upgrading 'ruby-bdb1-0.1.9' to 'ruby-bdb1-0.2.1' (databases/ruby/bdb1) OK? [yes]

Domyślna odpowiedz to yes. To znaczy jeśli naciśniesz Enter, to twoja odpowiedz będzie brzmiała [yes]. Jeśli jednak zdecydujesz nie uaktualniać tego portu, musisz wpisać słowo no.

portupgrade -l

Ostatnią opcje jaka chce omówić to '-l' (ang. log (-l)) czyli logowanie. Opcja nieoceniona w sytuacji, gdy port odmawia instalacji i wyjście trzeba przesłać do kogoś innego. Tu na przykład uaktualnienie portu i skierowanie dodatkowo wyjścia do pliku o nazwie logfile:

# portupgrade -rR ruby-shim-ruby18 -l /root/portupgrade.log

Najprawdopodobniej nie będziesz chciał korzystać z opcji '-l' i '-a' jednocześnie, szczególnie jeśli masz dużo nieaktualnych portów. Nikt nie chce brnąć przez logi aż tak duże!

Uwagi ogólne związane z uaktualnianiem portów

Nie zalecane jest używanie polecenia portupgrade -arR, ponieważ może spowodować duże zmiany w portach, a w konsekwencji błędy w funkcjonowaniu poszczególnych programów. Należałoby się zastanowić nad podnoszeniem poszczególnych portów oddzielnie, tak aby można było zapanować nad rozrastającym się drzewem aplikacji w niepotrzebne wersje tych samych paczek.

Przed uaktualnieniem zalecane jest również wyłączenie aplikacji związanych z aktualizacją portów – czyli: jeżeli podnosimy aplikację proftpd-1.2.9 do wyższej wersji, należy się wyłączyć demona proftpd.

W wielu przypadkach błędy może również spowodować podnoszenie samego portupgrade poprzez właśnie te polecenie. Aby tą paczkę uaktualnić – należy zrobić to ręcznie i zwrócić dużą uwagę na powiązane z nią porty.

Przy występowaniu błędów podobnych do poniższego:

[Failed `inappropriate file type or format'] [Updating the portsdb
<format:bdb1_btree> in /usr/ports ... - 11733 port entries found
.........1000.........2000.........3000.........4000.........5000
......./usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:587:
[BUG] Segmentation fault ruby 1.8.2 (2004-07-29) [i386-freebsd5]

należy się ustawić wpis

setenv PORTS_DBDRIVER bdb1_hash

w pliku .cshrc czy też:

ENV['PORTS_DBDRIVER'] = 'bdb1_hash'

w pliku /usr/local/etc/pkgtools.conf

Powtarzające się paczki

Przydatnym poleceniem przy zarządzaniu portami, może się okazać zestaw komend powodujących wyświetlenie powtarzających się wersji tej samej biblioteki / paczki.

# pkg_info | sort | sed -e 's/-[0-9].*$//' | \
uniq -c | grep -v '^[[:space:]]*1'

Wynikiem jego będzie przykładowo:

3 autoconf
2 automake
6 docbook
2 libtool
2 perl

co oznacza, iż w systemie występują dwie wersje perla, trzy wersje autoconf itd.

Portsclean – czyszczenie paczek

Przydatną aplikacją może się również okazać polecenie portclean.

# portsclean [-hCDDinPPQQq]

Portsclean jest narzędziem pomagającym użytkownikowi pozbyć się nieużywanych i nie powiązanych z innymi aplikacjami - portów.


Autor: Artur 'Zdolny' Zdoliński
zdolny(at)poczta.onet.pl

Komentarze:
dodatkowo...
Dodane przez mcoy w dniu - 2005-12-18 01:03:19
polecam dwa swietne teksty Richarda Bejtlicha : "Keeping FreeBSD Up-To-Date" i "Keeping FreeBSD Applications Up-To-Date" dostepne tu http://www.taosecurity.com/publications.html

Tylko zarejestrowani użytkownicy mogą pisać komentarze.
Prosze zaloguj się i dodaj komentarz.

Powered by AkoComment!

Ostatnio aktualizowany ( wtorek, 08 listopada 2005 )

dalej »
Ciekawostki
Bardzo często możesz znaleźć odpowiedzi na twoje pytania przeszukując archiwa list mailingowych w http://www.freebsd.org/se arch.html
Pobierz
FreeBSD
OpenBSD
NetBSD
DragonFlyBSD
PC-BSD
FreeSBIE LiveCD
4.4BSD Lite
Reklama M3M.pl
Domeny
Książki

FreeBSD. Księga eksperta

FreeBSD. Księga eksperta

Cena: 125.00 zł
Dodaj do koszyka


FreeBSD. Podstawy administracji systemem

FreebBSD

Cena: 64.90 zł
Dodaj do koszyka


OpenBSD. Podstawy administracji systemem

OpenBSD

Cena: 84.90 zł
Dodaj do koszyka


OpenBSD. Tworzenie firewalla za pomocą PF

Firewall PF

Cena: 44.90 zł
Dodaj do koszyka

Licznik odwiedzin
Odwiedziło już nas
2520054
Internautów od lutego 2003

Korzystamy ze statysyk