Porty - używanie
Poniższa sekcja dostarcza podstawowych instrukcji używania kolekcji portów, w stopniu umożliwiającym instalowanie lub odinstalowywanie programów z Twojego systemu.
Zdobyć kolekcję portów...
Zanim zainstalujesz porty, musisz zdobyć kolekcję portów, która w zasadzie jest zestawem plików Makefile, patch i opisowych. Zwykle usytułowione są w /usr/ports. Gdy instalowałeś FreeBSD, Sysinstall pytał, czy chcesz zainstalować kolekcję portów. Jeśli wybrałeś "nie", możesz prześledzić poniższe instrukcje dotyczące sposobu zdobycia kolekcji portów.
Metoda z sysinstallem
Ta metoda instaluje kolekcję portów posługując się programem sysinstall. Jest to metoda alternatywna, do instalacji manualnej.
FreeBSD# /stand/sysinstall
Alternatywną metodą zdobycia i utrzymania świeżej kolekcji portów jest użycie CVSup. Spójrz na plik CVSup, /usr/share/examples/cvsup/ports-supfile. Zobacz Użycie CVSup (Sekcja A.6), jeśli potrzebujesz więcej informacji na ten temat.
Metoda CVSup
ALIGN="justify"To jest krótka metoda zdobycia kolekcji portów używając CVSup. Jeśli chcesz mieć aktualne drzewo portów, lub nauczyć się czegoś o CVSup, przeczytaj poniżej wspomniane sekcje.
FreeBSD# cvsup -g -L 2 /root/ports-supfile
Instalacja Portów
Pierwsza rzecz o jakiej należy wspomnieć omawiając kolekcję portów, jest szkielet. Mówiąc w skrócie, szkielet portu jest minimalnym zestawem plików, które mówią FreeBSD, jak dobrze skompilować i zainstalować program. Każdy szkielet portu zawiera: Plik Makefile. Makefile zawiera różne dane, określają one jak skompilować aplikację oraz gdzie ją zainstalować w systemie. Plik distinfo. Plik ten zawiera informacje dotyczące plików, które muszą być ściągnięte, aby zbudować port. Zawiera ponadto sumy kontrolne, które pozwalają sprawdzić, czy pliki nie uległy uszkodzeniu podczas pobierania z sieci. Katalog plików. Ten katalog zawiera łaty (patche) pozwalające skompilować i zainstalować program na Twoim systemie FreeBSD. Łaty są małymi plikami, w których określone są zmiany dotyczące pojedynczych plików. Są wypisane w postaci pliku tekstowego i po prostu mówią "Usuń linię 10" lub "Zmień linię 26 na to: ... ". Łatki są także znane jako "diffs" (ang. skrót od różnice) ponieważ są generowane przez program diff. Ten katalog może zawierać także inne pliki używane do budowy portu. Plik komentarza pkg-comment. Jest to jednoliniowy opis programu. Plik opisu pkg-descr. Jest on bardziej szczegółowym, często wieloliniowym opisem programu. Plik listy pkg-plist. Jest to lista wszystkich plików, które będą instalowane przez port. Jest to także lista plików, które należy usunąć w przypadku odinstalowywania.
Niekiedy porty zawierają inne pliki, takie jak na przykład pkg-message (message-wiadomość). System portów używa tych plików, aby posłużyć się nimi w odpowiednich sytuacjach. Jeśli potrzebujesz więcej informacji na temat tych plików i portów w ogóle, zajrzyj do FreeBSD Handbook'a Portera.
Teraz, gdy masz już wystarczającą ilość podstawowych informacji by wiedzieć, do czego służy kolekcja portów, jesteś gotowy do zainstalowania Twojego pierwszego portu. Poniżej przedstawione są dwa sposoby w jaki można tego dokonać.
Zanim będziemy mogli się tym zająć, wciąż potrzebujemy wybrać port, który chcemy zainstalować. Jeśli jesteśmy niezdecydowani, możemy sobie pomóc używając systemu wyszukiwawczego na stronie FreeBSD, lub po prostu przeglądając listę portów. Każdy port zawiera zwięzły opis mówiący o zastosowaniu i typie portu.
Kolejną metodą jest komenda whereis. Aby użyć whereis, po prostu wpisz "whereis (program który chcesz zainstalować)". Jeśli znajduje się on w Twoim systemie, zostaniesz powiadomiony o tym gdzie on jest w następujący sposób
FreeBSD# whereis lsof
lsof: /usr/ports/sysutils/lsof
Mówi nam to, że lsof (użytek systemowy) można odnaleźć w katalogu /usr/ports/sysutils/lsof.
Kolejną metodą wspomagającą odnajdywanie pojedynczych portów jest użycie wbudowanego w kolekcję portów mechanizmu wyszukiwawczego. Aby tego użyć musisz znajdować się w katalogu /usr/ports. Gdy już się tam znajdujesz, uruchom make search name=nazwa_programu, gdzie "nazwa_programu" to nazwa programu, który chcesz odnaleźć. Na przykład, jeśli rozglądałbyś się za lsof:
# cd /usr/ports
# make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to
fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:
Częścią wyświetlonych informacji, którą powinieneś zainteresować się najbardziej, jest "Path:" (ang. ścieżka), linia, która mówi Ci, gdzie możesz to znaleźć. Pozostałe dostarczone informacje nie są konieczne do zainstalowania przez Ciebie portu, dlatego nie zostaną tutaj omówione.
Dla głębszego wyszukiwania, możesz także użyć make search key=łańcuch, gdzie "łańcuch" jest częścią tekstu, którego szukasz. Przeszukuje to nazwy portów, komentarze, opisy i zależności, pomaga odnaleźć port odnoszący się do wybranych tematów, jeśli nie znasz nazwy programu, który jest Ci potrzebny.
W obu przypadkach, łańcuch szukanych znaków jest wrażliwy na wielkość liter. Poszukiwania "LSOF" nie są tym samym, co poszukiwania "lsof".
Pamiętaj: Musisz być root'em, aby instalować porty.
Teraz, gdy już odnalazłeś port, który chciałbyś zainstalować, jesteś gotowy do instalacji. Port zawiera instrukcje, jak zbudować kod źródłowy, ale żadnego kodu. Kod możesz pobrać z CDROM'u lub z Internetu. Źródło jest przedstawione w jakikolwiek sposób, przewidziany przez jego autora. Najczęściej jest ztarowane i gzipowane, ale może być także skompresowane jakimiś innymi narzędziami, lub nawet nie skompresowane. Kod źródłowy programu, w jakiejkolwiek formie, nazywany jest "distfile". Możesz go pobrać z CDROM'u lub z Internetu.
Instalowanie portów z cdromu
Oficjalne obrazy CDROM'ów Projektu FreeBSD nie zawierają plików dystrybucji "distfiles". Zabierają one zbyt dużo miejsca, które lepiej wykorzystać umiejscawiając tam przekompilowane paczki. CDROM'y takie, jak FreeBSD Power Pak zawierają pliki distfiles, możesz zamówić tego typu zestaw płyt u dostawcy na przykład FreeBSD Mall. Poniższa sekcja zakłada, że masz tego typu zestaw CDROM'ów. Włóż CDROM do napędu. Zamontuj go w /cdrom. (Jeśli używasz innego punktu montowania, zrób tak, aby działało). Aby zacząć, zmień katalog na ten, który zawiera port wybrany przez Ciebie do instalacji. Jak już jesteś w katalogu lsof, powinieneś widzieć szkielet portu. Następnym krokiem jest kompilacja (także nazywana budową) portu. Dokonuje się tego przez proste wpisanie make za znakiem zachęty. Jeśli już to zrobiłeś, powinieneś zobaczyć: Zauważ, że jeśli kompilacja jest zakończona, powracasz do Swojego znaku zachęty. Kolejnym krokiem jest instalacja portu. Aby tego dokonać, należy po prostu dodać jedno słowo do komendy make, a tym słowem jest install: Jak już powróciłeś do znaku zachęty, powinieneś mieć możliwość uruchomienia aplikacji, którą właśnie zainstalowałeś. lsof jest programem, który uruchomiony jest z większymi przywilejami, dlatego wyświetlane jest ostrzeżenie dotyczące bezpieczeństwa. Podczas budowania i instalowania portu, powinieneś uważnie czytać tego typu informacje i inne ostrzeżenia. Uwaga: Możesz zaoszczędzić dodatkowy krok, wpisując tylko make install zamiast make i make install jako dwie osobne komendy. Uwaga: Licencje kilku portów nie pozwalają na włączenie ich na CDROM. Dzieje się tak dlatego, że niektórzy twórcy wymagają wypełnienia form rejestracyjnych przed pobraniem programu. Redystrybucja ich jest zabroniona. Jeśli chciałbyś zainstalować port, który nie jest zamieszczony na CDROM'ie, musisz być podłączony do sieci Internet.# cd /usr/ports/sysutils/lsof
# make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in
/usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57 [wypakowywanie lsof]
...
[informacje dekompresji wycięte]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
[sprawdzanie wielkości pliku]
===> Patching for lsof-4.57 [łatanie]
===> Applying FreeBSD patches for lsof-4.57 [łatanie]
===> Configuring for lsof-4.57 [konfigurowanie lsfof]
...
[informacje konfiguracyjne wycięte]
...
===> Building for lsof-4.57 [budowanie lsof]
...
[kompilacja wycięta]
...
#
# make install
===> Installing for lsof-4.57 [instalowanie lsof]
...
[wyjście wycięte]
...
===> Generating temporary packing list
[tworzenie tymczasowych list]
===> Compressing manual pages for lsof-4.57
[kompresowanie man dot. lsof]
===> Registering installation for lsof-4.57
[rejestrowanie instalacji]
===> SECURITY NOTE: [notka dot. bezpieczeństwa]
This port has installed the following binaries
which execute with increased privileges.
#
Instalowanie portów z Internetu
Jak w ostatniej sekcji, ta zakłada, że masz działające połączeniem Internetowe. Jeśli nie, będziesz ograniczony do instalacji z CDROM'u. Instalowanie portu z Internetu jest wykonywane dokładnie w ten sam sposób, jak instalowanie z CDROM'u. Jedyna różnica pomiędzy tymi dwoma, to ta, że pliki ze źródłami pobierane są z Internetu zamiast z CDROM'u. Kroki postępowania są identyczne: Jak widzisz, jedyną różnicą jest to, że system mówi Ci, iż pobiera plik, informuje także skąd. To wszystko dotyczyło instalacji portów w Twoim systemie. W następnej sekcji nauczysz się porty usuwać.
# make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in
/usr/ports/distfiles/.
>> Attempting to fetch from
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
[pobieranie pliku]
439860 bytes transferred in 18.0 seconds (23.90 kBps)
[plik pobrany w xx s.]
===> Extracting for lsof-4.57 [rozpakowywanie]
...
[wyjście rozpakowywania wycięte]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
[suma kontrolna]
===> Patching for lsof-4.57 [łatanie]
===> Applying FreeBSD patches for lsof-4.57 [łatanie]
===> Configuring for lsof-4.57 [konfigurowanie]
...
[wyjście konfiguracyjne wycięte]
...
===> Building for lsof-4.57 [budowanie]
...
[kompilacja wycięta]
...
===> Installing for lsof-4.57 [instalowanie]
...
[procedura instalacyjna wycięta]
...
===> Generating temporary packing list
[tworzenia tymczasowej listy paczki ]
===> Compressing manual pages for lsof-4.57
[kompresowanie man dla lsof]
===> Registering installation for lsof-4.57
[rejestracja instalacji]
===> SECURITY NOTE: [notka bezpieczeństwa]
This port has installed the following binaries
which execute with increased privileges.
#
Usuwanie zainstalowanych portów
Teraz, gdy wiesz już jak instalować porty, zastanawiasz się prawdopodobnie jak je usuwać, na przykład w wypadku, gdy zainstalowałeś port, ale decydujesz się jednak go usunąć. Usuniesz port, który instalowaliśmy w poprzednim przykładzie (którym był lsof - dla tych którzy nie uważają). Podobnie jak przy instalacji, pierwszą rzeczą jaką musisz zrobić, jest zmienić aktualny katalog na katalog portu /usr/ports/sysutils/lsof. Po tej zmianie jesteś gotowy odinstalować lsof. Dokonuje się tego komendą make deinstall: To było łatwe. Usunąłeś lsof z Twojego systemu. Jeśli chciałbyś przeinstalować, możesz to zrobić uruchamiając make reinstall, podczas gdy jesteś w katalogu /usr/ports/sysutils/lsof. make deinstall i make reinstall nie działają, jeśli uruchomiłeś make clean (ang. clean - czyścić). Jeśli chcesz odinstalować port po czyszczeniu, użyj pkg_delete w sposób omawiany w Handbook'u, w sekcji dotyczącej paczek. (także dostępne na tej stronie w tłumaczeniu dot. pkg)
# cd /usr/ports/sysutils/lsof
# make deinstall
===> Deinstalling for lsof-4.57 [odinstalowywanie lsof-7.57]
mlodszy, pt., 25/04/2008 - 21:03
