aboutsummaryrefslogtreecommitdiff
path: root/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml
blob: 1620435d072bf3c85d0a998cda4f18f16add1c08 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
<?xml version="1.0" encoding="iso-8859-2" standalone="no"?>
<!--
     The FreeBSD Documentation Project

     $FreeBSD$
-->

<!-- The FreeBSD Hungarian Documentation Project
     Translated by: PALI, Gabor <pgj@FreeBSD.org>
     %SOURCE%	en_US.ISO8859-1/books/handbook/ports/chapter.sgml
     %SRCID%	1.290
-->

<chapter id="ports" lang="hu">
  <title>Alkalmazások telepítése: csomagok
    és portok</title>

  <sect1 id="ports-synopsis">
    <title>Áttekintés</title>

    <indexterm><primary>portok</primary></indexterm>
    <indexterm><primary>csomagok</primary></indexterm>

    <para>A &os; rendszereszközök gazdag
      gyûjteményével érkezik az alaprendszer
      részeként.  Azonban a külsõ
      alkalmazások telepítéséhez rengeteg
      teendõt kell elvégeznünk.  A feladat
      elvégzésére ezért a &os; két,
      egymást kiegészítõ
      technológiát kínál fel: a &os;
      Portgyûjteményt (telepítés
      forráskódból) és a csomagokat
      (telepítés elõre elkészített
      bináris csomagokból).  Mind a két
      módszerrel fel tudjuk telepíteni a kedvenc
      alkalmazásunk legújabb verzióját
      lokálisan vagy egyenesen a
      hálózatról.</para>

    <para>A fejezet elolvasása során
      megismerjük:</para>

    <itemizedlist>
      <listitem>
	<para>hogyan telepítsünk külsõ
	  fejlesztésû bináris
	  szoftvercsomagokat;</para>
      </listitem>
      <listitem>
	<para>hogyan fordítsunk le a forrásukból
	  külsõ fejlesztésû szoftvereket a
	  Portgyûjtemény
	  segítségével;</para>
      </listitem>
      <listitem>
	<para>hogyan távolítsunk el korábban
	  már telepített csomagokat és
	  portokat;</para>
      </listitem>
      <listitem>
	<para>hogyan bíráljuk felül a
	  Portgyûjtemény által használt
	  alapértelmezett értékeket;</para>
      </listitem>
      <listitem>
	<para>hogyan keressük meg a megfelelõ
	  szoftvercsomagokat;</para>
      </listitem>
      <listitem>
	<para>hogyan frissítsük a telepített
	  alkalmazásokat.</para>
      </listitem>
    </itemizedlist>

  </sect1>

  <sect1 id="ports-overview">
    <title>Az alkalmazások telepítésének
      összefoglalása</title>

    <para>Ha korábban már használtunk &unix;
      rendszereket, valószínûleg ismerjük a
      külsõ alkalmazások
      telepítésének jellemezõ
      menetét:</para>

    <procedure>
      <step>
	<para>Töltsük le a szoftvert, amelyet vagy
	  forráskód vagy pedig bináris
	  formátumban érhetünk el.</para>
      </step>

      <step>
	<para>Bontsuk ki az alkalmazás letöltött
	  változatát (ez általában a
	  &man.compress.1;, &man.gzip.1; vagy a &man.bzip2.1;
	  által tömörített tar
	  állomány).</para>
      </step>

      <step>
	<para>Keressük meg a dokumentációt
	  (többnyire az <filename>INSTALL</filename> vagy a
	  <filename>README</filename> állományban
	  található, vagy a <filename>doc/</filename>
	  alkönyvtárban) és olvassuk el benne, hogyan
	  tudjuk telepíteni a szoftvert.</para>
      </step>

      <step>
	<para>Ha a szoftver forrását
	  töltöttük le, fordítsuk le.
	  Elképzelhetõ, hogy ennek során
	  szerkesztenünk kell a <filename>Makefile</filename>
	  állományt vagy lefuttatnunk a
	  <filename>configure</filename> szkriptet, illetve más
	  lépéseket is el kell
	  végeznünk.</para>
      </step>

      <step>
	<para>Próbáljuk a ki szoftvert, majd
	  telepítsük.</para>
      </step>
    </procedure>

    <para>Ez annak a forgatókönyve, amikor minden hiba
      nélkül lezajlik.  Megeshet azonban, ha olyan szoftvert
      telepítünk, amelyet nem kifejezetten a &os;-hez
      terveztek, akkor javítanunk kell a
      forráskódban a szoftver megfelelõ
      mûködéséhez.</para>

    <para>Ha sikerül mûködésre bírni,
      folytathatjuk &os;-n a szoftver telepítését a
      <quote>megszokott</quote> módon.  Habár a &os; erre
      a célra két lehetõséget is
      felkínál, amivel rengeteg
      erõfeszítéstõl megkímélhet
      minket: ezek a csomagok és a portok.  Az írás
      pillanatában közel &os.numports; külsõ
      alkalmazás érhetõ el ilyen
      formában.</para>

    <para>Egy adott alkalmazás esetén a
      hozzá tartozó &os;-s csomag mindössze egyetlen
      letöltendõ állományt takar.  A csomag
      tartalmazza az alkalmazás
      telepítéséhez szükséges
      összes parancs elõre lefordított
      változtatát, ugyanígy magát a
      dokumentációt is.  A letöltött csomagokat
      a &os; csomagkezelõ parancsaival vehetjük
      használatba: ezek a &man.pkg.add.1;, &man.pkg.delete.1;,
      &man.pkg.info.1; és így tovább.  Az új
      alkalmazások telepítése ennek
      köszönhetõen egyetlen paranccsal
      elvégezhetõ.</para>

    <para>Egy alkalmazás &os;-s portja mögött
      lényegében állományok
      gyûjteménye áll, amelyek abban
      segítenek, hogy automatikusan tudjunk telepíteni a
      forráskód
      felhasználásával.</para>

    <para>Ne felejtsük el, hogy normális esetben
      számos lépcsõt végig kell járnunk
      egy program sajátkezû
      lefordításához (letöltés,
      kitömörítés, javítgatás,
      fordítás, telepítés).  A portot
      alkotó állományok tartalmazzák az
      összes olyan szükséges információt,
      amelyek átengedik ezt a feladatot a rendszernek.  Kiadunk
      néhány egyszerû parancsot és az
      alkalmazás magától letöltõdik,
      kitömörítõdik, módosítja a
      forráskódját, lefordul és
      települ.</para>

    <para>Valójában a portrendszer
      használható olyan csomagok
      létrehozására is, amelyeket
      késõbb a <command>pkg_add</command> és
      többi hozzá hasonló, hamarosan
      részletesebben is bemutatandó csomagkezelõ
      paranccsal is kezelni tudunk.</para>

    <para>A csomagok és a portok egyaránt képesek
      <emphasis>függõségeket</emphasis> kezelni.
      Tegyük fel, hogy egy olyan alkalmazást akarunk
      telepíteni, amely egy adott
      függvénykönyvtár
      meglététõl függ a rendszeren.  Az
      alkalmazás és a könyvtár is
      elérhetõ &os; portként és
      csomagként.  Akár a <command>pkg_add</command>
      parancsot, akár a portrendszert használjuk az
      alkalmazás hozzáadására, mind a
      kettõ észre fogja venni, hogy a szükséges
      könyvtárt még nem telepítettük,
      ezért elõször azt fogja automatikusan
      telepíteni.</para>

    <para>Tudván, hogy a két említett
      megoldás szinte teljesen egyenértékû,
      felmerülhet a kérdés: a &os; mégis
      miért rendelkezik mindkettõvel?  A csomagoknak
      és a portoknak is megvannak a maguk elõnyei, és
      hogy a kettõ közül melyiket használjuk, csak
      az egyéni ízlésünkön
      múlik.</para>

    <itemizedlist>
      <title>A csomagok használatának elõnyei</title>

      <listitem>
	<para>Egy csomag általában kisebb, mint az
	  alkalmazás forráskódját
	  tartalmazó tömörített tar
	  állomány.</para>
      </listitem>

      <listitem>
	<para>A csomagokat nem kell fordítani.  Nagyobb
	  alkalmazások, mint például a
	  <application>Mozilla</application>,
	  <application>KDE</application> vagy
	  <application>GNOME</application> esetén ez
	  kulcsfontosságú lehet, fõleg abban az
	  esetben, ha a rendszerünk ehhez nem eléggé
	  gyors.</para>
      </listitem>

      <listitem>
	<para>A csomagok használata nem várja el
	  tõlünk, hogy behatóbban ismerjük,
	  miként is kell &os;-n szoftvereket
	  lefordítani.</para>
      </listitem>
    </itemizedlist>

    <itemizedlist>
      <title>A portok használatának elõnyei</title>

      <listitem>
	<para>A csomagokat általános esetben igen
	  óvatos beállításokkal
	  készítik el, hiszen a lehetõ legtöbb
	  rendszeren mûködõképesnek kell
	  lenniük.  Ha viszont portból
	  telepítünk, nyugodtan hangolhatjuk úgy a
	  beállításokat, hogy
	  (például) a &pentium; 4 vagy az Athlon
	  processzoroknak kedvezõ kódot hozzanak
	  létre.</para>
      </listitem>

      <listitem>
	<para>Bizonyos alkalmazások fordítás
	  idején állítandó
	  beállításokkal rendelkeznek arról,
	  hogy mire lesznek képesek és mire nem.
	  Például az <application>Apache</application>
	  beépített konfigurációs
	  opciók széles kelléktárával
	  rendelkezik.  Amikor viszont portból hozzuk
	  létre, nem kell elfogadnunk ezek alapértelmezett
	  értékeit, hanem a saját
	  igényeinknek megfelelõen
	  átállíthatjuk ezeket.</para>

	<para>Egyes esetekben több különféle
	  beállítást tükrözõ csomag
	  is létezhet ugyanahhoz az alkalmazáshoz.
	  Például a <application>Ghostscript</application>
	  elérhetõ <filename>ghostscript</filename>
	  és <filename>ghostscript-nox11</filename>
	  csomagként is attól függõen, hogy
	  telepítettük-e az X11 szervert.  Ez
	  természetesen egy meglehetõsen durva
	  kijátszása a csomagrendszernek, és
	  gyorsan lehetetlenné is válik a
	  használata, ha az adott alkalmazás
	  egy-két fordítási idejû
	  beállításnál többel
	  rendelkezik.</para>
      </listitem>

      <listitem>
	<para>Néhány szoftver licencelése tiltja a
	  bináris terjesztést.  Ezért ezek a
	  szoftverek kizárólag csak
	  forráskód formájában
	  továbbíthatóak.</para>
      </listitem>

      <listitem>
	<para>Néhányan nem bíznak meg a
	  bináris verziókban.  Ha látjuk a
	  forráskódot is, akkor (elméletben)
	  át tudjuk nézni, és mi magunk is
	  megkereshetjük a benne lappangó
	  hibákat.</para>
      </listitem>

      <listitem>
	<para>Ha vannak saját javításaink, csak a
	  forráskód birtokában tudjuk ezeket
	  felhasználni.</para>
      </listitem>

      <listitem>
	<para>Sokan szeretik, ha egyszerûen csak <quote>ott
	  van</quote> a szoftverek forráskódja.  Ha
	  éppen unatkoznak, beléjük tudnak
	  nézni, ötleteket és kódot tudnak
	  belõlük meríteni (persze csak akkor, ha ezt a
	  licenc megengedi), vagy tovább tudják ezeket
	  fejleszteni, orvosolni tudják a hibáikat
	  stb.</para>
      </listitem>
    </itemizedlist>

    <para>A portok frissítésérõl a &a.ports;
      és a &a.ports-bugs; valamelyikérõl
      szerezhetünk naprakész
      információkat.</para>

    <warning>
      <para>Mielõtt bármelyik alkalmazást is
	telepítenénk, érdemes meglátogatnunk
	az <ulink url="http://vuxml.freebsd.org"></ulink> oldalt, ahol a
	hozzá tartozó ismert biztonsági
	problémákról olvashatunk.</para>

      <para>Telepíthetjük a <filename
	role="package">ports-mgmt/portaudit</filename> programot is,
	amely automatikusan ellenõrzi a telepített
	alkalmazások ismert sebezhetõségeit.  Ez az
	ellenõrzés egyébként megejthetõ
	minden port lefordítása elõtt is.  Ezalatt a
	<command>portaudit -F -a</command> parancs
	kiadásával ellenõrizhetjük utólag
	a telepített csomagokat.</para>
    </warning>

    <para>A fejezet fennmaradó részében
      megmutatjuk, hogyan használjuk &os;-ben a csomagokat
      és portokat külsõ alkalmazások
      telepítésére és
      karbantartására.</para>

  </sect1>

  <sect1 id="ports-finding-applications">
    <title>A számunkra szükséges alkalmazások
      felkutatása</title>

    <para>Mielõtt telepítenénk bármilyen
      alkalmazást, tudnunk kell, hogyan is nevezik.</para>

    <para>A &os;-hez elérhetõ alkalmazások
      listája folyamatosan növekszik.  Szerencsére
      számos módja van annak, hogy
      utánajárjunk a keresett szoftvernek:</para>

    <itemizedlist>
      <listitem>
	<para>A &os; honlapján találhatunk egy
	  rendszeresen frissülõ listát az összes
	  elérhetõ alkalmazásról, a <ulink
	  url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>
	  címen.  Itt a portok különbözõ
	  kategóriákba sorolva találhatóak
	  meg, ahol név szerint megkereshetjük az
	  alkalmazást (amennyiben ismerjük), vagy
	  végigböngészhetjük az adott
	  kategóriában elérhetõ
	  alkalmazásokat is.</para>
      </listitem>

      <listitem>
	<indexterm><primary>FreshPorts</primary></indexterm>

	<para>Dan Langlille a <ulink
	  url="http://www.FreshPorts.org/"></ulink> címen
	  karbantartja a FreshPorts nevû oldalt.  Ezen az oldalon
	  folyamatosan nyomon lehet követni a
	  Portgyûjteményben megtalálható
	  alkalmazások változásait,
	  lehetõvé téve, hogy egy vagy több
	  portot is <quote>figyeljünk</quote>, vagy e-mailt
	  küldjünk a
	  frissítésükrõl.</para>
      </listitem>

      <listitem>
	<indexterm><primary>FreshMeat</primary></indexterm>

	<para>Amennyiben nem ismerjük a keresett alkalmazás
	  nevét, próbáljuk meg felkutatni a
	  FreshMeaten (<ulink url="http://www.freshmeat.net/"></ulink>)
	  vagy hozzá hasonló oldalakon, majd
	  nézzük meg a &os; honlapján, hogy az adott
	  alkalmazást portolták-e már a
	  rendszerre.</para>
      </listitem>

      <listitem>
	<para>Ha pontosan ismerjük a port nevét, és
	  csak a kategóriáját kellene
	  megkeresnünk, használjuk a &man.whereis.1;
	  parancsot.  Egyszerûen csak adjuk ki a <command>whereis
	  <replaceable>név</replaceable></command> parancsot,
	  ahol a <replaceable>név</replaceable> a
	  telepítendõ program neve.  Ha sikerült
	  megtalálni, részletes információt
	  kapunk arról, hogy hol található,
	  valahogy így:</para>

      <screen>&prompt.root; <userinput>whereis lsof</userinput>
