{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

FreeBSD Zarządzanie Pakietami (ports, pkg_*) Podstawy

Po tym krótkim przewodniku będziesz biegły z instalacji, usuwaniu i uaktualnianiu oprogramowania FreeBSD.

Właśnie zaczął używać FreeBSD. Część, która mnie najbardziej interesuje jego zarządzania pakietami. Do FreeBSD przybyłem ze środowiska Linux... Gentoo (portage: bazujący na portach), Arch Linux (pacman: i686 menadżer pakietów binarnych), wszystkie systemy bazujące na pakietach rpm, i menadżer pakietów Debiana. Portage i pacman przekonały mnie do siebie a po dniu pracy z FreeBSD znalazło się dla nich miejsce w moim życiu. Dokument ten jest moja przymiarka do korzystania z portów i zarządzania pakietami w systemie FreeBSD. Większość informacji zdobyłem z dokumentacji FreeBSD na Installing Applications: Packages and Ports.

Po Pierwsze uruchomienie

Po pierwszym uruchomieniu mojego nowego systemu zostałem wrzucony do powłoki. Nie byłem pewien do jakiej powłoki, jednak wiedziałem, że nie był to BASH i natychmiast poczułem lekko sparaliżowany. W trakcie instalacji nie byłem pytany o wybór powłoki, więc próbowałem się przełączyć pisząc bash. Nic to nei dawało wiec zabrałem sie za przeszukiwanie dokumentacji. Okazuje się, że bash jest wykonywalny w /usr/local/bin. Zerkając tam zobaczyłem, że jest kilka przydatnych rzeczy. /usr/local/bin i /usr/local/sbin z pewnością będą dołączane w mojej zmiennej PATH. Teraz jestem gotowy do działania.

Instalacja kompilowanych pakietów (Szybka!)

1. pkg_add

Powiedzmy, że chcesz użyć konsole web w3m. Po przeszukaniu zobaczyłeś, że nie ma pakietu którego potrzebujesz. Poniższe polecenie zainstaluje pre-kompilowany pakiet w3m.

$ pkg_add -r w3m 

Opcja -r powoduje pobranie pakietu i jego instalacja. Takie instalowanie jest łatwe, szybkie i przyjemne, powoduje tez zainstalowanie wszystkich zależnych pakietów jakie ten potrzebuje do prawidłowego działania. Bez opcji -r to tak jakbyś pobrał tylko ten jeden pakiet i zainstalował. Na przykład:

$ wget ftp://ftp.freebsd.org/ ... /Latest/w3m.tbz
$ pkg_add w3m.tbz 

2. pkg_delete

Kasowanie pakietów jest równie łatwe jak ich instalacja. Jedyne co potrzebujesz to pełne nazwy pakietu. Aby się tego dowiedzieć wystarczy na przykład napisać:

$ pkg_info | grep mutt 

Polecenie to wyświetli linie z pełna nazwa pakietu i jego aktualna wersja (mutt-1.4.2.1_2 <- dla przykładu), która jest wymagana aby użyć pkg_delete.

$ pkg_delete mutt-1.4.2.1_2 

Używanie portów

Używanie portów jest całkiem proste, jeżeli tylko zna się parę komend. Porty dają Ci możliwość zarządzania pakietami w systemie FreeBSD (ports) automatycznego pobrania, kompilacji i instalacji pakietów. Jest to o tyle interesujące, że daje Ci możliwość wpływania na proces tworzenia pakietu. Możesz do procesu kompilacji wprowadzić dodatkowe flagi, aby pakiet bardziej dopasować do twoich potrzeb, czy pod konkretne wymagania maszyny.

1. Aktualizacja portów (Używanie Portów)

Użycie metody CVSup jest najefektywniejsze aby otrzymać swoje porty w aktualnej wersji. Jest to podobnie jak w Gentoo gdzie synchronizacja najnowszych portów odbywa się przez internet. Najpierw musimy dodać cvsup do naszego systemu:

$ pkg_add -r cvsup-without-gui 

A jeśli tak jak ja, nie chcesz wpisywać w cvsup za każdym razem serwera, z którego masz zamiar dokonać aktualizacji:

$ cp /usr/share/examples/cvsup/ports-supfile /root 

Wy edytuj /root/ports-supfile i zmień CHANGE_THIS.FreeBSD.org na jeden z mirrorów CVSup. Teraz wystarczy po prostu:

$ cvsup -L 2 /root/ports-supfile 

i teraz cała Twoja kolekcja portów zostanie zaktualizowana do najnowszej wersji.

2. Instalowanie pakietów z portów

Kolekcja portów trzymana jest w katalogu /usr/ports. Znajdują się tam wszystkie dostępne pakiety podzielone na odpowiednie kategorie. Dla przykładu zainstalujmy starą ale jarą gierkę dos'ową dosbox.

$ cd /usr/ports/emulators/dosbox
$ make install clean 

instrukcja make kompiluje wybrany pakiet wraz z zależnościami, install instaluje do odpowiedniego katalogu, clean usuwa pliki, które już nie są nam potrzebne.

Może on poprosić o podanie kilku opcji oraz zależności. I to wszystko. Automatycznie pobierze, skompiluje i zainstaluje wymagane pakiety wraz z zależnościami. Łatwizna.

Zmiana kompilacji/konfiguracji jest banalnie prosta. Wystarczy otworzyć plik Makefile i dokonać odpowiednich poprawek.

Zabawki dla dużych chłopców (portaudit i portupgrade)

1. portaudit

Pod względem bezpieczeństwa portaudit jest wspaniały. Portaudit sprawdzi wszystkie pakiety w Twoim systemie i zaalarmuje jeżeli któryś z nich będzie skompromitowany pod względem bezpieczeństwa. Łatwy w instalacji, prosty w obsłudze. Po jego instalacji da nam pełen obraz o bezpieczeństwie pakietów w naszym systemie:

$ pkg_add -r portaudit
$ portaudit -F -a 

Możesz teraz usunąć pakiety które są niebezpieczne i zainstalować ich najnowsze wersje.

2. portupgrade

To narzędzie pozwala nam utrzymać pakiety system FreeBSD w aktualnej wersji. Najpierw polecam przeczytanie /usr/ports/UPDATING w celu wykrycia problemów, które mogą wpływać na nas podczas próby automatycznej aktualizacji.

$ pkg_add -r portupgrade
$ /usr/local/sbin/pkgdb -F
$ /usr/local/sbin/portupgrade -a 

To polecenie zainstaluje portupgrade, zbuduje bazę aktualnie zainstalowanych pakietów i zaktualizuje do najnowszej obowiązującej wersji. Naprawdę przyjemne i łatwe.

Podsumowanie

FreeBSD oferuje potężne narzędzie do zarządzania pakietami i może śmiało konkurować z rozwiązaniami w innych systemach. Naprawdę ciekawą opcją jest to, że ma się możliwość wyboru miedzy pre-kompilowanym pakietem a własnoręcznym jego zbudowaniem. Dalszy rozwój systemu FreeBSD na pewno pociągnie za sobą także rozwinięcie możliwości zarządzani pakietami.

Autor: 
Scott Rippee <scott@hypexr.org>
Porozmawiaj o tym artykule na forum: 

tytus, sob., 12/12/2009 - 16:26