1484 lines
62 KiB
XML
1484 lines
62 KiB
XML
<?xml version="1.0" encoding="iso-8859-2"?>
|
|
<!--
|
|
The FreeBSD Polish Documentation Project
|
|
|
|
$FreeBSD$
|
|
Original revision: 1.260
|
|
-->
|
|
|
|
<chapter id="ports">
|
|
<chapterinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Cezary</firstname>
|
|
<surname>Morga</surname>
|
|
<contrib>Tłumaczył </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</chapterinfo>
|
|
|
|
<title>Instalacja programów: pakiety i porty</title>
|
|
|
|
<sect1 id="ports-synopsis">
|
|
<title>Streszczenie</title>
|
|
|
|
<indexterm><primary>porty</primary></indexterm>
|
|
<indexterm><primary>pakiety</primary></indexterm>
|
|
<para>System FreeBSD rozprowadzany jest wraz z bogatą kolekcją
|
|
narzędzi systemowych. Tym nie mniej, stanowi to absolutne minimum.
|
|
Szybko pojawia się bowiem potrzeba zainstalowania dodatkowego
|
|
oprogramowania, by móc rozpocząć prawdziwą pracę z systemem.
|
|
FreeBSD dostarcza dwóch dopełniających się metod instalacji
|
|
oprogramowania: kolekcję portów FreeBSD (kompilacja programów
|
|
ze źródeł) i system pakietów (instalacja z gotowych binariów).
|
|
Każda z tych metod może zostać wykorzystana do instalacji najnowszych
|
|
wersji ulubionego oprogramowania z lokalnych nośników bądź
|
|
bezpośrednio z sieci.</para>
|
|
|
|
<para>Przeczytawszy ten rozdział dowiemy się:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Jak instalować oprogramowanie innych producentów
|
|
dostarczane w postaci binarnej.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Jak kompilować oprogramowanie innych producentów
|
|
z wykorzystaniem kolekcji portów.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Jak usunąć poprzednio zainstalowane pakiety bądź
|
|
porty.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Jak zmienić domyślne wartości wykorzystywane
|
|
przy kompilacji portów.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Jak odnaleźć właściwe oprogramowanie.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Jak zaktualizować wykorzystywane aplikacje.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="ports-overview">
|
|
<title>Omówienie instalacji oprogramowania</title>
|
|
|
|
<para>Osoby, które już wcześniej pracowały z systemami &unix;
|
|
wiedzą, że typowy proces instalacji oprogramowania sprowadza
|
|
się mniej więcej do następujących punktów:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Pobranie programu, który może być rozprowadzany
|
|
w postaci kodu źródłowego bądź binarnej.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Rozpakowania programu z formatu w jakim jest
|
|
rozprowadzany (najczęściej jest to plik tar skompresowany
|
|
za pomocą &man.compress.1;, &man.gzip.1; lub
|
|
&man.bzip2.1;).</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Odnalezienie dokumentacji (najczęściej plik
|
|
<filename>INSTALL</filename> lub <filename>README</filename>
|
|
bądź pliki w podkatalogu <filename>doc/</filename>)
|
|
i zapoznanie się z instrukcjami instalacji programu.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Kompilacja programu, jeśli rozprowadzany jest w postaci
|
|
źródłowej. Może to wymagać również wykonania dodatkowych
|
|
czynności, jak np. edycji pliku <filename>Makefile</filename>
|
|
bądź uruchomienia skryptu <command>configure</command>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Weryfikacja i instalacja aplikacji.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Wszystko to przy założeniu, że w między czasie nie pojawiły
|
|
się żadne trudności. Instalacja oprogramowania, które nie było
|
|
przygotowywane z myślą o FreeBSD może wymagać nawet modyfikacji
|
|
kodu źródłowego nim zacznie poprawnie funkcjonować.</para>
|
|
|
|
<para>Oczywiście, we FreeBSD można instalować oprogramowanie
|
|
<quote>tradycyjnym</quote> sposobem. Jednakże system ten
|
|
posiada dwa rozwiązania, które potrafią zaoszczędzić mnóstwo
|
|
czasu i trudu: pakiety i porty. W chwili pisania tego tekstu,
|
|
dostępnych za pomocą tych systemów jest przeszło &os.numports;
|
|
aplikacji.</para>
|
|
|
|
<para>Dla każdego programu dostępny jest do pobrania pojedynczy
|
|
pakiet, który zawiera skompilowane kopie plików aplikacji,
|
|
zarówno plików uruchomieniowych jak i konfiguracyjnych czy
|
|
dokumentacji. Pobranym plikiem można manipulować za pomocą
|
|
poleceń &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;,
|
|
itp. Nowe programy można instalować za pomocą zaledwie
|
|
jednego polecenia.</para>
|
|
|
|
<para>Port natomiast, jest zbiorem plików mających za zadanie
|
|
zautomatyzować proces kompilacji danego programu z kodu
|
|
źródłowego.</para>
|
|
|
|
<para>O ile typowa kompilacja programu składa się z wielu czynności
|
|
wykonywanych przez użytkownika, o tyle pliki składające się na
|
|
port zawierają dostateczną ilość informacji aby pozwolić
|
|
systemowi zrobić to za nas. Wystarczy wprowadzić kilka prostych
|
|
poleceń a system automatycznie pobierze kod źródłowy programu,
|
|
rozpakuje, nałoży łatki, skompiluje i zainstaluje za nas.</para>
|
|
|
|
<para>Ponadto system portów może również posłużyć do przygotowania
|
|
pakietów, którymi następnie można manipulować za pomocą
|
|
<command>pkg_add</command> i innymi poleceniami
|
|
zarządzających pakietami.</para>
|
|
|
|
<para>Obydwa systemy potrafią analizować <emphasis>zależności</emphasis>
|
|
występujące pomiędzy aplikacjami. Załóżmy, że chcemy zainstalować
|
|
program, który zależy od pewnej biblioteki. Zarówno program jak
|
|
i biblioteka dostępne są w systemach portów i pakietów FreeBSD.
|
|
Niezależnie od tego czy wykorzystamy polecenie <command>pkg_add</command>
|
|
czy porty, by zainstalować program, to obydwa systemy spostrzegą,
|
|
że biblioteka nie została zainstalowana i automatycznie zainstalują
|
|
najpierw bibliotekę.</para>
|
|
|
|
<para>Można by się zastanawiać dlaczego FreeBSD wykorzystuje obydwa
|
|
systemy, skoro ich działanie jest tak bardzo podobne. Tak pakiety
|
|
jak i porty posiadają pewne zalety. Który system wykorzystamy zależy
|
|
od naszych własnych upodobań.</para>
|
|
|
|
<itemizedlist>
|
|
<title>Zalety pakietów</title>
|
|
|
|
<listitem>
|
|
<para>Skompresowany plik pakietu zajmuje z reguły mniej miejsca
|
|
niż skompresowany plik zawierający kod źródłowy.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Instalacja pakietów nie wymaga dodatkowej kompilacji.
|
|
W przypadku dużych aplikacji, jak np. <application>Mozilla</application>,
|
|
<application>KDE</application> czy <application>GNOME</application>
|
|
może to być istotne. Szczególnie gdy pracuje się na dość wolnej
|
|
maszynie.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Stosowanie pakietów nie wymaga żadnej wiedzy o procesie
|
|
kompilowania oprogramowania w systemie FreeBSD.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<itemizedlist>
|
|
<title>Zalety portów</title>
|
|
|
|
<listitem>
|
|
<para>Pakiety są z reguły kompilowane z dość typowymi opcjami,
|
|
ponieważ powinny być przydatne do wykorzystania na maksymalnej
|
|
liczbie komputerów. Instalując programy z portów mamy możliwość
|
|
<quote>podkręcenia</quote> opcji kompilacji, by (przykładowo)
|
|
skompilować program zoptymalizowany dla procesorów Pentium IV
|
|
lub Athlon.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Niektóre aplikacje posiadają pewne opcje kompilacji
|
|
związane z zadaniami, które maja realizować. Przykładowo
|
|
<application>Apache</application> może zostać skompilowany
|
|
z wieloma różnorodnymi opcjami. Kompilując go z portów nie
|
|
musimy zgadzać się na domyślne opcje mogąc samemu dokonać
|
|
wyboru.</para>
|
|
|
|
<para>W niektórych przypadkach dostępnych jest kilka pakietów
|
|
tej samej aplikacji skompilowanych z różnymi parametrami.
|
|
Na przykład program <application>Ghostscript</application>
|
|
dostępny jest jako pakiet <filename>ghostscript</filename>
|
|
oraz <filename>ghostscript-nox11</filename>, zależnie od
|
|
tego czy mamy zainstalowany serwer X11. O ile tego typu
|
|
rozwiązania są teoretycznie możliwe do zrealizowania w
|
|
systemie pakietów, o tyle staje się to praktycznie niemożliwe
|
|
gdy aplikacja posiada więcej niż kilka różnych opcji
|
|
kompilacji.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Warunki licencji niektórych aplikacji zabraniają
|
|
rozprowadzania w postaci binarnej. Muszą być zatem rozprowadzane
|
|
jako kod źródłowy.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Niektórzy nie ufają pakietom binarnym. W przypadku
|
|
kodu źródłowego można (przynajmniej w teorii) przejrzeć
|
|
go i samemu poszukać potencjalnych luk.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Jeśli posiadamy własne łaty będziemy potrzebowali
|
|
kodu źródłowego aby je nanieść do programu.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Jeszcze inni po prostu lubią mieć pod ręką kod źródłowy,
|
|
by móc go poczytać gdy się nudzą, zmodyfikować czy zapożyczyć
|
|
pewne rozwiązania (o ile pozwala na to licencja), itd.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Najlepszym sposobem śledzenia zmian dokonywanych w systemie
|
|
portów jest zapisanie się na &a.pl.ports.b; oraz
|
|
&a.pl.ports-bugs.b;.</para>
|
|
|
|
<warning>
|
|
<para> Przed instalacją jakiejkolwiek aplikacji należy sprawdzić
|
|
na stronie <ulink url="http://vuxml.freebsd.org/"></ulink>
|
|
czy w danym programie istnieją luki związane bezpieczeństwem.</para>
|
|
|
|
<para>Alternatywnie możemy zainstalować <filename
|
|
role="package">security/portaudit</filename>, który automatycznie
|
|
sprawdza wszystkie instalowane programy pod względem znanych
|
|
luk bezpieczeństwa; weryfikowane są również porty przed kompilacją.
|
|
W między czasie można wykorzystać polecenie <command>portaudit
|
|
-F -a</command>, by sprawdzić zainstalowane już pakiety.</para>
|
|
</warning>
|
|
|
|
<para>Pozostała część niniejszego rozdziału ma za zadanie wyjaśnić
|
|
jak z wykorzystaniem systemu pakietów i portów instalować w systemie
|
|
FreeBSD oprogramowanie innych producentów.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="ports-finding-applications">
|
|
<title>Odnalezienie programu dla siebie</title>
|
|
|
|
<para>Nim przystąpimy do instalacji programów musimy wiedzieć
|
|
co chcemy zainstalować i jak się nazywa.</para>
|
|
|
|
<para>Lista dostępnych we FreeBSD programów rośnie cały czas.
|
|
Na szczęście jest wiele sposobów na odnalezienie tego czego
|
|
szukamy:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Na stronie internetowej FreeBSD pod adresem <ulink
|
|
url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>
|
|
znajduje jest aktualna lista dostępnych programów. Listę można
|
|
dowolnie przeszukiwać według kilku kryteriów, np. nazwy (jeśli
|
|
ją znamy). Możliwe jest również przejrzenie spisu wszystkich
|
|
aplikacji znajdujących się w danej kategorii.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>FreshPorts</primary></indexterm>
|
|
|
|
<para>Dzięki stronie FreshPorts (<ulink
|
|
url="http://www.FreshPorts.org/"></ulink>) prowadzonej
|
|
przez Dana Langille'a możliwe jest bieżące śledzenie zmian
|
|
aplikacji w drzewie portów. Witryna umożliwia otrzymywanie
|
|
informacji drogą emailową o zmianach w wybranych
|
|
portach.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>FreshMeat</primary></indexterm>
|
|
|
|
<para>Jeśli nie znamy nazwy programu, który chcemy zainstalować,
|
|
warto poszukać go na stronach pokroju FreshMeat (<ulink
|
|
url="http://www.freshmeat.net/"></ulink>) a następnie
|
|
sprawdzić na stronie FreeBSD czy został przygotowany
|
|
odpowiedni port.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Jeśli znamy dokładną nazwę portu a chcemy sprawdzić
|
|
z jakiej pochodzi kategorii, można skorzystać z polecenia
|
|
&man.whereis.1;. Wystarczy wpisać <command>whereis
|
|
<replaceable>plik</replaceable></command>, gdzie
|
|
<replaceable>plik</replaceable> jest nazwą programu, którego
|
|
poszukujemy. Otrzymany wynik będzie postaci:</para>
|
|
|
|
<screen>&prompt.root; <userinput>whereis lsof</userinput>
|
|
lsof: /usr/ports/sysutils/lsof</screen>
|
|
|
|
<para>Przykład ten informuje nas, że program <command>lsof</command>
|
|
(narzędzie systemowe) znajduje się w katalogu
|
|
<filename>/usr/ports/sysutils/lsof</filename>.</para></listitem>
|
|
|
|
<listitem>
|
|
<para>Jeszcze innym sposobem na odnalezienie danego portu jest
|
|
wykorzystanie mechanizmu przeszukiwania kolekcji portów.
|
|
By skorzystać z tej funkcji należy przejść do katalogu
|
|
<filename>/usr/ports</filename>. Następnie wpisać
|
|
<command>make search
|
|
name=<replaceable>nazwa-programu</replaceable></command>,
|
|
gdzie <replaceable>program-name</replaceable> jest nazwą
|
|
poszukiwanej aplikacji. Przykładowo, szukając
|
|
<command>lsof</command>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports</userinput>
|
|
&prompt.root; <userinput>make search name=lsof</userinput>
|
|
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: </screen>
|
|
|
|
<para>Część wyniku, która nas interesuje to wiersz zaczynający
|
|
się od <quote>Path:</quote>, a określający lokalizację portu.
|
|
Pozostałe z uzyskanych w ten sposób informacji nie zostaną
|
|
tutaj opisane, gdyż nie są potrzebne do instalacji
|
|
programu.</para>
|
|
|
|
<para>Szersze przeszukanie kolekcji portów możliwe jest
|
|
wykorzystując <command>make
|
|
search key=<replaceable>zwrot</replaceable></command>,
|
|
gdzie <replaceable>zwrot</replaceable> jest dowolnym wyrazem.
|
|
Opcja ta przeszukuje nazwy portów, komentarze, opisy i listy
|
|
zależności. Może być wykorzystana do odnalezienia portów
|
|
związanych z danym zagadnieniem gdy nie znamy nazwy
|
|
poszukiwanego programu.</para>
|
|
|
|
<para>W obydwu przypadkach nie są rozróżniane małe i duże
|
|
litery w poszukiwanym ciągu. Szukając zatem <quote>LSOF</quote>
|
|
oraz <quote>lsof</quote> otrzymamy takie same wyniki.</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="packages-using">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Chern</firstname>
|
|
<surname>Lee</surname>
|
|
<contrib>Napisał </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<!-- 30 Mar 2001 -->
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Aleksander</firstname>
|
|
<surname>Fafuła</surname>
|
|
<contrib>Tłumaczył </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Cezary</firstname>
|
|
<surname>Morga</surname>
|
|
<contrib>Przekład uzupełnił </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Korzystanie z systemu pakietów</title>
|
|
|
|
<sect2>
|
|
<title>Instalacja pakietów</title>
|
|
<indexterm>
|
|
<primary>pakiety</primary>
|
|
<secondary>instalacja</secondary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary><command>pkg_add</command></primary>
|
|
</indexterm>
|
|
<para>Programu &man.pkg.add.1; można użyć do instalacji
|
|
programów zarówno z dysku lokalnego, jak i z sieci.</para>
|
|
|
|
<example>
|
|
<title>Ręczne pobranie pakietu i instalacja lokalna</title>
|
|
|
|
<screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
|
|
Connected to ftp2.FreeBSD.org.
|
|
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
|
|
331 Guest login ok, send your email address as password.
|
|
230-
|
|
230- This machine is in Vienna, VA, USA, hosted by Verio.
|
|
230- Questions? E-mail freebsd@vienna.verio.net.
|
|
230-
|
|
230-
|
|
230 Guest login ok, access restrictions apply.
|
|
Remote system type is UNIX.
|
|
Using binary mode to transfer files.
|
|
<prompt>ftp></prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
|
|
250 CWD command successful.
|
|
<prompt>ftp></prompt> <userinput>get lsof-4.56.4.tgz</userinput>
|
|
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
|
|
200 PORT command successful.
|
|
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
|
|
100% |**************************************************| 92375 00:00 ETA
|
|
226 Transfer complete.
|
|
92375 bytes received in 5.60 seconds (16.11 KB/s)
|
|
<prompt>ftp></prompt> <userinput>exit</userinput>
|
|
&prompt.root; <userinput>pkg_add <replaceable>lsof-4.56.4.tgz</replaceable></userinput></screen>
|
|
</example>
|
|
|
|
<para>Jeśli nie posiadamy lokalnego źródła programów (np na
|
|
płytach CD FreeBSD), będzie Ci prawdopodobnie łatwiej użyć komendy
|
|
&man.pkg.add.1; z opcją <option>-r</option>. Spowoduje to,
|
|
że program samodzielnie określi odpowiednią wersję oprogramowania
|
|
dla naszej wersji systemu. Następnie pobierze odpowiedni plik
|
|
z sieci oraz go zainstaluje.</para>
|
|
|
|
<indexterm>
|
|
<primary><command>pkg_add</command></primary></indexterm>
|
|
<screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>
|
|
|
|
<para>W powyższym przykładzie program pobierze właściwy pakiet
|
|
i zainstaluje go bez jakiejkolwiek dalszej ingerencji użytkownika.
|
|
Jeśli chcemy wskazać programowi alternatywny serwer lustrzany,
|
|
należy odpowiednio zdefiniować zmienną środowiskową
|
|
<envar>PACKAGESITE</envar>. Program &man.pkg.add.1; do pobierania
|
|
plików z serwerów wykorzystuje &man.fetch.3;, który z kolei
|
|
wykorzystuje różnorodne zmienne środowiskowe, m.in.
|
|
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar> oraz
|
|
<envar>FTP_PASSWORD</envar>. Może się okazać, że będziemy musieli
|
|
zdefiniować niektóre z nich jeśli nasz komputer znajduje się za
|
|
zaporą ogniową, bądź musi korzystać z serwera pośredniczącego
|
|
FTP/HTTP proxy. Więcej informacji znaleźć można w podręczniku
|
|
systemowym programu &man.fetch.3;. Warto zauważyć, iż w
|
|
powyższym przykładzie jako nazwę pakietu podano jedynie
|
|
<literal>lsof</literal> zamiast <literal>lsof-4.56.4</literal>.
|
|
Przy zdalnym pobieraniu pakietów nie należy podawać numeru wersji
|
|
pakietu. Program &man.pkg.add.1; automatycznie pobierze najnowszą
|
|
wersję aplikacji.</para>
|
|
|
|
<note>
|
|
<para>Program &man.pkg.add.1; pobierze najnowszą wersję aplikacji
|
|
jedynie, gdy wykorzystujemy &os.current; albo &os.stable;. W przypadku
|
|
-RELEASE pobrana zostanie wersja pakietu zbudowana dla danego wydania.
|
|
Ograniczenie to można obejść modyfikując zmienną środowiskową
|
|
<envar>PACKAGESITE</envar>. Na przykład, jeśli korzystamy z
|
|
&os; 5.4-RELEASE domyślnie &man.pkg.add.1; będzie pobierał
|
|
pakiety z
|
|
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/</literal>.
|
|
By zmusić go do pobierania pakietów zbudowanych dla
|
|
&os; 5-STABLE należy zmodyfikować zmienną <envar>PACKAGESITE</envar>
|
|
by wskazywała na
|
|
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/</literal>.</para>
|
|
</note>
|
|
|
|
<para>Pakiety rozpowszechniane są w formacie <filename>.tgz</filename>
|
|
oraz <filename>.tbz</filename>. Możemy je pobrać z
|
|
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>,
|
|
w Polsce z <ulink
|
|
url="ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>,
|
|
bądź odnaleźć na płytach CDROM FreeBSD. Każda płyta z cztero płytowej
|
|
dystrybucji (także PowerPak'a itp) zawiera pakiety w katalogu
|
|
<filename>/packages</filename>. Struktura katalogu podobna jest
|
|
do drzewa portów <filename>/usr/ports</filename>. Każda kategoria ma
|
|
swój własny katalog, ponadto każdy pakiet może zostać odnaleziony
|
|
w katalogu <filename>All</filename> (Wszystkie).</para>
|
|
|
|
<para>Struktura katalogów pakietów jest identyczna względem
|
|
struktury katalogów portów. Porty i pakiety kooperują za sobą,
|
|
tworząc wspólnie cały system pakietów/portów.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Zarządzanie pakietami</title>
|
|
|
|
<indexterm>
|
|
<primary>pakiety</primary>
|
|
<secondary>zarządzanie</secondary>
|
|
</indexterm>
|
|
<para>Narzędziem służącym do przedstawienia informacji
|
|
o zainstalowanych pakietach oraz wyświetlającym ich krótki
|
|
opis jest &man.pkg.info.1;.</para>
|
|
|
|
<indexterm>
|
|
<primary><command>pkg_info</command></primary>
|
|
</indexterm>
|
|
<screen>&prompt.root; <userinput>pkg_info</userinput>
|
|
cvsup-16.1 A general network file distribution system optimized for CV
|
|
docbook-1.2 Meta-port for the different versions of the DocBook DTD
|
|
...</screen>
|
|
<para>Program &man.pkg.version.1; jest natomiast narzędziem,
|
|
które podsumowuje wersje wszystkich zainstalowanych pakietów.
|
|
Porównuje je następnie z tymi które znajdują się w drzewie portów.</para>
|
|
<indexterm>
|
|
<primary><command>pkg_version</command></primary>
|
|
</indexterm>
|
|
<screen>&prompt.root; <userinput>pkg_version</userinput>
|
|
cvsup =
|
|
docbook =
|
|
...</screen>
|
|
|
|
<para>Symbol w drugiej kolumnie określa wiek zainstalowanej wersji
|
|
oprogramowania względem wersji odnalezionej w portach.</para>
|
|
|
|
<informaltable frame="none" pgwide="1">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Symbol</entry>
|
|
<entry>Znaczenie</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>=</entry> <entry>Wersja odnaleziona w portach jest
|
|
identyczna.</entry>
|
|
</row>
|
|
|
|
<row><entry><</entry>
|
|
<entry>Wersja jest starsza, niż ta odnaleziona w portach.</entry>
|
|
</row>
|
|
|
|
<row><entry>></entry><entry>Zainstalowana wersja jest nowsza,
|
|
niż znaleziona w portach. (Prawdopodobnie lokalne drzewo portów
|
|
nie zostało zaktualizowane.)</entry></row>
|
|
|
|
<row><entry>?</entry><entry>Zainstalowany pakiet nie może zostać
|
|
odnaleziony w drzewie portów. (Może to mieć miejsce np. w sytuacji
|
|
gdy zainstalowany port został usunięty z kolekcji portów, bądź
|
|
zmienił nazwę.)</entry></row>
|
|
|
|
<row><entry>*</entry><entry>Istnieje wiele wersji tego programu.</entry></row>
|
|
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Usuwanie pakietów</title>
|
|
<indexterm>
|
|
<primary><command>pkg_delete</command></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>pakiety</primary>
|
|
<secondary>usuwanie</secondary>
|
|
</indexterm>
|
|
<para>Aby usunąć uprzednio zainstalowane oprogramowanie użyj &man.pkg.delete.1;.</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Dodatkowe informacje</title>
|
|
<para>Wszystkie informacje o pakietach znajdują się w katalogu
|
|
<filename>/var/db/pkg</filename>. Lista zainstalowanych plików,
|
|
a także opis każdej paczki można odnaleźć właśnie w tym katalogu.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="ports-using">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Aleksander</firstname>
|
|
<surname>Fafuła</surname>
|
|
<contrib>Tłumaczył </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Cezary</firstname>
|
|
<surname>Morga</surname>
|
|
<contrib>Przekład uzupełnił </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Korzystanie z kolekcji portów</title>
|
|
|
|
<para>Poniższy podrozdział dostarcza podstawowych informacji
|
|
z zakresu używania kolekcji portów, w stopniu umożliwiającym
|
|
instalowanie lub odinstalowywanie programów z własnego systemu.
|
|
Szczegółowy opis parametrów polecenia <command>make</command>
|
|
i zmiennych środowiskowych dostępny jest w podręczniku
|
|
systemowym &man.ports.7;.</para>
|
|
|
|
<sect2 id="ports-tree">
|
|
<title>Pozyskanie kolekcji portów</title>
|
|
|
|
<para>Zanim zainstalujemy jakikolwiek port, musimy pobrać
|
|
kolekcję portów, która w zasadzie jest zestawem plików
|
|
<filename>Makefiles</filename>, łat i opisowych. Kolekcja
|
|
znajduje się w katalogu <filename>/usr/ports</filename>.</para>
|
|
|
|
<para>W trakcie instalacji FreeBSD, <application>sysinstall</application>
|
|
zapytał czy chcemy zainstalować kolekcję portów. Jeśli wybraliśmy
|
|
nie, poniższe instrukcje pomogą nam własnoręcznie zainstalować
|
|
kolekcję portów:</para>
|
|
|
|
<procedure>
|
|
<title>Metoda CVSup</title>
|
|
|
|
<para>Jest to prosta i szybka metoda pobrania kolekcji portów
|
|
wykorzystująca system <application>CVSup</application>.
|
|
Więcej informacji o <application>CVSup</application> dostępnych
|
|
jest w podrozdziale <link linkend="cvsup">Korzystanie z
|
|
CVSup</link>.</para>
|
|
|
|
<para>Bardzo ważnym jest, aby upewnić się, że katalog
|
|
<filename class="directory">/usr/ports</filename> jest pusty
|
|
nim po raz pierwszy uruchomimy <application>CVSup</application>!
|
|
Jeśli posiadamy już kolekcję portów pozyskaną z innego źródła
|
|
<application>CVSup</application> nie usunie nieużywanych
|
|
plików łat.</para>
|
|
|
|
<step>
|
|
<para>Zainstaluj pakiet <filename
|
|
role="package">net/cvsup-without-gui</filename>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_add -r cvsup-without-gui</userinput></screen>
|
|
|
|
<para>Więcej informacji w podrozdziale <link
|
|
linkend="cvsup-install">Instalacja CVSup</link> (<xref
|
|
linkend="cvsup-install"/>).</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Uruchom <command>cvsup</command>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cvsup -L 2 -h <replaceable>cvsup.FreeBSD.org</replaceable> /usr/share/examples/cvsup/ports-supfile</userinput></screen>
|
|
|
|
<para>Warto zastąpić <replaceable>cvsup.FreeBSD.org</replaceable>
|
|
adresem serwera CVSup zlokalizowanego bliżej nas. Kompletna lista
|
|
serwerów lustrzanych dostępna jest w podrozdziale
|
|
<link linkend="cvsup-mirrors">Serwery lustrzane CVSup</link>
|
|
(<xref linkend="cvsup-mirrors"/>).</para>
|
|
|
|
<note>
|
|
<para>Można wykorzystać własny plik <filename>ports-supfile</filename>,
|
|
by np. uniknąć konieczności podawania adresu serwera
|
|
<application>CVSup</application> z linii poleceń.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>W takim wypadku, jako użytkownik <username>root</username>,
|
|
skopiuj plik
|
|
<filename>/usr/share/examples/cvsup/ports-supfile</filename>
|
|
do innego katalogu, np. <filename>/root</filename> bądź własnego
|
|
katalogu domowego.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Zmodyfikuj plik <filename>ports-supfile</filename>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Zmień wpis
|
|
<replaceable>CHANGE_THIS.FreeBSD.org</replaceable>na adres
|
|
wybranego serwera lustrzanego <application>CVSup</application>.
|
|
Kompletna lista serwerów lustrzanych dostępna jest w podrozdziale
|
|
<link linkend="cvsup-mirrors">Serwery lustrzane
|
|
CVSup</link> (<xref linkend="cvsup-mirrors"/>).</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Teraz uruchom <command>cvsup</command> używając
|
|
polecenia::</para>
|
|
|
|
<screen>&prompt.root; <userinput>cvsup -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</note>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Późniejsze wpisanie polecenia &man.cvsup.1; spowoduje
|
|
sprawdzenie zmian dokonanych w kolekcji portów i aktualizację
|
|
lokalnej wersji. Nie spowoduje to natomiast automatycznie ponownego
|
|
skompilowania wykorzystywanych przez nas portów.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<procedure>
|
|
<title>Metoda Portsnap</title>
|
|
|
|
<para><application>Portsnap</application> jest alternatywnym
|
|
systemem dystrybucji kolekcji portów. Po raz pierwszy został
|
|
dołączony do FreeBSD 6.0. W starszych wersjach może zostać
|
|
zainstalowany z pakietu <filename
|
|
role="package">sysutils/portsnap</filename>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_add -r portsnap</userinput></screen>
|
|
|
|
<para>Szczegółowe informacje o możliwościach programu dostępne
|
|
są w podrozdziale <link linkend="portsnap">Korzystanie z
|
|
Portsnap</link>.</para>
|
|
|
|
<step>
|
|
<para>Ten punkt możemy pominąć jeśli posiadamy &os; 6.1-RELEASE
|
|
bądź najnowszą wersję programu <application>Portsnap</application>.
|
|
Przy pierwszym uruchomieniu programu &man.portsnap.8; zostanie
|
|
automatycznie utworzony katalog <filename
|
|
class="directory">/usr/ports</filename>. W starszych wersjach programu
|
|
wymagane jest własnoręczne utworzenie katalogu:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mkdir /usr/ports</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Pobierz skompresowaną migawkę kolekcji portów do katalogu
|
|
<filename class="directory">/var/db/portsnap</filename>. Można następnie
|
|
zakończyć połączenie z Internetem, jeśli jest taka potrzeba.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Jeśli uruchamiany <application>Portsnap</application> po raz
|
|
pierwszy należy rozpakować migawkę do katalogu
|
|
<filename class="directory">/usr/ports</filename>:
|
|
</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
|
|
|
|
<para>Jeśli posiadamy już kolekcję portów w <filename
|
|
class="directory">/usr/ports</filename> i jedynie ją aktualizujemy,
|
|
wpisujemy polecenie:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
|
|
</step>
|
|
|
|
</procedure>
|
|
|
|
<procedure>
|
|
<title>Metoda sysinstall</title>
|
|
|
|
<para>Metoda ta instaluje kolekcję portów z lokalnego nośnika posługując
|
|
się programem <application>sysinstall</application>. Zainstalowana
|
|
zostanie kopia kolekcji z dnia, w którym przygotowana została dana wersja
|
|
FreeBSD. Jeśli dysponujemy połączeniem z Internetem powinniśmy zawsze
|
|
stosować jedną z metod opisanych powyżej.</para>
|
|
|
|
<step>
|
|
<para>Uruchom <command>sysinstall</command> jako użytkownik
|
|
<username>root</username> (<command>/stand/sysinstall</command>
|
|
w wersjach &os; starszych niż 5.2):</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysinstall</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Przejdź w dół, wybierz <guimenuitem>Configure</guimenuitem>,
|
|
i naciśnij <keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Przejdź w dół, wybierz
|
|
<guimenuitem>Distributions</guimenuitem> i naciśnij
|
|
<keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Przejdź w dół do opcji <guimenuitem>ports</guimenuitem> i naciśnij
|
|
<keycap>Spację</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Przejdź do góry do opcji <guimenuitem>Exit</guimenuitem> i naciśnij
|
|
<keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Ustaw wybrany przez siebie typ medium instalacji, jak np. płytę CDROM,
|
|
serwer FTP, itd.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Przejdź do góry do opcji <guimenuitem>Exit</guimenuitem> i naciśnij
|
|
<keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Naciśni <keycap>X</keycap> by wyjść z programu
|
|
<application>sysinstall</application>.</para>
|
|
</step>
|
|
</procedure>
|
|
</sect2>
|
|
|
|
<sect2 id="ports-skeleton">
|
|
<title>Instalacja Portów</title>
|
|
|
|
<indexterm>
|
|
<primary>porty</primary>
|
|
<secondary>instalacja</secondary>
|
|
</indexterm>
|
|
<para>Pierwsza rzecz o jakiej należy wspomnieć omawiając
|
|
kolekcję portów, jest <quote>szkielet</quote>. Mówiąc w
|
|
skrócie, szkielet portu jest minimalnym zestawem plików,
|
|
które informują FreeBSD, jak poprawnie skompilować i
|
|
zainstalować program. Każdy szkielet portu zawiera:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Plik <filename>Makefile</filename>. Plik ten zawiera
|
|
różne dane określające jak skompilować aplikację oraz gdzie
|
|
ją zainstalować w systemie.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Plik <filename>distinfo</filename> Plik ten zawiera informacje
|
|
dotyczące plików, które muszą zostać pobrane, by skompilować
|
|
port. Ponadto zawiera sumy kontrolne, na podstawie których
|
|
&man.md5.1; potrafi sprawdzić, czy pliki nie uległy uszkodzeniu
|
|
w trakcie pobierania z sieci.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Katalog <filename>files</filename>, który zawiera łaty
|
|
pozwalające skompilować i zainstalować program w naszym
|
|
systemie FreeBSD. Łaty są małymi plikami, w których określone
|
|
są zmiany dotyczące konkretnych plików. Są to pliki tekstowe i po
|
|
prostu mówią <quote>Usuń linię 10</quote> lub <quote>Zmień linię
|
|
26 na to: ...</quote>. Łatki są także znane jako <quote>diffs</quote>
|
|
(ang. skrót od różnice) ponieważ są generowane przez program
|
|
&man.diff.1;.</para>
|
|
|
|
<para>Ten katalog może zawierać także inne pliki używane do
|
|
kompilacji portu.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Plik opisu <filename>pkg-descr</filename>. Jest to bardziej
|
|
szczegółowy, nierzadko wieloliniowy opis programu.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Plik listy <filename>pkg-plist</filename>. Jest to lista wszystkich
|
|
plików, które zostaną zainstalowane przez port. Jest to także lista plików,
|
|
które należy usunąć w przypadku odinstalowywania.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Niekiedy porty zawierają również inne pliki, jak na przykład
|
|
<filename>pkg-message</filename> (message-wiadomość).
|
|
System portów używa tych plików w specjalnych sytuacjach. Jeśli potrzebujesz
|
|
więcej informacji na temat tych plików i portów w ogóle, zajrzyj do podręcznika
|
|
<ulink url="&url.books.porters-handbook;/index.html">FreeBSD
|
|
Porter's Handbook</ulink>.</para>
|
|
|
|
<para>Jak już raz powiedziano, porty zawierają instrukcje odnośnie
|
|
kompilacji programów z kodu źródłowego. Jednakże nie zawierają
|
|
one samego kodu. Kod pobrać można z płyty CD bądź z Internetu.
|
|
Rozprowadzany może być w dowolnej postaci jaką wybierze sobie
|
|
jego producent, przy czym najczęściej jest to spakowany plik tar
|
|
skompresowany dodatkowo gzipem. Kod źródłowy programu nazywany
|
|
jest <quote>distfile</quote>. Poniżej przedstawione zostały dwie
|
|
metody instalacji portów we &os;.</para>
|
|
|
|
<note>
|
|
<para> By móc zainstalować port musimy być zalogowania jako
|
|
użytkownik <username>root</username>.</para>
|
|
</note>
|
|
|
|
<warning>
|
|
<para> Przed instalacją jakiegokolwiek portu należy upewnić się,
|
|
że dysponujemy aktualną kolekcją portów oraz sprawdzić potencjalne
|
|
luki bezpieczeństwa związane z danym portem na stronie <ulink
|
|
url="http://vuxml.freebsd.org/"></ulink>.</para>
|
|
|
|
<para>Istnieje możliwość zautomatyzowania procesu weryfikacji
|
|
potencjalnych luk bezpieczeństwa przed instalacją portu. Do tego
|
|
celu można wykorzystać program <application>portaudit</application>,
|
|
dostępny również w kolekcji portów (<filename
|
|
role="package">security/portaudit</filename>). Wydanie polecenia
|
|
<command>portaudit -F</command> przed instalacją nowego portu
|
|
spowoduje pobranie aktualnej bazy luk bezpieczeństwa. Możliwe jest
|
|
również wykonywanie regularnych aktualizacji bazy i rewizji
|
|
zainstalowanego oprogramowania w trakcie codziennego przeglądu
|
|
bezpieczeństwa systemu. Więcej informacji dostępnych jest na stronach
|
|
podręcznika systemowego &man.portaudit.1; i &man.periodic.8;.</para>
|
|
</warning>
|
|
|
|
<para>Sposób funkcjonowania kolekcji portów wiąże się z założeniem,
|
|
że posiadamy połączenie z Internetem. Jeśli nie, będziemy musieli
|
|
ręcznie pobierać kod źródłowy <quote>distfile</quote> i umieszczać
|
|
w katalogu <filename>/usr/ports/distfiles</filename> dla każdego
|
|
instalowanego portu.</para>
|
|
|
|
<para>By rozpocząć instalację należy przejść do katalogu
|
|
wybranego portu:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
|
|
|
|
<para>Wewnątrz katalogu <filename>lsof</filename> znajduje się
|
|
szkielet portu. Następnym krokiem jest kompilacja programu, co
|
|
sprowadza się do wpisania polecenia <command>make</command>.
|
|
Efekt działania polecenia powinien być zbliżony do:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make</userinput>
|
|
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
|
|
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
|
|
===> Extracting for lsof-4.57
|
|
...
|
|
[extraction output snipped]
|
|
...
|
|
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
|
|
===> Patching for lsof-4.57
|
|
===> Applying FreeBSD patches for lsof-4.57
|
|
===> Configuring for lsof-4.57
|
|
...
|
|
[configure output snipped]
|
|
...
|
|
===> Building for lsof-4.57
|
|
...
|
|
[compilation output snipped]
|
|
...
|
|
&prompt.root;</screen>
|
|
|
|
<para>Po skończeniu kompilacji powracamy do linii poleceń.
|
|
Kolejnym krokiem jest instalacja portu poprzez wpisanie polecenia
|
|
<command>make</command> wraz ze słowem
|
|
<command>install</command>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make install</userinput>
|
|
===> Installing for lsof-4.57
|
|
...
|
|
[installation output snipped]
|
|
...
|
|
===> Generating temporary packing list
|
|
===> Compressing manual pages for lsof-4.57
|
|
===> Registering installation for lsof-4.57
|
|
===> SECURITY NOTE:
|
|
This port has installed the following binaries which execute with
|
|
increased privileges.
|
|
&prompt.root;</screen>
|
|
|
|
<para>Gdy ponownie powrócimy do linii poleceń, powinniśmy
|
|
być już w stanie uruchomić właśnie zainstalowaną aplikację.
|
|
Ostrzeżenie jakie pojawi się na ekranie związane jest z faktem,
|
|
że lsof jest programem pracującym ze zwiększonymi przywilejami.
|
|
W trakcie kompilacji i instalacji portów powinniśmy zwracać uwagę
|
|
na wszystkie pojawiające się ostrzeżenia.</para>
|
|
|
|
<para>Dobrym pomysłem, jest również usunięcie podkatalogu
|
|
zawierającego wszystkie tymczasowe pliki wykorzystywane
|
|
w trakcie kompilacji. Nie tylko dlatego, że niepotrzebnie zajmuje
|
|
miejsce na dysku, ale również dlatego, że może być przyczyną
|
|
problemów podczas aktualizacji programu do nowszej wersji.</para>
|
|
|
|
<screen>&prompt.root; <userinput>make clean</userinput>
|
|
===> Cleaning for lsof-4.57
|
|
&prompt.root;</screen>
|
|
|
|
<note>
|
|
<para>Można sobie oszczędzić dwóch naddatkowych kroków wpisując
|
|
od razu <command>make install clean</command> zamiast trzech
|
|
osobnych poleceń <command>make</command>,
|
|
<command>make install</command> oraz
|
|
<command>make clean</command>.</para>
|
|
</note>
|
|
|
|
<note>
|
|
<para>Niektóre powłoki utrzymują bufor listy poleceń
|
|
z katalogów znajdujących się w zmiennej środowiskowej
|
|
<envar>PATH</envar>. Ma to za zadanie przyśpieszyć
|
|
wyszukiwanie plików binarnych tychże poleceń.
|
|
Jeśli korzystamy z jednej z takich właśnie powłok
|
|
może okazać się niezbędnym wydać polecenie
|
|
<command>rehash</command> po instalacji portu,
|
|
nim będziemy mogli wykorzystać nowo zainstalowany
|
|
program. Polecenie to dostępne jest przy wykorzystaniu
|
|
powłoki typu <command>tcsh</command>. Natomiast
|
|
dla powłoki typu <command>sh</command> odpowiednikiem
|
|
jest <command>hash -r</command>. Więcej informacji
|
|
dostępnych jest w dokumentacji powłoki.</para>
|
|
</note>
|
|
|
|
<para>Niektóre wydawnictwa na płytach DVD-ROM, jak np. FreeBSD
|
|
Toolkit z <ulink url="http://www.freebsdmall.com/">FreeBSD
|
|
Mall</ulink>, zawierają źródła distfile. Mogą być one
|
|
wykorzystane z kolekcją portów. Wystarczy zamontować płytę
|
|
DVD w <filename>/cdrom</filename>. Jeśli natomiast używamy
|
|
innego punktu montowania dla płyt musimy zmodyfikować zmienną
|
|
<makevar>CD_MOUNTPTS</makevar> by wskazywała na właściwe
|
|
miejsce. Niezbędne źródła distfile zostaną automatycznie
|
|
wykorzystane jeśli znajdują się na płycie.</para>
|
|
|
|
<note>
|
|
<para>Mimo wszystko należy mieć w pamięci, że licencje
|
|
nielicznych portów nie zezwalają na załączenie ich na
|
|
płycie CD-ROM. Może to być np. z powodu konieczności
|
|
wcześniejszej rejestracji przed pobraniem źródeł bądź
|
|
ich redystrybucja nie jest dozwolona. Jeśli chcemy
|
|
zainstalować port, który nie znajduje się na płycie
|
|
CD musimy mieć połączenie z Internetem.</para>
|
|
</note>
|
|
|
|
<para>System portów do pobierania plików wykorzystuje
|
|
program &man.fetch.1;, który z kolei potrafi korzystać
|
|
z wielu zmiennych środowiskowych, m.in.
|
|
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>
|
|
czy <envar>FTP_PASSWORD</envar>. Jeśli znajdujemy się
|
|
za zaporą ogniową, bądź musimy korzystać z serwera
|
|
pośredniczącego FTP/HTTP proxy, może się okazać,
|
|
że będziemy musieli ustawić niektóre z tych zmiennych.
|
|
Kompletna lista wykorzystywanych zmiennych dostępna
|
|
jest w podręczniku systemowym &man.fetch.3;.</para>
|
|
|
|
<para>Dla użytkowników nie mogących być cały czas połączonych
|
|
z Internetem dostępne jest polecenie
|
|
<command>make <maketarget>fetch</maketarget></command>.
|
|
Wystarczy wpisać to polecenie znajdując się w głównym
|
|
katalogu drzewa portów (<filename>/usr/ports</filename>)
|
|
a wymagane pliki zostaną automatycznie pobrane. Polecenie
|
|
to będzie również funkcjonować w podkatalogach, np.
|
|
<filename>/usr/ports/net</filename>. Jednakże, w takiej
|
|
sytuacji <emphasis>nie</emphasis> zostaną automatycznie
|
|
pobrane źródła bibliotek, od których zależy dany port.
|
|
Zamieniając parametr <maketarget>fetch</maketarget> na
|
|
<maketarget>fetch-recursive</maketarget> spowodujemy
|
|
pobranie również źródeł wszystkich portów, od których
|
|
zależy instalowany program.</para>
|
|
|
|
<note><para>Możliwe jest kompilowanie każdego portu z osobna
|
|
w danej kategorii, bądź wszystkich na raz poprzez polecenie
|
|
<command>make</command> wykonane, analogicznie do
|
|
<command>make <makevar>fetch</makevar></command>,
|
|
w głównym katalogu kategorii. Jednakże jest to niebezpieczna
|
|
metoda, gdyż niektóre porty nie mogą jednocześnie funkcjonować
|
|
w systemie, bądź mogą zainstalować różne pliki o tej samej
|
|
nazwie.</para></note>
|
|
|
|
<para>W naprawdę żadkich przypadkach, użytkownicy mogą pozyskać
|
|
pliki distfile z innego źródła niż <makevar>MASTER_SITES</makevar>
|
|
(miejsce skąd je pobiera system portów). Opcję
|
|
<makevar>MASTER_SITES</makevar> można zastąpić za
|
|
pomocą następującego polecenia:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
|
|
&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
|
|
|
<para>W tym przykładzie zastąpiliśmy opcję
|
|
<makevar>MASTER_SITES</makevar> adresem <hostid
|
|
role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>.</para>
|
|
|
|
<note><para>Niektóre porty umożliwiają (a nawet wymagają)
|
|
podanie pewnych opcji kompilacji, które mogą włączyć
|
|
bądź wyłączyć nie potrzebne części aplikacji, pewne
|
|
opcje bezpieczeństwa i inne parametry. Z przychodzących
|
|
na myśl tego typu programów to
|
|
<filename role="package">www/mozilla</filename>, <filename
|
|
role="package">security/gpgme</filename> oraz <filename
|
|
role="package">mail/sylpheed-claws</filename>. Za każdym
|
|
razem gdy dostępne będą tego typu opcje wyświetlony
|
|
zostanie komunikat.</para></note>
|
|
|
|
<sect3>
|
|
<title>Ignorowanie domyślnych katalogów portów</title>
|
|
|
|
<para>Czasami okazuje się być przydatne (a nawet wymagane)
|
|
by skorzystać z innych katalogów tymczasowych i docelowych.
|
|
Domyślne katalogi można zastąpić wykorzystując zmienne
|
|
<makevar>WRKDIRPREFIX</makevar> i <makevar>PREFIX</makevar>.
|
|
Na przykład:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput></screen>
|
|
|
|
<para>spowoduje skompilowanie portu w katalogu
|
|
<filename>/usr/home/example/ports</filename> i instalację
|
|
w podkatalogach <filename>/usr/local</filename>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
|
|
|
|
<para>spowoduje natomiast kompilację w katalogu
|
|
<filename>/usr/ports</filename> oraz instalację
|
|
w podkatalogach
|
|
<filename>/usr/home/example/local</filename>.</para>
|
|
|
|
<para>I oczywiście,</para>
|
|
|
|
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput></screen>
|
|
|
|
<para>spowoduje połącznie obydwu powyższych
|
|
ustawień (jest to za długie by całkowicie zmieściło
|
|
się na stronie, ale powinno dać ogólne wyobrażenie).</para>
|
|
|
|
<para>Alternatywnie, obydwie zmienne mogą być
|
|
również określone jako zmienne środowiskowe.
|
|
Informacje o definiowaniu zmiennych środowiskowych
|
|
dostępne są w podręczniku systemowym naszej
|
|
powłoki.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Jak poradzić sobie z <command>imake</command></title>
|
|
|
|
<para>Niektóre porty wykorzystujące <command>imake</command>
|
|
(część Systemu okien X) nie współpracują ze zmienną
|
|
<makevar>PREFIX</makevar> i mimo wszystko będą
|
|
instalowały programy w <filename>/usr/X11R6</filename>.
|
|
Podobnie niektóre z portów napisanych w języku Perl
|
|
ignorują zmienną <makevar>PREFIX</makevar>
|
|
i instalują programy w głównym drzewie Perla.
|
|
Zmuszenie tych portów do współpracy ze zmienną
|
|
<makevar>PREFIX</makevar> jest niezmiernie trudne,
|
|
albo wręcz niemożliwe.</para>
|
|
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="ports-removing">
|
|
<title>Usuwanie zainstalowanych portów</title>
|
|
|
|
<indexterm>
|
|
<primary>porty</primary>
|
|
<secondary>usuwanie</secondary>
|
|
</indexterm>
|
|
<para>Teraz, gdy wiesz już jak instalować porty,
|
|
zastanawiasz się prawdopodobnie jak je usuwać,
|
|
na przykład w wypadku, gdy zainstalowaliśmy port,
|
|
ale okazało się jednak, że to nie był ten którego
|
|
szukaliśmy. W ramach przykładu usuniemy port,
|
|
który instalowaliśmy poprzednio (dla tych którzy
|
|
nie uważają, był to <command>lsof</command>).
|
|
Podobnie jak w przypadku pakietów (szerzej opisane
|
|
w podrozdziale traktującym o <link
|
|
linkend="packages-using">pakietach</link>),
|
|
również porty usuwane są za pomocą polecenia
|
|
&man.pkg.delete.1;:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="ports-upgrading">
|
|
<title>Aktualizacja portów</title>
|
|
|
|
<indexterm>
|
|
<primary>porty</primary>
|
|
<secondary>aktualizacja</secondary>
|
|
</indexterm>
|
|
<para>Na wstępie musimy wyświetlić zdezaktualizowane porty w kolekcji.
|
|
Wykorzystamy do tego polecenie &man.pkg.version.1;:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
|
|
|
|
<sect3 id="ports-file-updating">
|
|
<title><filename>/usr/ports/UPDATING</filename></title>
|
|
|
|
<para>Po zaktualizowaniu kolekcji, a przed próbą aktualizacji
|
|
jakichkolwiek portów, należy zapoznać się z zawartością pliku
|
|
<filename>/usr/ports/UPDATING</filename>. Plik ten opisuje
|
|
różne zagadnienia i dodatkowe kroki, na które można natknąć
|
|
się i będzie trzeba wykonać podczas aktualizacji, np.
|
|
zmiany formatu plików czy zmiany w lokalizacji plików
|
|
konfiguracyjnych.</para>
|
|
|
|
<para>Jeśli opis w pliku <filename>UPDATING</filename> mówi coś innego
|
|
niż ten tekst, należy zastosować się do opisu.</para>
|
|
</sect3>
|
|
|
|
<sect3 id="portupgrade">
|
|
<title>Aktualizacja portów z wykorzystaniem programu Portupgrade</title>
|
|
|
|
<indexterm>
|
|
<primary>portupgrade</primary>
|
|
</indexterm>
|
|
|
|
<para>Program <application>portupgrade</application> został
|
|
zaprojektowany by ułatwić aktualizację zainstalowanych w
|
|
systemie portów. Dostępny jest z portu <filename
|
|
role="package">sysutils/portupgrade</filename>.
|
|
Jego instalacja przebiega dokładnie tak samo, jak każdego
|
|
innego portu, wykorzystując polecenie
|
|
<command>make <makevar>install
|
|
clean</makevar></command> command:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
|
|
<para>Przeskanujmy następnie listę zainstalowanych portów
|
|
za pomocą polecenia <command>pkgdb -F</command> i usuńmy
|
|
wszystkie niezgodności jakie nam zwróci skanowanie.
|
|
Regularne skanowanie przed każdą aktualizacją jest
|
|
zdecydowanie dobrym pomysłem.</para>
|
|
|
|
<para>Wydanie polecenia <command>portupgrade -a</command>
|
|
spowoduje, że program <application>portupgrade</application>
|
|
rozpocznie aktualizację wszystkich przedawnionych portów
|
|
zainstalowanych w naszym systemie. Parametr <option>-i</option>
|
|
pozwoli przejść w tryb interaktywny, gdzie będziemy musieli
|
|
potwierdzić aktualizację każdego portu.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
|
|
|
|
<para>By zaktualizować jedynie wybraną aplikację zamiast wszystkich
|
|
portów należy wykorzystać polecenie <command>portupgrade
|
|
<replaceable>nazwa_programu</replaceable></command>.
|
|
Opcja <option>-R</option> oznacza, że portupgrade powinien
|
|
najpierw zaktualizować wszystkie porty, od których
|
|
zależy dany program.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
|
|
|
|
<para>By do instalacji wykorzystać pakiety zamiast portów
|
|
należy dodać parametr <option>-P</option>. Wówczas
|
|
<application>portupgrade</application> przeszuka katalogi
|
|
zawarte w zmiennej <envar>PKG_PATH</envar>. Jeśli pakiet
|
|
nie zostanie odnaleziony lokalnie zostanie pobrany z Internetu.
|
|
Jeśli nie będzie możliwe żadne z powyższych, wówczas
|
|
<application>portupgrade</application> wykorzysta do
|
|
aktualizacji porty. By temu zapobiec należy zastosować
|
|
parametr <option>-PP</option>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portupgrade -PR gnome2</userinput></screen>
|
|
|
|
<para>Aby pobrać jedynie pliki źródłowe distfiles
|
|
(bądź pakiety, gdy wykorzystamy opcję <option>-P</option>)
|
|
bez kompilacji czy instalacji czegokolwiek należy użyć
|
|
parametru <option>-F</option>. Więcej informacji
|
|
dostępnych jest w &man.portupgrade.1;.</para>
|
|
</sect3>
|
|
|
|
<sect3 id="portmanager">
|
|
<title>Aktualizacja portów z wykorzystaniem programu Portmanager</title>
|
|
|
|
<indexterm>
|
|
<primary>portmanager</primary>
|
|
</indexterm>
|
|
|
|
<para>Kolejnym narzędziem ułatwiającym aktualizację zainstalowanych
|
|
portów jest <application>Portmanager</application>, dostępny z portu
|
|
<filename role="package">sysutils/portmanager</filename>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/sysutils/portmanager</filename></userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
|
|
<para>Wszystkie zainstalowane porty mogą zostać zaktualizowane
|
|
za pomocą polecenia:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
|
|
|
|
<para>Wykorzystując parametr <option>-ui</option> przechodzimy w tryb
|
|
interaktywny, gdzie będziemy pytani o potwierdzenie każdej operacji
|
|
wykonywanej przez <application>Portmanager</application>.
|
|
Program ten może być z równym powodzeniem wykorzystywany do instalacji
|
|
nowych portów w systemie. W przeciwieństwie do polecenia
|
|
<command>make install clean</command> program
|
|
<application>Portmanager</application> zaktualizuje wszystkie
|
|
zależności nim skompiluje i zainstaluje wybrany port.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portmanager <replaceable>x11/gnome2</replaceable></userinput></screen>
|
|
|
|
<para>Gdy wystąpią problemy z zależnościami wybranego portu
|
|
można wykorzystać <application>Portmanager</application>a,
|
|
by ponownie skompilował je we właściwej kolejności. Na
|
|
koniec zostanie również ponownie skompilowany port
|
|
stwarzający problemy.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portmanager <replaceable>graphics/gimp</replaceable> -f</userinput></screen>
|
|
|
|
<para>Więcej informacji dostępnych jest na stronach podręcznika
|
|
systemowego <application>Portmanager</application>a.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="ports-disk-space">
|
|
<title>Porty i przestrzeń na dysku</title>
|
|
|
|
<indexterm>
|
|
<primary>porty</primary>
|
|
<secondary>przestrzeń na dysku</secondary>
|
|
</indexterm>
|
|
<para>Korzystanie z kolekcji portów z czasem odbije się na
|
|
wolnym miejscu na dysku. Dlatego też zawsze po skompilowaniu
|
|
i zainstalowaniu programu z portu powinniśmy pamiętać
|
|
o usunięciu tymczasowych katalogów roboczych (ang.
|
|
<filename class="directory">work</filename> directories)
|
|
wykorzystując do tego polecenie <command>make
|
|
<makevar>clean</makevar></command>. Całą kolekcję natomiast
|
|
można oczyścić wpisujące polecenie:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
|
|
|
|
<para>Z czasem uzbiera nam się wiele katalogów
|
|
<filename class="directory">distfiles</filename>, które
|
|
będą jedynie zajmować przestrzeń na dysku. Możemy je ręcznie
|
|
usuwać bądź posłużyć się następującym poleceniem, by usunąć
|
|
wszystkie katalogi distfiles nie powiązane aktualnie z
|
|
żadnym portem:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
|
|
|
|
<para>Badź, by usunąć wszystkie katalogi disftiles, do których nie odnosi się
|
|
żaden z aktualnie zainstalowanych portów w naszym systemie:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>
|
|
|
|
<note>
|
|
<para>Program <command>portsclean</command> jest częścią pakietu
|
|
<application>portupgrade</application>.</para>
|
|
</note>
|
|
|
|
<para>Pamiętajmy również o usuwaniu instalowanych portów gdy
|
|
już ich nie potrzebujemy. Przydatne narzędzie pozwalające
|
|
zautomatyzować te czynności znajduje się w
|
|
<filename role="package">sysutils/pkg_cutleaves</filename>.</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="ports-nextsteps">
|
|
<title>Czynności po-instalacyjne</title>
|
|
|
|
<para>Po zainstalowaniu nowego programu z reguły chcemy
|
|
zapoznać się z dostarczoną z nim dokumentacją, zmodyfikować
|
|
wymagane pliki konfiguracyjne, upewnić się, że program
|
|
(jeśli jest to demon) będzie uruchamiany w trakcie
|
|
ładowania systemu, itp.</para>
|
|
|
|
<para>Oczywiście, szczegółowe kroki jakie należy podjąć
|
|
konfigurując każdą aplikację będą różne. Tym nie mniej,
|
|
jeśli właśnie zainstalowaliśmy nowy program i zastanawiamy
|
|
się <quote>Co dalej?</quote> poniższe uwagi mogą
|
|
okazać się pomocne:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Za pomocą &man.pkg.info.1; możemy sprawdzić gdzie
|
|
i jakie pliki zostały zainstalowane. Na przykład, jeśli
|
|
zainstalowaliśmy wersję 1.0.0 pakietu FooPackage,
|
|
polecenie</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
|
|
|
|
<para>wyświetli nam wszystkie pliki zainstalowane
|
|
z pakietu. Szczególną uwagę warto zwrócić na pliki
|
|
zainstalowane w katalogach: <filename>man/</filename>
|
|
zawierającym strony podręcznika systemowego,
|
|
<filename>etc/</filename> zawierającym pliki
|
|
konfiguracyjne, oraz <filename>doc/</filename>,
|
|
gdzie znajdować się będzie dużo obszerniejsza
|
|
dokumentacja.</para>
|
|
|
|
<para>Jeśli nie jesteśmy pewni, którą wersją programu
|
|
zainstalowaliśmy, polecenie</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_info | grep -i <replaceable>foopackage</replaceable></userinput></screen>
|
|
|
|
<para>wyświetli wszystkie zainstalowane pakiety
|
|
zawierające <replaceable>foopackage</replaceable>
|
|
w nazwie. Oczywiście <replaceable>foopackage</replaceable>
|
|
należy zastąpić nazwą poszukiwanego pakietu.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Gdy już udało się ustalić jakie strony podręcznika
|
|
systemowego zostały zainstalowane przez dany pakiet,
|
|
można je przeczytać za pomocą polecenia &man.man.1;.
|
|
Warto również obejrzeć przykładowe pliki konfiguracyjne
|
|
i wszelką dodatkową dokumentację.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Jeśli dana aplikacja posiada własną witrynę internetową
|
|
warto jest również tam poszukać dodatkowej dokumentacji
|
|
czy odpowiedzi na często zadawane pytania (FAQ). Jeśli nie
|
|
znamy właściwego adresu internetowego może być on podany
|
|
w wyniku polecenia</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>
|
|
|
|
<para>Wiersz <literal>WWW:</literal>, jeśli w ogóle jest
|
|
podany, powinien zawierać informacje o adresie witryny.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Programy, które powinny być uruchamiane podczas
|
|
ładowania systemu (np. serwery internetowe) z reguły
|
|
instalują przykładowy skrypt w
|
|
<filename>/usr/local/etc/rc.d</filename>. Powinniśmy
|
|
sprawdzić zawartość tego skryptu oraz w razie potrzeby
|
|
zmodyfikować go bądź zmienić nazwę. Szczegółowe informacje
|
|
dostępne są w podrozdziale <link
|
|
linkend="configtuning-starting-services">Uruchamianie
|
|
usług</link>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="ports-broken">
|
|
<title>Jak radzić sobie ze źle przygotowanymi portami</title>
|
|
|
|
<para>Jeśli natknęliśmy się na port, który z jakichś
|
|
powodów nie działa na naszym komputerze, możemy zrobić
|
|
kilka następujących rzeczy:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Sprawdzić w <ulink url="&url.base;/support.html#gnats">bazie
|
|
danych zgłoszonych problemów</ulink> czy jest przygotowywana
|
|
poprawka dla danego portu. Jeśli tak, może uda się nam
|
|
zastosować tę poprawkę.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Poprosić o pomoc opiekuna danego portu. Adres
|
|
email opiekuna można znaleźć przeglądająć plik
|
|
<filename>Makefile</filename> w katalogu portu bądź
|
|
wpisująć polecenie <command>make maintainer</command>.
|
|
Wysyłając wiadomość pamiętajmy o zawarciu informacji
|
|
o nazwie i wersji portu (najlepiej jest zawrzeć cały
|
|
wiersz z pliku <filename>Makefile</filename> zaczynający
|
|
się od <literal>$FreeBSD:</literal>), oraz opis
|
|
błędu i wynik działania programu w momencie
|
|
zaistnienia błędu.</para>
|
|
|
|
<note>
|
|
<para>Niektóre porty nie są przygotowywane przez pojedyncze
|
|
osoby, ale raczej przez <ulink
|
|
url="&url.articles.mailing-list-faq;/article.html">grupy
|
|
dyskusyjne</ulink>. Wiele adresów takich grup, choć nie
|
|
wszystkie, ma postać
|
|
<email role="nolink">freebsd-listname@FreeBSD.org</email>.
|
|
Należy mieć również to na uwadze formułując swoje pytania.</para>
|
|
|
|
<para>Porty przygotowywane przez
|
|
<email role="nolink">freebsd-ports@FreeBSD.org</email>
|
|
w rzeczywistości nie posiadają żadnego konkretnego opiekuna,
|
|
ani grupy opiekunów. Poprawki i pomoc dla takich portów
|
|
przygotowują osoby zapisane na tę listę dyskusyjną. Nowi
|
|
ochotnicy są zawsze mile widziani!</para>
|
|
</note>
|
|
|
|
<para>W przypadku braku odpowiedzi można również przesłać
|
|
zgłoszenie błędu poprzez &man.send-pr.1; (szczegóły w artykule
|
|
<ulink
|
|
url="&url.articles.problem-reports;/article.html">Writing
|
|
FreeBSD Problem Reports</ulink>).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Naprawić błąd samemu! Podręcznik <ulink
|
|
url="&url.books.porters-handbook;/index.html">Porter's
|
|
Handbook</ulink> (ang.) zawiera szczegółowe informacje
|
|
o strukturze <quote>Portów</quote>, dzięki czemu można samemu
|
|
naprawić błąd lub przygotować własny port!</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Pobrać pakiet z najbliższego serwera FTP.
|
|
<quote>Główne</quote> repozytorium pakietów znajduje
|
|
się na serwerze <hostid
|
|
role="fqdn">ftp.FreeBSD.org</hostid> w katalogu <ulink
|
|
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">packages</ulink>.
|
|
Tym nie mniej warto jest najpierw odszukać <ulink
|
|
url="http://mirrorlist.FreeBSD.org/">lokalny serwer
|
|
lustrzany</ulink>. Szanse na to, że gotowe pakiety
|
|
będą działać poprawnie są większe niż w przypadku
|
|
kompilowania programów. Pakiety można zainstalować
|
|
za pomocą programu &man.pkg.add.1;.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</sect1>
|
|
|
|
</chapter>
|