lsof: /usr/ports/sysutils/lsof</screen>

      <para>A fenti példában megtudhatjuk, hogy az
	<command>lsof</command> parancs a
	<filename>/usr/ports/sysutils/lsof</filename>
	könyvtárban található.</para>
      </listitem>

      <listitem>
	<para>Vagy egy egyszerû &man.echo.1; paranccsal is
	  megkereshetjük a portfában a portokat.  Mint
	  például:</para>

	<screen>&prompt.root; <userinput>echo /usr/ports/*/*lsof*</userinput>
/usr/ports/sysutils/lsof</screen>

	<para>Ez a módszer a <filename
	    class="directory">/usr/ports/distfiles</filename>
	  könyvtárba letöltött összes
	  illeszkedõ állományt is
	  kilistázza.</para>
      </listitem>

      <listitem>
	<para>Egy másik lehetõség egy adott port
	  megtalálására, ha a
	  Portgyûjtemény beépített
	  keresési mechanizmusát használjuk.  Ennek
	  használatához a <filename>/usr/ports</filename>
	  könyvtárban kell lennünk.  Miután
	  beléptünk ide, futtassuk le a <command>make
	  <maketarget>search</maketarget>
	  name=<replaceable>programnév</replaceable></command>
	  parancsot, ahol a <replaceable>programnév</replaceable>
	  a keresendõ program neve.  Például, ha az
	  <command>lsof</command> programot keressük:</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>A keresés eredményében
	  leginkább a <quote>Path:</quote> kezdetû sorra kell
	  odafigyelnünk, mivel ez árulja el, hol is
	  találhatjuk meg a portot.  Az itt szereplõ
	  többi információ nem szükséges
	  a port telepítéséhez, ezért
	  azokkal itt most nem foglalkozunk.</para>

	<para>Mélyebb keresésekhez használhatjuk a
	  <command>make <maketarget>search</maketarget>
	  key=<replaceable>szöveg</replaceable></command> parancsot
	  is, ahol a <replaceable>szöveg</replaceable> a
	  keresendõ szöveg(részlet) lesz.  Ezt a
	  rendszer keresni fogja a portok neveiben,
	  megjegyzésekben, leírásokban és
	  függõségekben.  Amikor nem ismerjük a
	  keresett program nevét, ez olyan portok
	  keresésére alkalmas, amelyek egy adott
	  témához kapcsolódnak.</para>

	<para>A fenti esetek mindegyikében a keresés nem
	  különbözteti meg a kis- és
	  nagybetûket.  Tehát az <quote>LSOF</quote>
	  keresése ugyanazt az eredményt adja, mint az
	  <quote>lsof</quote> esetén.</para>
      </listitem>

    </itemizedlist>
  </sect1>

  <sect1 id="packages-using">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Chern</firstname>
	  <surname>Lee</surname>
	  <contrib>Írta: </contrib>
	</author>
      </authorgroup>
    </sect1info>

    <title>A csomagrendszer használata</title>

    <para>&os; alatt több különbözõ
      módon tudunk csomagokat használni:</para>

    <itemizedlist>
      <listitem>
	<para>A <application>sysinstall</application>
	  használatán keresztül a futó
	  rendszeren tudjuk megnézni a telepített
	  csomagokat, tudunk vele csomagokat telepíteni vagy
	  törölni.  Ezzel részletesebben a <xref
	    linkend="packages"/> foglalkozik.</para>
      </listitem>

      <listitem>
	<para>A szakasz további részében
	  ismertetett egyéb parancssoros csomagkezelõ
	  segédprogramok.</para>
      </listitem>
    </itemizedlist>

    <sect2>
      <title>Csomagok telepítése</title>

      <indexterm>
	<primary>csomagok</primary>
	<secondary>telepítése</secondary>
      </indexterm>

      <indexterm><primary><command>pkg_add</command></primary></indexterm>

      <para>A &man.pkg.add.1; segédprogram
	segítségével telepíthetünk
	&os;-hez készült szoftvercsomagokat lokálisan
	vagy a hálózaton levõ egyik szerveren
	megtalálható
	állományokból:</para>

      <example>
	<title>Csomagok letöltése manuálisan
	  és telepítése lokálisan</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>Ha nincsenek egyáltalán helyben csomagjaink
	(például egy &os; CD-készletben), akkor a
	legjobban úgy járunk, ha használjuk a
	&man.pkg.add.1; <option>-r</option> kapcsolóját.
	Ennek hatására a segédprogram
	önmagától meghatározza a
	szükséges állományformátumot
	és verziót, majd FTP-n keresztül letölti
	és telepíti a csomagot.</para>

      <indexterm><primary><command>pkg_add</command></primary></indexterm>

      <screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>

      <para>Az iménti példában a program
	mindenféle további beavatkozás
	nélkül letölti a megfelelõ csomagot
	és felteszi.  Ha a központi helyett egy másik
	szervert szeretnénk használni, felül kell
	bírálnunk az alapértelmezett
	beállításokat és igényeinknek
	megfelelõen be kell állítanunk a
	<envar>PACKAGESITE</envar> környezeti változó
	értékét.  A &man.pkg.add.1; a &man.fetch.3;
	programot használja az állományok
	letöltésére, amely pedig számos
	egyéb környezeti változót is figyel,
	mint például az <envar>FTP_PASSIVE_MODE</envar>,
	az <envar>FTP_PROXY</envar> és az
	<envar>FTP_PASSWORD</envar>.  Ha tûzfal mögött
	vagyunk, ezek közül néhányat biztosan be
	kell majd állítanunk, vagy FTP/HTTP proxyt kell
	használnunk.  A &man.fetch.3; man oldalán
	megtaláljuk ezen változók teljes
	felsorolását.  Figyeljük meg, hogy az
	<literal>lsof-4.56.4</literal> helyett csak
	<literal>lsof</literal>-ot adtunk meg.  Amikor ugyanis
	kérjük a csomag letöltését is,
	nem szabad verziószámot megadnunk.  A
	&man.pkg.add.1; mindig az alkalmazás legfrissebb
	verzióját fogja letöltetni.</para>

      <note>
	<para>Ha a &os.current; vagy &os.stable; verziókat
	  használjuk, a &man.pkg.add.1; mindig az
	  alkalmazás elérhetõ legfrissebb
	  verzióját fogja letölteni.  Ha azonban
	  valamelyik -RELEASE verziót használjuk, a
	  csomagnak az adott kiadáshoz készült
	  verzióját fogja leszedni.  Ezt a
	  mûködési módot a
	  <envar>PACKAGESITE</envar> változó
	  felülírásával viszont meg tudjuk
	  változtatni.  Például ha a
	  &os;&nbsp;5.4-RELEASE változatával dolgozunk, a
	  &man.pkg.add.1; alapértelmezés szerint a
	  <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/</literal>
	  címrõl fogja letölteni a csomagokat.  Ha mi
	  viszont a &os;&nbsp;5-STABLE csomagok
	  letöltését akarjuk elérni,
	  állítsuk az <envar>PACKAGESITE</envar>
	  értékét a
	  <literal>ftp://ftp.freebsd.org/pub/FreeBSD/i386/packages-5-stable/Latest/</literal>
	  címre.</para>
      </note>

      <para>A csomagok <filename>.tgz</filename> és
	<filename>.tbz</filename> formátumokban kerülnek
	terjesztésre.  Ezek az <ulink
	url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>
	címen, vagy pedig a &os; CD-ken találhatóak
	meg.  A 4 CD-bõl álló készlet (illetve
	a PowerPak stb.) minden CD-jén találhatunk
	csomagokat a <filename>packages/</filename>
	könyvtárban.  A csomagokat tároló
	könyvtár struktúrája hasonló a
	<filename>/usr/ports</filename> könyvtárban
	kialakított könyvtárfához.  Minden
	kategóriának saját könyvtára
	van, és minden csomag megtalálható az
	<filename>All</filename> (összes)
	kategóriában.</para>

      <para>A csomagrendszer könyvtárszerkezete tehát
	megegyezik a portok szétosztásával,
	ezáltal így képesek egymással
	összedolgozni a teljes csomag/port rendszer
	megformálásában.</para>

    </sect2>

    <sect2>
      <title>A csomagok kezelése</title>

      <indexterm>
	<primary>csomagok</primary>
	<secondary>kezelés</secondary>
      </indexterm>

      <para>A &man.pkg.info.1; egy olyan segédprogram, amellyel
	készíteni lehet egy listát a
	telepített csomagokról, és emellett
	még más egyéb információkat
	tudhatunk meg róluk.</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>A &man.pkg.version.1; összefoglalja az összes
	telepített csomag verzióját.
	Ezenkívül össze is hasonlítja a csomagok
	verzióját a portfában
	található aktuális
	verziókéval.</para>

      <indexterm><primary><command>pkg_version</command></primary></indexterm>

      <screen>&prompt.root; <userinput>pkg_version</userinput>
cvsup                       =
docbook                     =
...</screen>

      <para>A második oszlopban látható jelek
	utalnak a telepített verzió a helyi
	portfában található
	verzióéhoz viszonyított
	korára.</para>

      <informaltable frame="none" pgwide="1">
        <tgroup cols="2">
	<thead>
	    <row>
	      <entry>Jel</entry>
	      <entry>Jelentés</entry>
	    </row>
	</thead>
	<tbody>
	  <row>
	    <entry>=</entry>
	    <entry>A telepített csomag verziója megegyzik
	      a helyi portfában található
	      verziójával.</entry>
	  </row>
	  <row>
	    <entry>&lt;</entry>
	    <entry>A telepített verzió a portfában
	      levõnél régebbi.</entry>
	  </row>
	  <row>
	    <entry>&gt;</entry>
	    <entry>A telepített verzió újabb, mint
	      a portfában található.  (A helyi
	      portfa valószínûleg nem lett
	      frissítve.)</entry>
	  </row>
	  <row>
	    <entry>?</entry>
	    <entry>A telepített csomag nem
	      található a portok között.  (Ez
	      akkor történhet meg, amikor
	      például egy portot
	      eltávolítottak a
	      Portgyûjteménybõl vagy
	      átnevezték.)</entry>
	  </row>
	  <row>
	    <entry>*</entry>
	    <entry>A csomagnak több verziója is jelen
	      van.</entry>
	  </row>
	  <row>
	    <entry>!</entry>
	    <entry>A telepített csomag szerepel az indexben, de a
	      <command>pkg_version</command> valamiért nem volt
	      képes összehasonlítani a
	      verziószámát az indexben levõ
	      bejegyzéssel.</entry>
	  </row>
	</tbody>
	</tgroup>
    </informaltable>
    </sect2>

    <sect2>
      <title>Csomagok törlése</title>

      <indexterm><primary><command>pkg_delete</command></primary></indexterm>
      <indexterm>
	<primary>csomagok</primary>
	<secondary>törlés</secondary>
      </indexterm>

      <para>Egy korábban már telepített csomag
	eltávolításához használjuk a
	&man.pkg.delete.1; segédprogramot.</para>

      <screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>

      <para>A &man.pkg.delete.1; használatánál
	szükség van a csomag teljes nevének és
	verziószámának megadására.  A
	fenti parancs tehát nem mûködik, ha csak az
	<replaceable>xchat</replaceable>-et adjuk meg az
	<replaceable>xchat-1.7.1</replaceable> helyett.  A
	telepített csomag verzióját azonban
	könnyedén kitalálhatjuk a &man.pkg.version.1;
	alkalmazásával.  Esetleg egyszerûen
	dzsókerkaraktereket is használhatunk:</para>

      <screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat\*</replaceable></userinput></screen>

      <para>Ebben az esetben az összes <literal>xchat</literal>-tel
	kezdõdõ csomagot letörli.</para>

    </sect2>

    <sect2>
      <title>Egyebek</title>

      <para>A csomagokra vonatkozó összes
	információ a <filename>/var/db/pkg</filename>
	könyvtárban található.  Az egyes
	csomagok leírása és hozzájuk
	telepített állományok listája az
	ezen a könyvtáron belül elhelyezkedõ
	állományokban tárolódik.</para>

    </sect2>
  </sect1>

  <sect1 id="ports-using">
    <title>A Portgyûjtemény használata</title>

    <para>A most következõ szakaszokban megismerhetjük
      azokat az alapvetõ utasításokat, amelyekkel a
      Portgyûjteményen keresztül tudunk programokat
      telepíteni és eltávolítani.  Az ehhez
      használható <command>make</command> targetek
      és környezeti változók
      részletesebb leírását a &man.ports.7;
      man oldalán lelhetjük meg.</para>

    <sect2 id="ports-tree">
      <title>A Portgyûjtemény beszerzése</title>

      <para>Mielõtt bármelyik portot is tudnánk
	telepíteni, elsõként magát a
	Portgyûjteményt kell megszereznünk &mdash; ez
	lényegében a <filename>/usr/ports</filename>
	könyvtárban megtalálható
	<filename>Makefile</filename> állományok,
	javítások és leírások
	gyûjteménye.</para>

      <para>A &os; telepítése közben a
	<application>sysinstall</application> rákérdez a
	Portgyûjtemény telepítésére is.
	Ha erre nemet válaszoltunk volna, a portok
	gyûjteményét az alábbi módokon
	szerezhetjük be:</para>

      <procedure>
	<title>A CVSup használatával</title>

	<para>A <application>CVSup</application> protokoll
	  használatával viszonylag gyorsan el tudjuk
	  érni és naprakészen tudjuk tartani a
	  Portgyûjtemény egy példányát.
	  A <application>CVSup</application> használatát
	  alaposabban a <link linkend="cvsup">A CVSup
	  használata</link> címû
	  függelékben ismerhetjük meg.</para>

	<note>
	  <para>A &os; 6.2 változatától kezdve az
	    alaprendszerben a <application>CVSup</application>
	    protokollt a <application>csup</application>
	    valósítja meg.  A &os; korábbi
	    változatának használói ezt a
	    programot a <filename role="package">net/csup</filename>
	    porton vagy csomagon keresztül tudják
	    telepíteni.</para>
	</note>

	<para>Gondoskodjunk róla, hogy a <filename
	    class="directory">/usr/ports</filename> üres legyen a
	  <application>csup</application> elsõ futtatása
	  elõtt!  Ha más forrásból raktuk ide
	  a Portgyûjteményt, a
	  <application>csup</application> nem fogja lenyesegetni az
	  azóta eltávolított
	  javításokat.</para>

	<step>
	  <para>Futtassuk a <command>csup</command> programot:</para>

	  <screen>&prompt.root; <userinput>csup -L 2 -h <replaceable>cvsup.FreeBSD.org</replaceable> /usr/share/examples/cvsup/ports-supfile</userinput></screen>

	  <para>Itt írjuk át a
	    <replaceable>cvsup.FreeBSD.org</replaceable>
	    címét a hozzánk legközelebb
	    levõ <application>CVSup</application> szerver
	    címére.  Az összes elérhetõ
	    tükörszerver címét a <link
	    linkend="cvsup-mirrors">CVSup
	    tükrözések</link> (<xref
	    linkend="cvsup-mirrors"/>) címû részben
	    olvashatjuk.</para>

	  <note>
	    <para>Ha például el akarjuk kerülni a
	      <application>CVSup</application> szerver
	      megadását a parancssorban, akkor
	      mindenképpen a <filename>ports-supfile</filename>
	      állományból érdemes
	      készíteni egy saját
	      verziót.</para>

	    <procedure>
	      <step>
		<para>Ebben az esetben <username>root</username>
		  felhasználóként másoljuk a
		  <filename>/usr/share/examples/cvsup/ports-supfile</filename>
		  állományt egy új helyre,
		  például a <filename>/root</filename>
		  könyvtárba vagy a saját
		  felhasználói
		  könyvtárunkba.</para>
	      </step>

	      <step>
		<para>Szerkesszük át a
		  <filename>ports-supfile</filename>
		  állományt.</para>
	      </step>

	      <step>
		<para>Írjuk át a
		  <replaceable>CHANGE_THIS.FreeBSD.org</replaceable>
		  értéket a hozzánk
		  legközelebb található
		  <application>CVSup</application> szerverére.  A
		  <link linkend="cvsup-mirrors">CVSup
		  tükrözések</link> (<xref
		  linkend="cvsup-mirrors"/>) címû
		  részben megtaláljuk az összes ilyen
		  tükörszervert.</para>
	      </step>

	      <step>
		<para>És most indítsuk el a
		  <command>csup</command> parancsot az alábbi
		  módon:</para>

		<screen>&prompt.root; <userinput>csup -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
	      </step>
	    </procedure>
	  </note>
	</step>

	<step>
	  <para>A &man.csup.1; parancs késõbbi futása
	    során már letölti és
	    érvényesíti az észlelt
	    változtatásokat a saját
	    Portgyûjteményünkben, de a
	    telepített portokat nem fogja
	    újrafordítani.</para>
	</step>
      </procedure>

      <procedure>
	<title>A Portsnap használatával</title>

	<para>A <application>Portsnap</application> egy másik
	  módszert képvisel a Portgyûjtemény
	  terjesztésére, a lehetõségeinek
	  részletesebb megismeréséhez
	  tekintsük át <link
	    linkend="updating-upgrading-portsnap">A Portsnap
	    használata</link> címû szakaszt.</para>

	<step>
	  <para>Töltsük le a Portgyûjtemény
	    tömörített pillanatképét a
	    <filename class="directory">/var/db/portsnap</filename>
	    könyvtárba.  Ha akarjuk, ezután a
	    lépés után már
	    lekapcsolódhatunk az internetrõl.</para>

	  <screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
	</step>

	<step>
	  <para>Ha még csak elõször futtatjuk a
	    <application>Portsnap</application>et, bontsuk ki az
	    imént letöltött állapotot a
	    <filename class="directory">/usr/ports</filename>
	    könyvtárba:</para>

	  <screen>&prompt.root; <userinput>portsnap extract</userinput></screen>

	  <para>Ha viszont már korábban is létezett
	    a <filename class="directory">/usr/ports</filename>
	    könyvtárunk és most csak
	    frissítjük, akkor helyette ezt a parancsot adjuk
	    ki:</para>

	  <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
	</step>
      </procedure>

      <procedure>
	<title>A <application>sysinstall</application>
	  használatával</title>

	<para>Ebben az esetben a <application>sysinstall</application>
	  nevû programmal telepítjük a
	  Portgyûjteményt valamilyen
	  telepítõeszközrõl.  Ilyenkor azonban a
	  kiadás dátumának megfelelõ,
	  valószínûleg régebbi változat
	  kerül fel.  Ha rendelkezünk
	  internet-hozzáféréssel, akkor
	  inkább az elõbb tárgyalt módszerek
	  valamelyikét alkalmazzuk.</para>

	<step>
	  <para><username>root</username>
	    felhasználóként adjuk ki a
	    <command>sysinstall</command> parancsot, ahogy itt is
	    láthatjuk:</para>

	  <screen>&prompt.root; <userinput>sysinstall</userinput></screen>
	</step>

	<step>
	  <para>Menjünk le és álljunk meg a
	    <guimenuitem>Configure</guimenuitem>
	    (Beállítások) menüpontnál,
	    és nyomjunk <keycap>Enter</keycap>
	    billentyût.</para>
	</step>

	<step>
	  <para>Menjünk le és keressük meg a
	    <guimenuitem>Distributions</guimenuitem>
	    (Terjesztések) menüponot, majd nyomjuk meg az
	    <keycap>Enter</keycap> billentyût.</para>
	</step>

	<step>
	  <para>Menjünk le, válasszuk ki a
	    <guimenuitem>ports</guimenuitem> elemet a
	    <keycap>Szóköz</keycap>
	    megnyomásával.</para>
	</step>

	<step>
	  <para>Menjünk fel az <guimenuitem>Exit</guimenuitem>
	    (Kilépés) ponthoz, nyomjuk meg az
	    <keycap>Enter</keycap> billentyût.</para>
	</step>

	<step>
	  <para>Válasszuk ki a telepítéshez
	    használni kívánt eszközt, mint
	    például CD, FTP stb.</para>
	</step>

	<step>
	  <para>Menjünk fel az <guimenuitem>Exit</guimenuitem>
	    (Kilépés) menüpontig, majd nyomjuk meg
	    az <keycap>Enter</keycap> billentyût.</para>
	</step>

	<step>
	  <para>Végezetül lépjünk ki a
	    <application>sysinstall</application> programból,
	    aminhez nyomjuk meg az <keycap>X</keycap>
	    billentyût.</para>
	</step>
      </procedure>
    </sect2>

    <sect2 id="ports-skeleton">
      <title>Portok telepítése</title>

      <indexterm>
	<primary>portok</primary>
	<secondary>telepítés</secondary>
      </indexterm>

      <para>A <quote>váz</quote> fogalma az elsõ, amit a
	Portgyûjteménnyel kapcsolatban tisztázni
	kell.  Dióhéjban összefoglalva, egy port
	váza azon állományok legszûkebb
	halmaza, amelyek elárulják a &os;
	számára, hogyan fordítsuk le hibamentesen
	és hogyan telepítsük az adott programot.
	Ehhez minden port vázában
	megtalálható:</para>

      <itemizedlist>
	<listitem>
	  <para>Egy <filename>Makefile</filename> nevû
	    állomány.  Ez tartalmazza azokat a
	    különbözõ utasításokat,
	    amelyek megmondják, hogyan kell lefordítani
	    és hova kell telepíteni a rendszerünkben
	    az adott alkalmazást.</para>
	</listitem>

	<listitem>
	  <para>Egy <filename>distinfo</filename> nevû
	    állomány.  Ebben található
	    információ a port
	    lefordításához szükséges
	    állományok
	    letöltésérõl, valamint a
	    letöltött állományok
	    ellenõrzéséhez szükséges (az
	    &man.md5.1; és &man.sha256.1; programokkal
	    számolt) ellenõrzõösszegek.</para>
	</listitem>

	<listitem>
	  <para>Egy <filename>files</filename> alkönyvtár.
	    Itt találhatjuk meg azokat a
	    javításokat, amelyek
	    alkalmazásával le tudjuk fordítani a
	    programot &os;-n is.  Ezek a javítások
	    többnyire bizonyos állományok
	    módosításaira vonatkozó
	    apró állományok
	    formájában jelennek meg.
	    Természetüknél fogva szöveges
	    formátumúak, és általában
	    olyanok szerepelnek bennük, hogy
	    <quote>Töröld a 10.  sort</quote> vagy
	    <quote>Változtasd meg a 26.  sort erre: ...</quote>.
	    Ezeket a javításokat eredetileg patcheknek
	    (foltoknak) nevezik, vagy másképp diffeknek
	    (eltéréseknek) is, mivel a &man.diff.1;
	    program segítségével hozzák
	    ezeket létre.</para>

	  <para>Ez a könyvtár tartalmazhat további
	    állományokat is portok
	    elkészítéséhez.</para>
	</listitem>

	<listitem>
	  <para>Egy <filename>pkg-descr</filename> nevû
	    állomány.  Ez a program részletesebb,
	    gyakran többsoros bemutatása.</para>
	</listitem>

	<listitem>
	  <para>Egy <filename>pkg-plist</filename> nevû
	    állomány.  Itt találjuk meg a port
	    által telepítendõ összes
	    állományt.  Ez egyben közli a
	    portrendszerrel is, hogy az eltávolítás
	    során mely állományokat kell majd
	    törölnie.</para>
	</listitem>
      </itemizedlist>

      <para>Egyes portokban szerepelhetnek még egyéb
	állományok is, mint például a
	<filename>pkg-message</filename>.  Ezeket az
	állományokat a portrendszer különleges
	helyzetek kezelésére tartogatja.  Ha még
	többet kívánunk megtudni ezekrõl az
	állományokról, vagy magukról a
	portokról általánosságban, lapozzuk
	fel a <ulink
	  url="&url.books.porters-handbook.en;/index.html">&os; porterek kézikönyv</ulink>ét.</para>

      <para>A port ugyan tartalmazza a forráskód
	lefordításához szükséges
	utasításokat, de konkrétan a
	forráskódot nem.  Ezt egy CD-rõl vagy az
	internetrõl tudjuk megszerezni.  A forráskód
	általában a szerzõje által kedvelt
	formában jelenik meg: ez gyakran egy gzip-pel
	tömörített tar állomány, de lehet
	tömörítve mással is, vagy éppen
	lehet tömörítetlen.  A program
	forráskódját, legyen akármilyen
	formában is, nevezik <quote>distfile</quote>-nak
	(terjesztési állománynak).  A &os; portok
	telepítésének két
	módszerét tárjuk fel a
	következõkben.</para>

      <note>
	<para>A portok telepítéséhez
	  <username>root</username> felhasználóként
	  kell bejelentkeznünk.</para>
      </note>

      <warning>
	<para>Mielõtt telepítenénk bármelyik
	  portot is, ajánlott frissíteni a
	  Portgyûjteményünket és
	  ellenõriznünk az adott portot a <ulink
	  url="http://vuxml.freebsd.org"></ulink> címen
	  található biztonsági
	  adatbázisban.</para>

	<para>Az újonnan telepítendõ
	  alkalmazások biztonsági
	  sebezhetõségeinek ellenõrzését
	  automatikussá is tehetjük a
	  <application>portaudit</application>
	  használatával.  Ez a segédeszköz is
	  a Portgyûjteményben található
	  (<filename role="package">ports-mgmt/portaudit</filename>).
	  Érdemes minden port telepítése elõtt
	  letöltenünk a legfrissebb sebezhetõségi
	  adatbázist a <command>portaudit -F</command> parancs
	  kiadásával.  Mellesleg az adatbázis
	  rendszeres frissítése és ez a
	  biztonsági felülvizsgálat a
	  naponként elvégzendõ biztonsági
	  ellenõrzések közt is megjelenik.
	  Ezekrõl részletesebben a &man.portaudit.1;
	  és &man.periodic.8; man oldalakon olvashatunk.</para>
      </warning>

      <para>A Portgyûjtemény feltételezi, hogy
	mûködõ
	internet-hozzáféréssel rendelkezünk.
	Amennyiben ez nem így lenne, a terjesztési
	állományokat, forráskódokat
	saját magunknak kell bemásolnunk a
	<filename>/usr/ports/distfiles</filename>
	könyvtárba.</para>

      <para>A kezdéshez lépjünk be a
	telepítendõ port
	könyvtárába:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>

      <para>Miután beléptünk az
	<filename>lsof</filename> könyvtárába,
	láthatjuk a port vázát.  A
	következõ lépés a
	fordítás, avagy a port
	<quote>buildelése</quote>
	(elkészítése).  Ezt egy szimpla
	<command>make</command> parancs kiadásával
	kezdeményezhetjük.  Miután megtettük,
	valami ilyesmit kell tapasztalnunk:</para>

      <screen>&prompt.root; <userinput>make</userinput>
&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
&gt;&gt; Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===&gt;  Extracting for lsof-4.57
...
[ide jön a kitömörítés kimenete]
...
&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
===&gt;  Patching for lsof-4.57
===&gt;  Applying FreeBSD patches for lsof-4.57
===&gt;  Configuring for lsof-4.57
...
[ide jön a configure szkript kimenete]
...
===&gt;  Building for lsof-4.57
...
[ide jön a fordítás kimenete]
...
&prompt.root;</screen>

      <para>A fordítás befejeztével visszakapjunk a
	parancssort.  A soron következõ lépés a
	port telepítése lesz.  Ehhez mindössze
	egyetlen szóval kell kiegészítenünk a
	<command>make</command> parancs meghívását:
	ez a szó pedig az <maketarget>install</maketarget>
	(telepít) lesz.</para>

      <screen>&prompt.root; <userinput>make install</userinput>
===&gt;  Installing for lsof-4.57
...
[a telepítés kimenete kimarad]
...
===&gt;   Generating temporary packing list
===&gt;   Compressing manual pages for lsof-4.57
===&gt;   Registering installation for lsof-4.57
===&gt;  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
&prompt.root;</screen>

      <para>Miután ismét visszakaptuk a parancssort,
	már futtatni is tudjuk a frissen telepített
	alkalmazásunkat.  Mivel az <command>lsof</command>
	programnak tovább jogosultságokra is
	szüksége van, egy errõl szóló
	biztonsági figyelmeztetést is láthatunk.  A
	portok létrehozása és
	telepítése során érdemes
	figyelnünk az ehhez hasonló
	figyelmeztetésekre.</para>

      <para>A telepítés befejeztével nem árt
	törölnünk a fordításhoz
	felhasznált alkönyvtárat (work) is.  Ezzel
	nemcsak a drága lemezterületet spóroljuk meg,
	hanem megelõzzük a port késõbbi
	frissítése során felmerülõ
	esetleges problémákat is.</para>

      <screen>&prompt.root; <userinput>make clean</userinput>
===&gt;  Cleaning for lsof-4.57
&prompt.root;</screen>

      <note>
	<para>Az eljárásból két
	  lépést meg is tudunk takarítani, ha
	  egyszerûen csak a <command>make <maketarget>install
	  clean</maketarget></command> parancsot adjuk ki az elõbb
	  három lépésben tagolt
	  <command>make</command>, <command>make
	  <maketarget>install</maketarget></command> és
	  <command>make <maketarget>clean</maketarget></command>
	  parancsok helyett.</para>
      </note>

      <note>
	<para>Bizonyos parancsértelmezõk a
	  <envar>PATH</envar> környezeti változóban
	  felsorolt könyvtárakban található
	  parancsokat gyorsítótárban
	  tárolják, ezzel felgyorsítva a
	  hozzájuk tartozó végrehajtható
	  állományok keresését.  Ha
	  történetesen ilyen parancsértelmezõt
	  használnánk, az új portok
	  telepítése után
	  szükségünk lehet a <command>rehash</command>
	  parancs kiadására, mivel enélkül nem
	  tudjuk elérni a frissen telepített parancsokat.
	  Ezt a parancsot például a
	  <command>tcsh</command> és a hozzá
	  hasonló parancsértelmezõkben
	  találhatjuk meg, az <command>sh</command> és
	  rokonainál pedig a <command>hash -r</command> ennek a
	  megfelelõje.  A pontos információkat
	  errõl a témáról a
	  parancsértelmezõnk
	  dokumentációjában lelhetjük
	  meg.</para>
      </note>

      <para>Némely külsõ DVD termék, mint
	például a <ulink
	url="http://www.freebsdmall.com">&os; Mall</ulink>tól
	megrendelhetõ &os; Toolkit, tartalmazhatnak
	terjesztési állományokat.  Ezek
	remekül használhatóak a
	Portgyûjteménnyel.  Ehhez csatlakoztatnunk kell a
	DVD-t a <filename>/cdrom</filename> könyvtárba.
	Ettõl eltérõ csatlakozási pontok
	használata esetén ne felejtsük el
	átállítani a <makevar>CD_MOUNTPTS</makevar>
	változót sem a <command>make</command>
	számára.  Ekkor a fordításhoz
	szükséges állományokat úgy
	fogja kezelni a rendszer, mintha a merevlemezünkön
	lennének.</para>

      <note>
	<para>Vigyázzunk arra, hogy néhány portot
	  nem lehet CD-n terjeszteni.  Ez részben azért
	  lehet, mert a szükséges állományok
	  letöltéséhez, illetve újbóli
	  terjesztéséhez ki kell tölteni valamilyen
	  regisztrációs nyomtatványt, vagy pedig
	  egyéb okok miatt.  Tehát ha olyan portot akarunk
	  telepíteni, ami nincs rajta a CD-n, mindenképpen
	  rendelkeznünk kell internetkapcsolattal.</para>
      </note>

      <para>A portrendszer a &man.fetch.1; segédprogramot
	használja az állományok
	letöltésére, amely figyelembevesz
	különféle környezeti
	változókat, ilyenek többek közt az
	<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>
	és az <envar>FTP_PASSWORD</envar>.  Ha tûzfal
	mögött vagyunk, szükségünk lehet ezek
	némelyikének helyes
	beállítására, vagy FTP/HTTP proxyt
	kell használnunk.  A &man.fetch.3; man oldala tartalmazza
	ezen változók teljes
	listáját.</para>

      <para>A <command>make <maketarget>fetch</maketarget></command>
	azon felhasználók számára
	nyújt segítséget, akik nem csatlakoznak
	minden esetben a hálózatra.  Egyszerûen csak
	futtassuk le a könyvtárszerkezet
	legtetejérõl (<filename>/usr/ports</filename>) ezt a
	parancsot és a szükséges
	állományok letöltõdnek nekünk.  A
	parancs mûködik az alsóbb szinteken is,
	például a <filename>/usr/ports/net</filename>
	könyvtárban.  Azonban legyünk tekintettel arra,
	hogy ha egy port függ más portoktól vagy
	függvénykönyvtáraktól, ez a
	parancs <emphasis>nem fogja</emphasis> letölteni a
	hozzájuk tartozó állományokat.
	Ilyenkor a <maketarget>fetch</maketarget> helyett
	használjuk a <maketarget>fetch-recursive</maketarget>
	targetet.</para>

      <note>
	<para>Ha a <command>make</command> parancsot egy felsõbb
	  szinten futtatjuk, akkor ezzel létre tudjuk hozni az
	  összes vagy csak kategóriánként az
	  összes portot, hasonlóan az elõbb
	  említett <command>make
	  <maketarget>fetch</maketarget></command> módszerhez.
	  Ez azonban veszélyes, mivel egyes portok
	  kizárják mások használatát.
	  Emellett elõfordulhat az is, hogy bizonyos portok
	  ugyanazon a néven telepítenek több,
	  tartalmukban különbözõ
	  állományt.</para>
      </note>

      <para>Nagyon ritkán adódhat, hogy a
	felhasználónak nem a
	<makevar>MASTER_SITES</makevar> által mutatott
	helyekrõl kell beszereznie a szükséges
	állományokat (innen töltõdnek ugyanis
	le).  A <makevar>MASTER_SITES</makevar>
	beállítást az alábbi paranccsal
	bírálhatjuk felül:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>könyvtár</replaceable></userinput>
&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>

      <para>Ebben a példában a
	<makevar>MASTER_SITES</makevar> értékét a
	<hostid
	role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>
	címre változtattuk meg.</para>

      <note>
	<para>A portok némelyike lehetõvé teszi
	  (esetleg meg is követeli), hogy engedélyezzük
	  vagy letiltsuk a készülõ program bizonyos
	  elemeit hatékonysági, biztonsági vagy
	  egyéb testreszabási irányelvek
	  mentén.  Ilyen többek közt a <filename
	  role="package">www/mozilla</filename>, a <filename
	  role="package">security/gpgme</filename> és a <filename
	  role="package">mail/sylpheed-claws</filename>.  Ha
	  elérhetõek ilyen beállítási
	  lehetõségek, arról a rendszer egy
	  üzenetben tájékoztat minket.</para>
      </note>

      <sect3>
	<title>Az alapértelmezett könyvtárak
	  felülbírálása</title>

	<para>Néha hasznos (vagy kötelezõ) lehet
	  eltérõ munka- és
	  célkönyvtárak alkalmazása.  A
	  <makevar>WRKDIRPREFIX</makevar> és a
	  <makevar>PREFIX</makevar> változókkal ezek
	  alapértelmezéseit tudjuk megváltoztatni.
	  Például a</para>

	<screen>&prompt.root; <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput></screen>

	<para>parancs a portot a
	  <filename>/usr/home/example/ports</filename>
	  könyvtárban fogja lefordítani és az
	  eredményét a <filename>/usr/local</filename>
	  könyvtárba telepíti.  A</para>

	<screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>

	<para>parancs hatására a port a
	  <filename>/usr/ports</filename> könyvtárban
	  készül el és a
	  <filename>/usr/home/example/local</filename>
	  könyvtárba települ.</para>

	<para>Természetesen a</para>

	<screen>&prompt.root; <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput></screen>

	<para>parancs ötvözi az elõbbi kettõt
	  (amelyet most túlságosan is hosszú lenne
	  kiírni, de vélhetõen sejthetõ
	  belõle az alapötlet).</para>

	<para>Lehetõség van ezen változókat a
	  saját környezetünkben is
	  beállítani.  Ha erre lenne
	  szükségünk, nézzünk utána
	  az ezzel kapcsolatos teendõnek a
	  parancsértelmezõnk man oldalán.</para>

      </sect3>

      <sect3>
	<title>Az <command>imake</command>
	  használatáról</title>

	<para>Bizonyos portok az (X Window System
	  részeként megjelenõ)
	  <command>imake</command> segédprogramra
	  támaszkodnak, ahol viszont nem mûködik a
	  <makevar>PREFIX</makevar>
	  átállítása és
	  mindenképpen a <filename>/usr/X11R6</filename>
	  könyvtárba akar telepíteni.  Ehhez
	  hasonlóan egyes Perl portok figyelmen kívül
	  hagyják a <makevar>PREFIX</makevar>
	  változót és közvetlenül a Perl
	  fájába kerülnek.  Az ilyen portok
	  esetén nagyon nehéz vagy szinte lehetetlen
	  betartatni a <makevar>PREFIX</makevar>
	  használatát.</para>

      </sect3>

      <sect3>
	<title>A portok újrakonfigurálása</title>

	<para>Egyes portok lefordítása elõtt
	  megjelenik egy ncurses alapú menü, ahol ki tudunk
	  választani bizonyos fordítási
	  beállításokat.  Gyakran elõfordul,
	  hogy a port lefordítása után a
	  felhasználók szeretnék újra
	  elõhozni ezt a menüt és megadni vagy kivenni
	  bizonyos beállításokat.  Erre több
	  mód is kínálkozik.  Egyik ilyen
	  lehetõség az, ha belépünk a port
	  könyvtárába és kiadjuk a
	  <command>make <maketarget>config</maketarget></command>
	  parancsot, amivel lényegében ismét
	  elõcsaljuk a beállításokat
	  összefoglaló menüt.  Másik ilyen
	  lehetõség a <command>make
	  <maketarget>showconfig</maketarget></command>
	  alkalmazása, amivel a porthoz tartozó
	  összes beállítást tudjuk egyszerre
	  megjeleníteni.  Ezek mellett még
	  használható a <command>make
	  <maketarget>rmconfig</maketarget></command> parancs is, amivel
	  törölni tudjuk az összes eddigi
	  beállítást és így
	  újrakezdhetjük a port
	  konfigurációját.  Ezek és a
	  többi ilyen opció a &man.ports.7; man oldalon
	  kerül bõvebb kifejtésre.</para>

      </sect3>
    </sect2>

    <sect2 id="ports-removing">
      <title>A portok eltávolítása</title>

      <indexterm>
	<primary>portok</primary>
	<secondary>eltávolítás</secondary>
      </indexterm>

      <para>Most már tudjuk, miként lehet portokat
	telepíteni, azonban valószínûleg
	még az is érdekelhet minket, hogy miként
	kell ezeket eltávolítani abban az esetben, ha
	például késõbb meggondolnánk
	magunkat velük kapcsolatban.  A korábban
	telepített példaportot fogjuk
	eltávolítani (a figyelmetlenek
	kedvéért megemlítjük, hogy ez az
	<command>lsof</command> volt).  A portok
	eltávolítása teljesen egybevág a
	csomagokéval (errõl a <link
	linkend="packages-using">csomagokról szóló
	részben</link> beszéltünk), mivel ekkor is
	használhatjuk a &man.pkg.delete.1; parancsot:</para>

      <screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>

    </sect2>

    <sect2 id="ports-upgrading">
      <title>A portok frissítése</title>

      <indexterm>
	<primary>portok</primary>
	<secondary>frissítés</secondary>
      </indexterm>

      <para>Elõször is a &man.pkg.version.1; parancs
	felhasználásával listázzuk ki azokat
	a portokat, amik felett már eljárt az idõ
	és a Portgyûjteményben
	található belõlük újabb
	verzió:</para>

      <screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>

      <sect3 id="ports-file-updating">
	<title>A <filename>/usr/ports/UPDATING</filename>
	  állomány</title>

	<para>Miután frissítettük a
	  Portgyûjteményünket, de még
	  mielõtt megpróbálnánk
	  akármelyik portot is frissíteni, érdemes
	  egy pillantást vetnünk a
	  <filename>/usr/ports/UPDATING</filename>
	  állományra.  Itt megtalálhatóak
	  azok a problémák és a hozzájuk
	  tartozó lépések, amelyekkel a
	  felhasználóknak a portok
	  frissítése során szembe kell
	  nézniük, beleértve az
	  állományformátumok, a
	  konfigurációs állományok
	  helyének megváltozását vagy
	  egyéb olyan módosításokat, amik a
	  korábbi verziókkal
	  összeférhetetlenséget
	  szülhetnek.</para>

	<para>Amennyiben az <filename>UPDATING</filename>
	  állomány tartalma ellentmondana az itt
	  olvasottakkal, mindig az <filename>UPDATING</filename>
	  állományban leírtak az
	  irányadóak.</para>

      </sect3>

      <sect3 id="portupgrade">
	<title>Portok frissítése a
	  <application>portupgrade</application>
	  használatával</title>

	<indexterm><primary>portupgrade</primary></indexterm>

	<para>A <application>portupgrade</application> nevû
	  segédprogramot a portok egyszerûbb
	  frissítésére találták ki,
	  és a <filename
	  role="package">ports-mgmt/portupgrade</filename> portban
	  található meg.  A <command>make
	  <maketarget>install clean</maketarget></command> paranccsal
	  bármelyik más porthoz hasonlóan
	  telepíthetjük:</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portupgrade</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

	<para>A <command>pkgdb -F</command> paranccsal
	  fésültessük át a telepített
	  portok listáját, és javítsuk az
	  általa jelentett ellentmondásokat.
	  Érdemes rendszeresen elvégezni ezt,
	  lehetõleg minden frissítés
	  elõtt.</para>

	<para>Miután kiadtuk a <command>portupgrade -a</command>
	  parancsot, a <application>portupgrade</application>
	  nekilát frissíteni az összes elavult portot
	  a rendszerünkben.  Ha minden egyes
	  frissítést külön meg szeretnénk
	  erõsíteni, használjuk a <option>-i</option>
	  kapcsolót is.</para>

	<screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>

	<para>Ha nem akarjuk az összes portot frissíteni,
	  csupán egy bizonyos alkalmazásét,
	  használjuk a <command>portupgrade
	  <replaceable>pkgname</replaceable></command>
	  paraméterezést.  A <option>-R</option>
	  kapcsoló megadásával a
	  <application>portupgrade</application> elõször
	  frissíti az adott alkalmazás
	  függõségeit.</para>

	<screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>

	<para>Ha a mûvelet során csomagokat
	  kívánunk használni portok helyett, adjuk
	  meg a <option>-P</option> kapcsolót.  Ennek
	  révén a <application>portupgrade</application>
	  megkeresi a csomagokat a <envar>PKG_PATH</envar>
	  környezeti változóban felsorolt
	  könyvtárakban vagy ha itt nem találja,
	  letölti ezeket egy távoli szerverrõl.
	  Amennyiben a csomagokat sem helyben, sem pedig a távoli
	  szerveren nem találja, a
	  <application>portupgrade</application> helyettük portokat
	  fog használni.  Ilyenkor a portok
	  használatát a <option>-PP</option>
	  kapcsoló beállításával
	  lehet elkerülni:</para>

	<screen>&prompt.root; <userinput>portupgrade -PP gnome2</userinput></screen>

	<para>Csak a terjesztési állományok (vagy a
	  <option>-P</option> esetén csomagok)
	  letöltéséhez használjuk a
	  <option>-F</option> kapcsolót.  Mindezekrõl
	  részletesebben a &man.portupgrade.1; man oldalon
	  olvashatunk.</para>

      </sect3>

      <sect3 id="portmanager">
	<title>Portok frissítése a
	  <application>Portmanager</application>
	  használatával</title>

	<indexterm><primary>portmanager</primary></indexterm>

	<para>A <application>Portmanager</application> egy másik
	  hasznos segédprogram a portok könnyû
	  frissítéséhez.  A <filename
	  role="package">ports-mgmt/portmanager</filename> porton
	  keresztül érhetõ el:</para>

	<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmanager</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

	<para>Használatával az összes
	  telepített port egyetlen paranccsal
	  frissíthetõ:</para>

	<screen>&prompt.root; <userinput>portmanager -u</userinput></screen>

	<para>Ha a <application>Portmanager</application> minden egyes
	  lépését külön meg
	  kívánjuk erõsíteni, akkor a
	  <option>-ui</option> kapcsolókat se felejtsük el
	  megadni.  A <application>Portmanager</application> emellett
	  új portok telepítésére is
	  használható.  Eltérõen a
	  <command>make install clean</command> parancsban
	  megszokottaktól, a kiválasztott port összes
	  függõségét még a
	  fordítás és a telepítés
	  elõtt fogja frissíteni.</para>

	<screen>&prompt.root; <userinput>portmanager <replaceable>x11/gnome2</replaceable></userinput></screen>

	<para>Ha bármilyen gondot tapasztalnánk a
	  kiválasztott port függõségeit
	  illetõen, a <application>Portmanager</application>t
	  felkérhetjük az összes
	  függõség helyes sorrendben
	  történõ
	  újrafordítására.  Amikor
	  befejezte, a problémás portot is újra
	  létrehozza.</para>

	<screen>&prompt.root; <userinput>portmanager <replaceable>graphics/gimp</replaceable> -f</userinput></screen>

	<para>Bõvebb információkért
	  lásd &man.portmanager.1;.</para>

      </sect3>

      <sect3>
	<title>Portok frissítése a
	  <application>Portmaster</application>
	  használatával</title>

	<indexterm><primary>portmaster</primary></indexterm>

	<para>A <application>Portmaster</application> szintén a
	  portok frissítésére alkalmas
	  segédprogram.  A <application>Portmaster</application>
	  esetében a hangsúly az
	  <quote>alaprendszerben</quote> is megtalálható
	  eszközök használatán van (tehát
	  nem függ semmilyen más porttól) és a
	  <filename class="directory">/var/db/pkg/</filename>
	  könyvtárban található
	  információk alapján dönti el, hogy
	  milyen portokat kell frissítenie.  A <filename
	  role="package">ports-mgmt/portmaster</filename> portból
	  érhetõ el:</para>

	<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmaster</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

	<para>A <application>Portmaster</application> a portokat az
	  alábbi négy kategória
	  valamelyikébe sorolja be:</para>

	<itemizedlist>
	  <listitem>
	    <para>Gyökér (root) portok (nem függenek
	      semmitõl, semmi sem függ tõlük)</para>
	  </listitem>
	  <listitem>
	    <para>Törzs (trunk) portok (nem függenek
	      semmitõl, de mások függenek
	      tõlük)</para>
	  </listitem>
	  <listitem>
	    <para>Ág (branch) portok (vannak
	      függõségeik és mások is
	      függenek tõlük)</para>
	  </listitem>
	  <listitem>
	    <para>Levél (leaf) portok (vannak
	      függõségeik, de semmi sem függ
	      tõlük)</para>
	  </listitem>
	</itemizedlist>

	<para>A következõ paranccsal le tudjuk kérni az
	  összes telepített portot és az
	  <option>-L</option> kapcsolóval
	  frissítéseket keresni hozzájuk:</para>

<screen>&prompt.root; <userinput>portmaster -L</userinput>
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
        ===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
        ===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
        ===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports

===>>> 137 total installed ports
        ===>>> 83 have new versions available
</screen>

	<para>Az összes telepített port egyetlen
	  egyszerû paranccsal frissíthetõ:</para>

	<screen>&prompt.root; <userinput>portmaster -a</userinput></screen>

	<note>
	  <para>A <application>Portmaster</application>
	    alapértelmezés szerint minden egyes
	    törlendõ korábbi portról
	    biztonsági másolatot készít.
	    Amikor az új változat telepítése
	    sikeresen lezajlott, akkor a
	    <application>Portmaster</application> ezt a másolatot
	    megsemmisíti.  A <option>-b</option>
	    paraméterrel azonban megkérhetjük, hogy
	    ne törölje le a biztonsági mentést.
	    Az <option>-i</option> megadásával a
	    <application>Portmaster</application> interaktív
	    módban indul el, és minden port
	    frissítése elõtt a
	    felhasználó
	    megerõsítését fogja
	    kérni.</para>
	</note>

	<para>Amennyiben valamilyen hiba lép fel a
	  frissítés folyamán, az
	  <option>-f</option> opció megadásával
	  kérhetjük az összes port
	  frissítését és
	  újrafordítását is:</para>

	<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>

	<para>A <application>Portmaster</application>
	  használatával új portokat is fel tudunk
	  telepíteni a rendszerre úgy, hogy azok
	  függõségeit is igyekszik frissíteni a
	  lefordításuk elõtt:</para>

	<screen>&prompt.root; <userinput>portmaster <replaceable>shells/bash</replaceable></userinput></screen>

	<para>A további részleteket a &man.portmaster.8;
	  man oldalon találjuk.</para>

      </sect3>
    </sect2>

    <sect2 id="ports-disk-space">
      <title>A portok tárigénye</title>

      <indexterm>
	<primary>portok</primary>
	<secondary>tárigény</secondary>
      </indexterm>

      <para>A Portgyûjtemény idõvel egyre több
	helyet fog elfoglalni a merevlemezünkön.
	Miután sikeresen létrehoztunk és
	telepítettünk egy szoftvert a
	hozzá tartozó portból, érdemes mindig
	eltakarítanunk magunk után a <filename
	class="directory">work</filename> könyvtárban menet
	közben keletkezett átmeneti
	állományokat a <command>make
	<maketarget>clean</maketarget></command> parancs
	használatával.  Az egész
	Portgyûjteményt egyetlen mozdulattal ezzel a
	paranccsal tudjuk végigsepregetni:</para>

      <screen>&prompt.root; <userinput>portsclean -C</userinput></screen>

      <para>Az idõ elõrehaladtával a <filename
	class="directory">distfiles</filename> könyvtárban
	is rengeteg régi forrás tud felhalmazódni.
	Ezeket eltávolíthatjuk kézzel, vagy az
	alábbi parancs segítségével
	törölhetjük az összes olyan
	terjesztési állományt, amelyekre már
	egyetlen port sem hivatkozik:</para>

      <screen>&prompt.root; <userinput>portsclean -D</userinput></screen>

      <para>Vagy törölhetjük az összes olyan
	terjesztési állományt, amelyre egyetlen
	pillanatnyilag feltelepített port sem hivatkozik a
	rendszerünkben:</para>

      <screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>

      <note>
	<para>A <command>portsclean</command> segédprogram a
	  <application>portupgrade</application> programcsomag
	  része.</para>
      </note>

      <para>Ne felejtsük el eltávolítani azokat a
	portokat, amikre már nincs szükségünk a
	továbbiakban.  Ebben a feladatban egy jól
	használható segédeszköz lehet a
	segítségünkre, a <filename
	role="package">ports-mgmt/pkg_cutleaves</filename> port.</para>

    </sect2>
  </sect1>

  <sect1 id="ports-nextsteps">
    <title>Telepítés utáni teendõk</title>

    <para>Az új alkalmazás feltelepítése
      után minden bizonnyal szeretnénk elolvasni a
      hozzá társított dokumentációt,
      az egyedi beállításainknak megfelelõen
      módosítani a konfigurációs
      állományokat, engedélyezni a
      rendszerindítás során
      történõ automatikus
      indítását (ha démonról lenne
      szó) és így tovább.</para>

    <para>Az egyes alkalmazások
      beállításához elvégzendõ
      lépések nyilvánvalóan
      egyedenként eltérõek.  Azonban tudunk
      szolgálni néhány általános
      tanáccsal válaszként az ilyenkor
      felmerülõ <quote>Na és akkor most mi
      legyen?</quote> kérdésre:</para>

    <itemizedlist>
      <listitem>
	<para>Kérdezzük meg a &man.pkg.info.1;
	  programtól, milyen állományok és
	  hova kerültek fel a telepítés során.
	  Például, ha a SzuperCsomag 1.0.0-át
	  raktunk fel, akkor a</para>

	<screen>&prompt.root; <userinput>pkg_info -L SzuperCsomag-1.0.0 | less</userinput></screen>

	<para>parancs kilistázza az összes
	  állományt, amit a csomagból felraktunk.
	  Ezek közül leginkább a
	  <filename>man/</filename> könyvtárban
	  levõekre figyeljünk, mivel ezek lesznek az
	  alkalmazás man oldalai.  Ehhez hasonlóan az
	  <filename>etc/</filename> könyvtárban a
	  konfigurációs állományok és
	  a <filename>doc/</filename> könyvtárban pedig a
	  nagyobb lélegzetvételû
	  dokumentációk foglalnak helyet.</para>

	<para>Ha nem emlékszünk pontosan rá, hogy az
	  alkalmazások melyik verzióját is
	  telepítettük, a</para>

	<screen>&prompt.root; <userinput>pkg_info | grep -i <replaceable>SzuperCsomag</replaceable></userinput></screen>

	<para>alakú parancs megkeresi az összes olyan
	  csomagot, aminek a nevében szerepel a
	  <replaceable>SzuperCsomag</replaceable>
	  szövegrészlet.  A fenti példában
	  természetesen igény szerint változtassuk
	  meg a <replaceable>SzuperCsomag</replaceable> szöveget a
	  tényleges csomag nevére.</para>
      </listitem>

      <listitem>
	<para>Ahogy sikerült megtalálnunk az
	  alkalmazáshoz tartozó man oldalakat, lapozzuk
	  fel ezeket a &man.man.1; segítségével.
	  Ugyanígy nézzük át a
	  mellékelt minta konfigurációs
	  állományokat és az összes
	  elérhetõ dokumentációt.</para>
      </listitem>

      <listitem>
	<para>Ha az alkalmazásnak van saját honlapja,
	  kutassunk ott is információk után,
	  olvassuk el a gyakran ismételt kérdéseket
	  és így tovább.  Ha nem tudnánk
	  pontosan a honlap címét, a</para>

	<screen>&prompt.root; <userinput>pkg_info <replaceable>SzuperCsomag-1.0.0</replaceable></userinput></screen>

	<para>kimenetébõl könnyen
	  elõkeríthetõ.  Itt egy
	  <literal>WWW:</literal> kezdetû sort kell keresnünk
	  (már amennyiben létezik), amit az
	  alkalmazás honlapjának címe kell
	  kövessen.</para>
      </listitem>

      <listitem>
	<para>A rendszerrel együtt indítandó portok
	  (ilyenek többek közt az internetes
	  szolgáltatások), általában a
	  <filename>/usr/local/etc/rc.d</filename>
	  könyvtárba rakják a saját
	  indítószkriptjüket.  Érdemes
	  leellenõrizni ezt a szkriptet és az
	  igényeinknek megfelelõen módosítani,
	  átnevezni.  A <link
	  linkend="configtuning-starting-services">Szolgáltatások
	  indítása</link> címû szakaszban ezt
	  részleteiben is megismerhetjük.</para>
      </listitem>
    </itemizedlist>

  </sect1>

  <sect1 id="ports-broken">
    <title>Teendõ a sérült portokkal</title>

    <para>Ha véletlenül ráakadnánk egy olyan
      portra, ami nem mûködik megfelelõen,
      nagyjából a következõket tudjuk
      tenni:</para>

    <orderedlist>
      <listitem>
	<para>Derítsük ki a <ulink
	  url="&url.base;/support.html#gnats">Hibajelentések
	  adatbázisá</ulink>ból, hogy
	  készül-e már javítás az adott
	  porthoz.  Ha igen, akkor annak befejezése után
	  már képesek leszünk
	  használni.</para>
      </listitem>

      <listitem>
	<para>Kérjük meg a port
	  karbantartóját, hogy segítsen.  A
	  karbantartó elérhetõségének
	  felderítéséhez gépeljük be a
	  <command>make <maketarget>maintainer</maketarget></command>
	  parancsot, vagy keressük meg a
	  <filename>Makefile</filename> állományban a
	  karbantartó e-mail címét.  Ne
	  felejtsük el neki megemlíteni a levélben a
	  port nevét és verzióját (vagyis
	  mindenképpen küldjük el a
	  <literal>&dollar;FreeBSD:</literal> sort a
	  <filename>Makefile</filename>
	  állományból) és a parancs
	  kiadásától a hiba
	  felbukkanásáig tartó kimenetet.</para>

	<note>
	  <para>Némely portokat nem
	    egyedülálló személyek tartanak
	    karban, hanem egy <ulink
	    url="&url.articles.mailing-list-faq.en;/article.html">
	    levelezési lista</ulink>.  A legtöbbjük
	    neve, ha nem is mindé, nagyjából
	    ilyen alakú: <email
	    role="nolink">freebsd-<replaceable>listanév</replaceable>@FreeBSD.org</email>.
	    Egy ilyen jellegû kérdés
	    megfogalmazása során ezt is vegyük
	    figyelembe!</para>

	  <para>Kifejezetten a <email
	      role="nolink">ports@FreeBSD.org</email>
	    karbantartóval rendelkezõ portoknak nincs
	    rendes gazdája.  A hozzájuk
	    kapcsolódó javítások és
	    mindenféle segítség, ötlet
	    errõl a levelezési listáról
	    érkeznek.  Ilyen esetekben számítunk
	    az önkéntes segítõkre!</para>
	</note>

	<para>Ha nem kapunk semmilyen választ, a hiba
	  bejelentésére használhatjuk a
	  &man.send-pr.1; programot is (errõl bõvebben
	  lásd a <ulink
	  url="&url.articles.problem-reports.en;/article.html">&os;-s
	  hibajelentések írása</ulink>
	  címû cikket).</para>
      </listitem>

      <listitem>
	<para>Javítsuk meg mi magunk!  A <ulink
	  url="&url.books.porters-handbook.en;/index.html">porterek
	  kézikönyve</ulink> részletesen taglalja a
	  <quote>portok</quote> belsõ
	  felépítését, így onnan
	  elindulva akár magunktól is meg tudunk
	  javítani egy esetlegesen sérült portot,
	  vagy be is küldhetjük a sajátunkat!</para>
      </listitem>

      <listitem>
	<para>Töltsük le a porthoz tartozó csomagot a
	  hozzánk legközelebb levõ FTP oldalról.
	  A <quote>központi</quote> csomaggyûjtemény az
	  <hostid role="fqdn">ftp.FreeBSD.org</hostid> címen, a
	  <ulink
	  url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">packages
	  nevû könyvtárban</ulink>
	  található, de mielõtt ide
	  fordulnánk, nézzük meg a hozzánk
	  <ulink url="http://mirrorlist.FreeBSD.org/">legközelebb
	  levõ tükörszervert</ulink> is!  Ha egy csomagot
	  így telepítünk, akkor több
	  eséllyel fog mûködni és
	  ráadásul még jóval gyorsabb is.  A
	  csomag telepítésére használjuk a
	  &man.pkg.add.1; programot.</para>
      </listitem>
    </orderedlist>

  </sect1>
</chapter>