aboutsummaryrefslogtreecommitdiff
path: root/nl_NL.ISO8859-1/books/handbook/ports/chapter.xml
blob: 637d00f247837ffe660a5aedd8fba1a97cc01528 (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
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
    The Dutch FreeBSD Documentation Project

    $FreeBSD$

    %SOURCE%	en_US.ISO8859-1/books/handbook/ports/chapter.sgml
    %SRCID%	39544
-->

<chapter id="ports">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>René</firstname>
	<surname>Ketelaars</surname>
	<contrib>Vertaald door </contrib>
      </author>
      <author>
	<firstname>Siebrand</firstname>
	<surname>Mazeland</surname>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Applicaties installeren: pakketten en ports</title>

  <sect1 id="ports-synopsis">
    <title>Overzicht</title>

    <indexterm><primary>ports</primary></indexterm>

    <indexterm><primary>pakketten</primary></indexterm>

    <para>&os; bevat een grote collectie aan systeemgereedschappen
      als onderdeel van het basissysteem.  De mogelijkheden reiken
      echter niet heel ver en daarom is er snel een applicatie van een
      andere partij nodig.  &os; bevat twee complementaire
      technologieën om andere applicaties te installeren: de &os;
      Portscollectie (voor het installeren vanuit broncode) en pakketten
      (voor het installeren vanuit voorgecompileerde binaire
      bestanden).  Beide systemen kunnen gebruikt worden om de nieuwste
      versies van een gewenste applicatie te installeren van lokale
      media of rechtstreeks van het netwerk.</para>

    <para>Na het lezen van dit hoofdstuk weet de lezer:</para>

    <itemizedlist>
      <listitem>
	<para>Hoe binaire softwarepakketten van derden te
	  installeren;</para>
      </listitem>

      <listitem>
	<para>Hoe software van derden vanuit de Portscollectie vanuit
	  broncode te installeren;</para>
      </listitem>

      <listitem>
	<para>Hoe eerder geïnstalleerde pakketten of ports te
	  verwijderen;</para>
      </listitem>

      <listitem>
	<para>Hoe standaardwaarden die door de ports worden gebruikt te
	  wijzigen;</para>
      </listitem>

      <listitem>
	<para>Hoe het juiste softwarepakket te vinden;</para>
      </listitem>

      <listitem>
	<para>Hoe applicaties bij te werken.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="ports-overview">
    <title>Overzicht van softwareinstallatie</title>

    <para>Als u eerder gebruik heeft gemaakt van een &unix;-systeem dan
      is het bekend dat de standaardprocedure voor het installeren van
      software van derden ongeveer als volgt is:</para>

    <procedure>
      <step>
	<para>Download de software als broncode of als binair
	  bestand;</para>
      </step>

      <step>
	<para>Pak de software uit vanuit zijn originele distributietype
	  (meestal een tar-bestand gecomprimeerd met &man.compress.1;,
	  &man.gzip.1;, of &man.bzip2.1;);</para>
      </step>

      <step>
	<para>Zoek de documentatie (meestal een
	  <filename>INSTALL</filename> of <filename>README</filename>
	  bestand of enkele bestanden in een submap
	  <filename>doc/</filename>) en lees zorgvuldig hoe de software
	  geïnstalleerd moet worden;</para>
      </step>

      <step>
	<para>Als de software als broncode is gedistribueerd, moet de
	  broncode gecompileerd worden.  Dit kan wijzigingen in een
	  <filename>Makefile</filename> vereisen of het draaien van een
	  <command>configure</command> script en andere
	  werkzaamheden;</para>
      </step>

      <step>
	<para>De software installeren en testen.</para>
      </step>
    </procedure>

    <para>En dat geldt alleen als alles goed gaat.  Als er een
      softwarepakket geïnstalleerd wordt dat niet specifiek
      gemaakt is voor &os; moet mogelijkerwijs zelfs de code aangepast
      worden om alles goed te laten werken.</para>

    <para>Als de gebruiker het wenst, kan hij in &os; doorgaan met het
      installeren van software op de <quote>traditionele</quote>
      manier.  &os; levert echter twee technologieën die veel
      moeite kunnen besparen: pakketten en ports.  Op dit moment zijn zo
      meer dan &os.numports; applicaties beschikbaar.</para>

    <para>Voor iedere gewenste applicatie is het &os; pakket voor die
      applicatie één te downloaden bestand.  Het pakket
      bevat voorgecompileerde kopiën met alle commando's voor de
      applicatie en alle instellingenbestanden of documentatie.  Een
      gedownload pakketbestand kan gemanipuleerd worden met &os;
      pakketbeheercommando's zoals &man.pkg.add.1;,
      &man.pkg.delete.1;, &man.pkg.info.1;, enzovoort.  Het installeren
      van een nieuwe applicatie kan met één
      commando.</para>

    <para>Een &os; port van een applicatie is een groep bestanden
      ontworpen om het proces van compileren van een applicatie vanuit
      broncode te automatiseren.</para>

    <para>Het is te vergelijken met de stappen die normaal gevolgd
      worden om een programma te compileren (downloaden, uitpakken,
      aanpassen, compileren en installeren).  De bestanden die samen
      een port vormen bevatten alle noodzakelijke informatie om het
      systeem dit te laten doen.  Met een aantal eenvoudige commando's
      wordt de broncode voor de applicatie automatisch gedownload,
      uitgepakt, aangepast, gecompileerd en geïnstalleerd.</para>

    <para>Het portssysteem kan zelfs gebruikt worden om pakketten te
      maken die later weer gemanipuleerd kunnen worden met
      <command>pkg_add</command> en andere pakketbeheercommando's,
      waarover later meer uitleg wordt gegeven.</para>

    <para>Zowel pakketten als ports kennen afhankelijkheden
      (<emphasis>dependencies</emphasis>).  Stel dat er een applicatie
      geïnstalleerd gaat worden die er vanuit gaat dat een
      specifieke bibliotheek wordt geïnstalleerd.  Zowel de
      applicatie als de bibliotheek zijn beschikbaar als &os; ports
      en pakketten.  Als het commando <command>pkg_add</command> of
      het portssysteem wordt gebruikt om de applicatie toe te voegen,
      dan zien beiden dat de bibliotheek niet geïnstalleerd is
      en wordt deze automatisch eerst geïnstalleerd.</para>

    <para>Gezien het feit dat beide technologieën vrijwel identiek
      zijn, kan de vraag rijzen waarom &os; de moeite neemt om beide te
      faciliteren.  Pakketten en ports hebben ieder hun eigen kracht.
      Welke gebruikt wordt hangt af van voorkeuren en
      omstandigheden.</para>

    <itemizedlist>
      <title>Voordelen van pakketten</title>

      <listitem>
	<para>Een gecomprimeerd pakket tar-bestand is meestal kleiner
	  dan het gecomprimeerde tar-bestand met de broncode van de
	  applicatie;</para>
      </listitem>

      <listitem>
	<para>Pakketten vereisen geen additionele compilatie.  Voor
	  grote applicaties als <application>Mozilla</application>,
	  <application>KDE</application> of
	  <application>GNOME</application> kan dit belangrijk zijn,
	  vooral als een systeem wat trager is;</para>
      </listitem>

      <listitem>
	<para>Pakketten vereisen geen begrip van het proces van het
	  compileren van software op &os;.</para>
      </listitem>
    </itemizedlist>

    <itemizedlist>
      <title>Voordelen van ports</title>

      <listitem>
	<para>Pakketten worden meestal gecompileerd met conservatieve
	  opties, omdat ze moeten draaien op een maximaal aantal
	  systemen.  Bij het installeren vanuit de port kunnen de
	  compilatie-instellingen aangepast worden om zo bijvoorbeeld
	  code te maken die specifiek voor een Pentium 4 of een Athlon
	  processor is;</para>
      </listitem>

      <listitem>
	<para>Sommige applicaties hebben compilatie-instellingen
	  gerelateerd aan wat ze wel of niet kunnen doen.
	  <application>Apache</application> kan bijvoorbeeld ingesteld
	  worden met een uitgebreide hoeveelheid verschillende
	  ingebouwde instellingen.  Door vanuit de port te werken
	  hoeven niet alle standaardinstellingen geaccepteerd te worden
	  en kunnen ze ingesteld worden;</para>

	<para>In sommige gevallen zijn er meerdere pakketten voor
	  dezelfde applicatie om specifieke instellingen aan te geven.
	  <application>Ghostscript</application> is bijvoorbeeld
	  beschikbaar als een <filename>ghostscript</filename> pakket
	  en <filename>ghostscript-nox11</filename> pakket,
	  afhankelijk van het al dan niet geïnstalleerd hebben van
	  een X11 server.  Deze ruwe vorm van tweaking is mogelijk met
	  pakketten, maar dit wordt snel onmogelijk als een applicatie
	  meer dan één of twee verschillende
	  compilatie-instellingen heeft;</para>
      </listitem>

      <listitem>
	<para>De licentievoorwaarden van sommige softwaredistributies
	  verbieden binaire distributie.  Ze moeten dus gedistribueerd
	  worden als broncode;</para>
      </listitem>

      <listitem>
	<para>Sommige mensen vertrouwen binaire distributies niet.
	  Broncode kan tenminste (in theorie) zelf doorgelezen en
	  gecontroleerd worden op potentiële problemen;</para>
      </listitem>

      <listitem>
	<para>Als er lokale modificaties zijn, is de broncode nodig om
	  ze toe te passen;</para>
      </listitem>

      <listitem>
	<para>Sommige mensen hebben graag de broncode zodat ze die
	  kunnen lezen als ze zich vervelen, erin kunnen hacken, code
	  kunnen overnemen (indien de licentie dit toestaat
	  natuurlijk), enzovoort.</para>
      </listitem>
    </itemizedlist>

    <para>Om vernieuwingen van ports bij te houden kan een abonnement
      genomen worden op de &a.ports; en/of de &a.ports-bugs;.</para>

    <warning>
      <para>Voordat een applicatie wordt geïnstalleerd is het aan
	te raden op <ulink url="http://vuxml.freebsd.org/"></ulink>
	na kijken of er geen beveiligingsproblemen voor de gewenste
	applicatie bekend zijn.</para>

      <para>Het is ook mogelijk om <filename
	  role="package">ports-mgmt/portaudit</filename> te installeren,
	dat automatisch alle geïnstalleerde applicaties
	controleert op bekende fouten.  Deze controle wordt ook
	uitgevoerd voordat een port wordt geïnstalleerd.
	Met het commando <command>portaudit&nbsp;-F&nbsp;-a</command>
	kunnen de pakketten die al geïnstalleerd zijn worden
	gecontroleerd.</para>
    </warning>

    <para>In de rest van dit hoofdstuk wordt uitgelegd hoe pakketten en
      ports gebruikt kunnen worden om software in &os; te installeren
      en te beheren.</para>
  </sect1>

  <sect1 id="ports-finding-applications">
    <title>Applicaties zoeken</title>

    <para>Voordat een applicatie geïnstalleerd kan worden, moeten
      de doelen bekend zijn en hoe de applicatie heet.</para>

    <para>De lijst met voor &os; beschikbare applicaties groeit
      continu.  Gelukkig zijn er een aantal manieren om te
      zoeken:</para>

    <itemizedlist>
      <listitem>
	<para>Op de &os; website staat een recente doorzoekbare lijst
	  met alle beschikbare applicaties: <ulink
	    url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>.
	  De ports zijn onderverdeeld in categorieën.  Er kan naar
	  een applicatie gezocht worden op naam (als die bekend is) of
	  alle applicaties in een categorie kunnen bekeken
	  worden.</para>
      </listitem>

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

	<para>Dan Langille onderhoudt FreshPorts op <ulink
	    url="http://www.FreshPorts.org/"></ulink>.  FreshPorts
	  volgt veranderingen in applicaties in de ports en biedt de
	  mogelijkheid om of meer ports te volgen.  Er wordt dan een
	  email gestuurd als de port is bijgewerkt.</para>
      </listitem>

      <listitem>
      <indexterm><primary>Freecode</primary></indexterm>

	<para>Als de naam van de gewenst applicatie niet bekend is, is
	  het wellicht mogelijk deze te achterhalen via een website als
	  Freecode (<ulink url="http://www.freecode.com/"></ulink>)
	  en kan daarna op de &os; site gecontroleerd worden of de
	  applicatie al geschikt gemaakt is voor gebruik met
	  &os;.</para>
      </listitem>

      <listitem>
	<para>Als de precieze naam van de port bekend is, maar niet
	  bekend is in welke categorie deze staat, kan dit achterhaald
	  worden met &man.whereis.1;.  Door simpelweg <command>whereis
	    <replaceable>bestand</replaceable></command> in te geven,
	  waar <replaceable>bestand</replaceable> het te installeren
	  programma is.  Als het op het systeem staat, wordt dat als
	  volgt aangegeven:</para>

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

	<para>Dit geeft aan dat <command>lsof</command> (een
	  systeemhulpprogramma) in de map
	  <filename>/usr/ports/sysutils/lsof</filename> staat.</para>
      </listitem>

      <listitem>
	<para>U kunt ook een eenvoudig &man.echo.1;-statement gebruiken
	  om uit te zoeken waar een port zich in te ports tree bevindt.
	  Bijvoorbeeld:</para>

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

	<para>Merk op dat dit alle overeenkomstige bestanden die
	  gedownload zijn in de map <filename
	    class="directory">/usr/ports/distfiles</filename>
	  terruggeeft.</para>
      </listitem>

      <listitem>
	<para>Nog een andere manier om een port op te sporen is door het
	  ingebouwde zoekmechanisme van de Portscollectie te
	  gebruiken.  Hiervoor moet het huidige pad de map
	  <filename>/usr/ports</filename> zijn.  Vanuit die map kan
	  <command>make <maketarget>search</maketarget>
	    name=<replaceable>programmanaam</replaceable></command>
	  uitgevoerd worden, waar
	  <replaceable>programmanaam</replaceable> de naam is van het
	  programma dat wordt gezocht.  Als bijvoorbeeld
	  <command>lsof</command> wordt gezocht:</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>Het belangrijkste onderdeel van de uitvoer is in dit geval
	  de regel waarop <quote>Path:</quote> staat, omdat die aangeeft
	  waar de port staat.  De andere informatie is niet nodig voor de
	  installatie van de port en wordt hier niet behandeld.</para>

	<para>Voor nog dieper zoeken kan ook <command>make
	    <maketarget>search</maketarget>
	    key=<replaceable>string</replaceable></command>
	  gebruikt worden waar <replaceable>string</replaceable> tekst is
	  waarnaar gezocht moet worden.  Hiermee wordt naar namen van
	  ports, commentaar, beschrijvingen en afhankelijkheden gezocht
	  en dit kan gebruikt worden om ports te vinden die te maken
	  hebben met een bepaald onderwerp als onbekend is hoe het
	  gezochte programma heet.</para>

	<para>In beide gevallen is de zoekstring niet
	  hoofdlettergevoelig.  Zoeken naar <quote>LSOF</quote> geeft
	  hetzelfde resultaat als zoeken naar <quote>lsof</quote>.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="packages-using">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Chern</firstname>
	  <surname>Lee</surname>
	  <contrib>Bijgedragen door </contrib>
	</author>
      </authorgroup>
      <!-- 30 Mar 2001 -->
    </sect1info>

    <title>Het pakkettensysteem gebruiken</title>

    <para>Er zijn verschillende gereedschappen die gebruikt worden om
      pakketten op &os; te beheren:</para>

    <itemizedlist>
      <listitem>
	<para>Het gereedschap <command>sysinstall</command> kan op een
	  draaiend systeem worden gebruikt om beschikbare en
	  geïnstalleerde pakketten te installeren, te verwijderen,
	  en weer te geven.  Zie voor meer informatie <xref
	    linkend="packages"/>.</para>
      </listitem>

      <listitem>
	<para>De opdrachtregelgereedschappen om pakketten te beheren,
	  welke het onderwerp van de rest van deze sectie zijn.</para>
      </listitem>
    </itemizedlist>

    <sect2>
      <title>Pakketten installeren</title>

      <indexterm>
	<primary>pakketten</primary>

	<secondary>installeren</secondary>
      </indexterm>

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

      <para>Met &man.pkg.add.1; kan een &os; softwarepakket
	geïnstalleerd worden vanaf een lokaal bestand of vanaf een
	server op het netwerk.</para>

      <example>
	<title>Handmatig pakketten downloaden en lokaal
	  installeren</title>

	<screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
Connected to ftp2.FreeBSD.org.
220 ftp3.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>Als er lokaal geen bron is voor pakketten (zoals de &os;
	CD-ROM-verzameling) dan is het waarschijnlijk makkelijker om de
	<option>-r</option> optie te gebruiken met &man.pkg.add.1;.
	Deze optie zorgt er voor dat het hulpprogramma automatisch het
	correcte formaat en de juiste versie bepaalt en die daarna
	binnenhaalt en installeert vanaf een FTP site.</para>

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

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

      <para>Het voorbeeld hierboven haalt het correcte pakket binnen
	en installeert het zonder dat de gebruiker iets hoeft te doen.
	Als u een alternatieve &os; Pakkettenmirror wilt specificeren,
	in plaats van de hoofddistributiesite, dan moet u de
	omgevingsvariabele <envar>PACKAGESITE</envar> overeenkomstig
	instellen om de standaardinstellingen aan te passen.
	&man.pkg.add.1; gebruikt &man.fetch.3; om de bestanden binnen te
	halen, dat gebruik maakt van diverse omgevingsvariabelen zoals
	<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, en
	<envar>FTP_PASSWORD</envar>.  Mogelijk moeten ook
	één of meer van deze variabelen gebruikt worden
	als een machine achter een firewall staat of als gebruik
	gemaakt moet worden van een FTP/HTTP proxy.  In &man.fetch.3;
	staat de complete lijst.  In het voorbeeld hierboven is gebruik
	gemaakt van <literal>lsof</literal> in plaats van
	<literal>lsof-4.56.4</literal>.  Als het pakket wordt
	binnengehaald met behulp van de bovenstaande instellingen, dan
	moet het versienummer van het pakket niet gebruikt worden.
	&man.pkg.add.1; haalt automatisch de laatste versie van de
	applicatie binnen.</para>

      <note>
	<para>&man.pkg.add.1; downloadt de meest recente versie van een
	  applicatie als &os.current; of &os.stable;.  Als een
	  -RELEASE versie wordt gebruikt, wordt het pakket dat bij die
	  release hoort gebruikt.  Het is mogelijk dit gedrag te
	  veranderen door <envar>PACKAGESITE</envar> te wijzigen.  Als u
	  bijvoorbeeld &os;&nbsp;8.1-RELEASE draait, dan haalt
	  &man.pkg.add.1; standaard de pakketten uit
	  <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/</literal>.
	  Om &man.pkg.add.1; de &os;&nbsp;8-STABLE pakketten te laten
	  downloaden kan <envar>PACKAGESITE</envar> ingesteld worden op
	  <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/</literal>.</para>
      </note>

      <para>Pakketbestanden worden gedistribueerd in de formaten
	<filename>.tgz</filename> en <filename>.tbz</filename>.  Ze
	zijn te vinden op <ulink
	  url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>
	of op de &os; CD-ROM-distributie.  Iedere CD-ROM in de
	&os;&nbsp;4-CD-ROM-verzameling (en de PowerPak, enzovoort) bevat
	pakketten in de map <filename>/packages</filename>.  De opbouw
	van de pakketten is ongeveer gelijk aan die van
	<filename>/usr/ports</filename>.  Iedere categorie heeft zijn
	eigen map en ieder pakket staat ook in de map
	<filename>All</filename>.</para>

      <para>De mappenstructuur van het pakkettensysteem is gelijk aan
	die van het portssysteem.  Samen vormen ze het
	pakket/portssysteem.</para>
    </sect2>

    <sect2>
      <title>Pakketten beheren</title>

      <indexterm>
	<primary>pakketten</primary>

	<secondary>beheren</secondary>
      </indexterm>

      <para>&man.pkg.info.1; is een hulpprogramma dat de diverse
	geïnstalleerde pakketten toont en beschrijft.</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>&man.pkg.version.1; is een hulpprogramma dat een
	samenvatting van de versie van alle geïnstalleerde
	pakketten geeft.  Het vergelijkt de versie van het pakket met
	de huidige versie in de Portscollectie.</para>

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

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

      <para>De symbolen in de tweede kolom geven aan hoe de
	geïnstalleerde versie staat ten opzichte van de versie die
	beschikbaar is in de lokale Portscollectie.</para>

      <informaltable frame="none" pgwide="1">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Symbool</entry>

	      <entry>Betekenis</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry>=</entry>

	      <entry>De versie van het geïnstalleerde pakket komt
		overeen met die in de lokale Portscollectie.</entry>
	    </row>

	    <row>
	      <entry>&lt;</entry>

	      <entry>De geïnstalleerde versie is ouder dan die
		beschikbaar is in de ports.</entry>
	    </row>

	    <row>
	      <entry>&gt;</entry>

	      <entry>De geïnstalleerde versie is nieuwer dan die
		in de lokale Portscollectie.  De lokale Portscollectie
		is waarschijnlijk verouderd.</entry>
	    </row>

	    <row>
	      <entry>?</entry>

	      <entry>Het geïnstalleerde pakket kan niet gevonden
		worden in index van de Portscollectie.  Dit kan
		bijvoorbeeld gebeuren als een geïnstalleerde port
		uit de Portscollectie wordt verwijderd of
		hernoemd.</entry>
	    </row>

	    <row>
	      <entry>*</entry>

	      <entry>Er zijn meerdere versies van het pakket.</entry>
	    </row>

	    <row>
	      <entry>!</entry>

	      <entry>Het geïnstalleerde pakket bestaat in de index
		maar om de een of andere reden was
		<command>pkg_version</command> niet in staat om het
		versienummer van het geïnstalleerde pakket met de
		overeenkomstige ingang in de index te
		vergelijken.</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>
    </sect2>

    <sect2>
      <title>Pakketten verwijderen</title>

      <indexterm><primary><command>pkg_delete</command></primary></indexterm>

      <indexterm>
	<primary>pakketten</primary>

	<secondary>verwijderen</secondary>
      </indexterm>

      <para>Voor het verwijderen van een geïnstalleerd pakket
	wordt het hulpprogramma &man.pkg.delete.1; gebruikt.</para>

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

      <para>Merk op dat &man.pkg.delete.1; de volledige naam en het
	volledige nummer van het pakket nodig heeft; het bovenstaande
	commando zou niet werken als <replaceable>xchat</replaceable>
	in plaats van <replaceable>xchat-1.7.1</replaceable> was
	gegeven.  Het is echter eenvoudig om &man.pkg.version.1; te
	gebruiken om de versie van het geïnstalleerde pakket te
	achterhalen.  U zou ook eenvoudigweg een wildcard kunnen
	gebruiken:</para>

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

      <para>In dit geval zullen alle pakketten waarvan de naam met
	<literal>xchat</literal> begint worden verwijderd.</para>
    </sect2>

    <sect2>
      <title>Diversen</title>

      <para>Alle informatie over pakketten wordt opgeslagen in de map
	<filename>/var/db/pkg</filename>.  De lijst met
	geïnstalleerde bestanden en beschrijvingen van ieder
	pakket staat in de bestanden in deze map.</para>
    </sect2>
  </sect1>

  <sect1 id="ports-using">
    <title>De Portscollectie gebruiken</title>

    <para>In de volgende paragrafen worden basisinstructies gegeven
      over het gebruik van de Portscollectie om programma's op een
      systeem te installeren of ervan te verwijderen.  Een
      gedetailleerde beschrijving van de <command>make</command>-doelen
      en omgevingsvariabelen staat in &man.ports.7;.</para>

    <sect2 id="ports-tree">
      <title>De Portscollectie</title>

      <para>Voordat ports geïnstalleerd kunnen worden moet eerst
	de Portscollectie op een systeem staan, die in essentie een set
	van <filename>Makefiles</filename>, patches en bestanden met
	beschrijvingen is in <filename>/usr/ports</filename>.</para>

      <para>Tijdens het installeren van een &os; systeem, vraagt
	<application>sysinstall</application> of de Portscollectie
	geïnstalleerd moet worden.  Als daar <quote>NO</quote> is
	aangegeven, dan kan met behulp van de volgende instructies
	alsnog de Portscollectie op een systeem gezet worden:</para>

      <procedure>
	<title>Met CVSup</title>

	<para>Dit is een snelle methode voor het verkrijgen en
	  bijhouden van een kopie van Portscollectie met behulp van het
	  <application>CVSup</application>-protocol.  Meer informatie
	  over <application>CVSup</application> staat in <link
	    linkend="cvsup">CVSup gebruiken</link>.</para>

	<note>
	  <para>De implementatie van het
	    <application>CVSup</application>-protocol dat met &os; wordt
	    geleverd heet <application>csup</application>.</para>
	</note>

	<para>Zorg ervoor dat
	  <filename class="directory">/usr/ports</filename> leeg is
	  voordat <application>csup</application> voor het eerst
	  gebruikt wordt!  Als er reeds een Ports Collectie aanwezig is
	  die via een andere bron is opgehaald, zal
	  <application>csup</application> verwijderde patchbestanden
	  niet verwijderen.</para>

	<step>
	  <para>Draai <command>csup</command>:</para>

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

	  <para>Wijzig <replaceable>cvsup.FreeBSD.org</replaceable>
	    in een <application>CVSup</application> server in de buurt.
	    In <link linkend="cvsup-mirrors">CVSup Mirrors</link>
	    (<xref linkend="cvsup-mirrors"/>) staat een complete lijst
	    van mirrorsites;</para>

	  <note>
	    <para>Het kan wenselijk zijn een aangepaste
	      <filename>ports-supfile</filename> te gebruiken,
	      bijvoorbeeld om een <application>CVSup</application>
	      server niet mee te hoeven geven op de
	      commandoregel.</para>

	    <procedure>
	      <step>
		<para>Kopieer in dit geval, als
		  <username>root</username>,
		  <filename>/usr/share/examples/cvsup/ports-supfile</filename>
		  naar een nieuwe locatie, zoals /root of een
		  thuismap.</para>
	      </step>

	      <step>
		<para>Wijzig <filename>ports-supfile</filename>.</para>
	      </step>

	      <step>
		<para>Wijzig
		  <replaceable>CHANGE_THIS.FreeBSD.org</replaceable> in
		  een <application>CVSup</application> server in de
		  buurt.  In <link linkend="cvsup-mirrors">CVSup
		    Mirrors</link> (<xref linkend="cvsup-mirrors"/>)
		  staat een volledige lijst met mirrorsites.</para>
	      </step>

	      <step>
		<para>Roep nu als volgt <command>csup</command>
		  aan:</para>

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

	<step>
	  <para>Het later draaien van &man.csup.1; zal alle recente
	    veranderingen aan uw Portscollectie downloaden en toepassen,
	    behalve het eigenlijke herbouwen van ports voor uw eigen
	    systeem.</para>
	</step>
      </procedure>

      <procedure>
	<title>Met Portsnap</title>

	<para>Portsnap is een alternatief systeem voor het
	  distribueren van de Portscollectie.  In <link
	    linkend="updating-upgrading-portsnap">Portsnap
	    gebruiken</link> staat een gedetailleerde beschrijving van
	  alle mogelijkheden van <application>Portsnap</application>.</para>

	<step>
	  <para>Download een gecomprimeerd snapshot van de
	    Portscollectie naar <filename
	      class="directory">/var/db/portsnap</filename>.  Na deze
	    stap kan eventueel de verbinding met Internet verbroken
	    worden.</para>

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

	<step>
	  <para>Als <application>Portsnap</application> voor de eerste
	    keer draait, pak het snapshot dan uit in <filename
	      class="directory">/usr/ports</filename>:</para>

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

	  <para>Als <filename class="directory">/usr/ports</filename>
	    al gevuld is en er alleen wordt bijgewerkt, voer dan het
	    volgende commando uit in plaats van het
	    bovenstaande:</para>

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

      <procedure>
	<title>Met sysinstall</title>

	<para>Bij deze methode wordt
	  <application>sysinstall</application> gebruikt om de
	  Portscollectie van installatiemedia te installeren.  Hier
	  wordt wel de Portscollectie op het moment dat de release
	  gemaakt is geïnstalleerd.  Bij toegang tot Internet is
	  het advies altijd een andere methode te gebruiken.</para>

	<step>
	  <para>Draai als <username>root</username>
	    <command>sysinstall</command> zoals hieronder aangegeven:</para>

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

	<step>
	  <para>Scroll naar beneden en selecteer
	    <guimenuitem>Configure</guimenuitem>, druk op
	    <keycap>Enter</keycap>.</para>
	</step>

	<step>
	  <para>Scroll naar beneden en selecteer
	    <guimenuitem>Distributions</guimenuitem>, druk op
	    <keycap>Enter</keycap>.</para>
	</step>

	<step>
	  <para>Scroll naar <guimenuitem>ports</guimenuitem>, druk op
	    <keycap>Space</keycap>.</para>
	</step>

	<step>
	  <para>Scroll naar boven naar<guimenuitem>Exit</guimenuitem>,
	    druk op <keycap>Enter</keycap>.</para>
	</step>

	<step>
	  <para>Selecteer de gewenste installatiemedia, zoals CD-ROM,
	    FTP, enzovoort.</para>
	</step>

	<step>
	  <para>Scroll omhoog naar <guimenuitem>Exit</guimenuitem> en
	    druk op <keycap>Enter</keycap>.</para>
	</step>

	<step>
	  <para>Druk op <keycap>X</keycap> om
	    <application>sysinstall</application> af te sluiten.</para>
	</step>
      </procedure>
    </sect2>

    <sect2 id="ports-skeleton">
      <title>Ports installeren</title>

      <indexterm>
	<primary>ports</primary>

	<secondary>installeren</secondary>
      </indexterm>

      <para>Het eerste wat uitleg behoeft als het over de
	Portscollectie gaat is de term <quote>skelet</quote>
	(<quote>skeleton</quote>).  In een notendop is een portskelet
	een minimaal aantal bestanden dat &os; aangeeft hoe een
	programma gecompileerd en geïnstalleerd kan worden.  Ieder
	portskelet bevat:</para>

      <itemizedlist>
	<listitem>
	  <para>Een <filename>Makefile</filename>.  De
	    <filename>Makefile</filename> bevat verschillende
	    definities die aangeven hoe de applicatie gecompileerd moet
	    worden en waar die op een systeem geïnstalleerd moet
	    worden;</para>
	</listitem>

	<listitem>
	  <para>Een bestand <filename>distinfo</filename>.  Dit bestand
	    bevat informatie over de bestanden die gedownload moeten
	    worden om de port te bouwen, en hun checksums (door gebruik
	    te maken van &man.sha256.1;), om vast te
	    stellen dat de bestanden niet corrupt zijn geraakt tijdens
	    de download;</para>
	</listitem>

	<listitem>
	  <para>Een map <filename>files</filename>.  Deze map bevat
	    patches om het programma op een &os; systeem te laten
	    compileren en installeren.  Patches zijn in essentie kleine
	    bestanden waarin kleine veranderingen aan andere,
	    specifieke, bestanden staan aangegeven.  Ze zijn opgesteld
	    in platte tekst en er staan dingen in als <quote>Verwijder
	      regel 10</quote> of <quote>Wijzig regel 26 in
	      ...</quote>.  Patches staan ook wel bekend als
	    <quote>diffs</quote> omdat ze gemaakt worden met het
	    programma &man.diff.1;.</para>

	  <para>Deze map kan ook andere bestanden bevatten die gebruikt
	    worden om de port te bouwen;</para>
	</listitem>

	<listitem>
	  <para>Een bestand <filename>pkg-descr</filename>.  Dit is een
	    meer gedetailleerde beschrijving van het programma, vaak in
	    één regel;</para>
	</listitem>

	<listitem>
	  <para>Een bestand <filename>pkg-plist</filename>.  Dit is een
	    lijst met alle bestanden die door de port
	    geïnstalleerd worden.  Het geeft het portssysteem ook
	    aan welke bestanden bij het verwijderen van de port weer
	    verwijderd kunnen worden.</para>
	</listitem>
      </itemizedlist>

      <para>Sommige ports bevatten nog andere bestanden, zoals
	<filename>pkg-message</filename>.  Het portssysteem gebruikt
	die bestanden voor het afhandelen van bijzondere situaties.
	Meer details over die bestanden en over ports in het algemeen
	zijn na te lezen in het <ulink
	  url="&url.books.porters-handbook;/index.html">&os; Handboek
	  voor Porters</ulink>.</para>

      <para>De port bevat instructies over hoe de broncode gebouwd moet
	worden, maar de broncode zelf is er geen onderdeel van.  De
	broncode staat op een CD-ROM of op Internet.  De broncode
	wordt verspreid op de wijze waarop de auteur dat wenst.  Vaak
	is dat als een tar of gzip bestand, maar het kan ook ingepakt
	zijn met een ander programma of helemaal niet ingepakt zijn.
	De broncode van een programma, in welke vorm dan ook, heet een
	<quote>distributiebestand</quote>.  De twee methoden om een &os;
	port te installeren worden hieronder beschreven.</para>

      <note>
	<para>Ports installeren dient als <username>root</username> te
	  gebeuren.</para>
      </note>

      <warning>
	<para>Voordat een port wordt geïnstalleerd is het aan
	  te raden op <ulink url="http://vuxml.freebsd.org/"></ulink>
	  na kijken of er geen beveiligingsproblemen voor de
	  gewenste port bekend zijn.</para>

	<para>Er kan automatisch een controle op beveiligingsproblemen
	  door <application>portaudit</application> gedaan worden
	  voordat er een nieuwe applicatie wordt geïnstalleerd.
	  Dit gereedschap kan in de Portscollectie gevonden worden
	  (<filename role="package">ports-mgmt/portaudit</filename>).
	  Overweeg om <command>portaudit -F</command> te draaien voordat
	  er een nieuwe port wordt geïnstalleerd, om de huidige
	  database met beveiligingsproblemen op te halen.  Tijdens de
	  dagelijkse beveiligingscontrole van het systeem zal er een
	  beveiligingsaudit en een update van de database plaatsvinden.
	  Lees voor meer informatie de hulppagina's &man.portaudit.1; en
	  &man.periodic.8;.</para>
      </warning>

      <para>De Portscollectie neemt aan dat er een werkende
	Internetverbinding is.  Als die niet aanwezig is, zet dan
	handmatig een kopie van het benodigde distributiebestand in
	<filename>/usr/ports/distfiles</filename>.</para>

      <para>Ga om te beginnen naar de juiste map voor een port:</para>

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

      <para>Eenmaal in de map <filename>lsof</filename> is het skelet
	van de port te zien.  In de volgende stap wordt de broncode
	voor de port gecompileerd of <quote>gebouwd</quote>.  Dit
	wordt gedaan door op het prompt <command>make</command> in te
	voeren.  Dat levert iets als het volgende op:</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
...
[uitvoer van uitpakken verwijderd]
...
&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
...
[uitvoer van configure verwijderd]
...
===&gt;  Building for lsof-4.57
...
[uitvoer van compileren verwijderd]
...
&prompt.root;</screen>

      <para>Als het compileren is afgerond is het prompt weer
	zichtbaar.  In de volgende stap wordt de port
	geïnstalleerd.  Om dat te bewerkstelligen wordt het woord
	<maketarget>install</maketarget> aan <command>make</command>
	toegevoegd:</para>

      <screen>&prompt.root; <userinput>make install</userinput>
===&gt;  Installing for lsof-4.57
...
[uitvoer installatie verwijderd]
...
===&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>Als de prompt weer beschikbaar is, is de applicatie
	klaar voor gebruik.  Omdat <command>lsof</command> met
	verhoogde rechten wordt uitgevoerd, wordt er een
	waarschuwing getoond.  Tijdens het bouwen en installeren van
	ports zijn de getoonde waarschuwingen van belang.</para>

      <para>Het is verstandig om de submap die als werkmap wordt
	gebruikt te verwijderen.  Hierin staan alle tijdelijke
	bestanden die tijdens het compileren worden gebruikt.  Die
	bestanden gebruiken niet alleen waardevolle schijfruimte, maar
	ze kunnen later ook problemen veroorzaken als de port wordt
	bijgewerkt.</para>

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

      <note>
	<para>Het is mogelijk twee stappen minder te gebruiken door
	  <command>make <maketarget>install clean</maketarget></command>
	  uit te voeren in plaats van <command>make</command>,
	  <command>make <maketarget>install</maketarget></command>
	  en <command>make <maketarget>clean</maketarget></command> als
	  drie afzonderlijke stappen.</para>
      </note>

      <note>
	<para>Wanneer een port alleen met <command>make
	    <maketarget>install</maketarget></command> wordt geïnstalleerd,
	  betekent dit dat er in het begin mogelijk veel gewacht moet worden
	  tussen interacties van de gebruiker aangezien het standaardgedrag is
	  om de gebruiker te vragen om keuzes voor opties.  Wanneer er veel
	  afhankelijkheden zijn, kan dit voor het bouwen van een enkele port
	  soms een hele opgave zijn.  Om dit te voorkomen, kan <command>make
	    <maketarget>config-recursive</maketarget></command> gedraaid worden
	  om de configuratie in één keer te doen.  Draai daarna <command>make
	    <maketarget>install [clean]</maketarget></command>.</para>
      </note>

      <tip>
	<para>Wanneer <maketarget>config-recursive</maketarget> wordt gebruikt,
	  wordt de lijst met ports om te configureren opgesteld door het doel
	  <maketarget>all-depends-list</maketarget> van &man.make.1;.  Het wordt
	  vaak aangeraden om <command>make
	    <maketarget>config-recursive</maketarget></command> totdat de opties
	  van alle afhankelijke ports zijn gedefinieerd en er geen schermen van
	  &man.dialog.1; voor opties van ports meer verschijnen, om er zeker van
	  te zijn dat de opties van alle ports zijn geconfigureerd zoals
	  bedoeld.</para>
      </tip>

      <note>
	<para>Sommige shells houden een cache bij van de commando's
	  die in de mappen uit de omgevingsvariabele
	  <envar>PATH</envar> staan om het opzoeken van een uitvoerbaar
	  bestand te versnellen.  Als zo'n shell wordt gebruikt, moet
	  er na de installatie van een port het commando
	  <command>rehash</command> worden uitgevoerd voordat zojuist
	  geïnstalleerde commando's kunnen worden gebruikt.  Dit
	  commando werkt voor shells zoals <command>tcsh</command>.
	  Gebruik voor shells als <command>sh</command> <command>hash
	    -r</command>.  In de documentatie van een shell staat meer
	  informatie.</para>
      </note>

      <para>Sommige DVD-ROM-producten van andere partijen, zoals de
	&os; Toolkit van de <ulink
	  url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>
	bevatten distributiebestanden.  Die kunnen met de Portscollectie
	gebruikt worden.  Koppel de DVD-ROM aan op
	<filename>/cdrom</filename>.  Stel bij gebruik van een ander
	aankoppelpunt de make variabele <makevar>CD_MOUNTPTS</makevar>
	in.  De benodigde distributiebestanden worden automatisch
	gebruikt als ze op de schijf aanwezig zijn.</para>

      <note>
	<para>Licenties van sommige ports staan niet toe dat de code
	  wordt opgenomen in een CD-ROM.  Dit kan komen doordat er een
	  formulier ingevuld moet worden voor een download of doordat
	  herdistributie niet is toegestaan of om een andere reden.
	  Om een port te installeren die niet op de CD-ROM staat moet
	  de computer waarop de port geïnstalleerd wordt een
	  Internetverbinding hebben.</para>
      </note>

      <para>Het portssysteem gebruikt &man.fetch.1; om bestanden te
	downloaden.  Dat programma maakt gebruik van een aantal
	omgevingsvariabelen, waaronder <envar>FTP_PASSIVE_MODE</envar>,
	<envar>FTP_PROXY</envar>, en <envar>FTP_PASSWORD</envar>.  Als
	een systeem achter een firewall staat, is het wellicht
	noodzakelijk om een of meer van deze omgevingsvariabelen in te
	stellen of om gebruik te maken van een FTP/HTTP proxy.  In
	&man.fetch.3; staat een complete lijst.</para>

      <para>Als er geen continue Internetverbinding is, kan gebruik
	gemaakt worden van <command>make
	  <maketarget>fetch</maketarget></command>.  Door dit commando
	in de map <filename>/usr/ports</filename> uit te voeren worden
	<emphasis>alle</emphasis> benodigde bestanden gedownload.  Dit
	commando werkt ook op een lager niveau als
	<filename>/usr/ports/net</filename> of
	<filename>/usr/ports/net/xmule</filename>.  Als een port
	afhankelijk is van bibliotheken of andere ports dan worden de
	distributiebestanden van die ports <emphasis>niet</emphasis>
	opgehaald.  Om dat de bereiken dient
	<maketarget>fetch</maketarget> vervangen te worden door
	<maketarget>fetch-recursive</maketarget>.</para>

      <note>
	<para>Het is mogelijk alle ports in een categorie te bouwen
	  door <command>make</command> in een hogere map uit te voeren,
	  naar analogie van het voorbeeld voor <command>make
	    <maketarget>fetch</maketarget></command>.  Dit is wel
	  gevaarlijk, omdat sommige ports niet tegelijk met andere
	  geïnstalleerd kunnen zijn.  In andere gevallen
	  installeren twee ports hetzelfde bestand met een andere
	  inhoud.</para>
      </note>

      <para>In zeldzame gevallen willen of moeten gebruikers de
	tar-bestanden van een andere site dan de
	<makevar>MASTER_SITES</makevar> halen (de locatie waar de
	bestanden vandaan komen).  Dat is mogelijk met de optie
	<makevar>MASTER_SITES</makevar> met een volgend
	commando:</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>In het voorgaande voorbeeld is de optie
	<makevar>MASTER_SITES</makevar> gewijzigd naar <hostid
	  role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>.</para>

      <note>
	<para>Sommige ports staan toe (of schrijven zelfs voor) dat er
	  een aantal instellingen worden meegegeven die bepaalde
	  onderdelen (niet gebruikt, beveiligingsinstellingen en andere
	  aanpassingen) van de applicatie in- of uitschakelen.
	  Voorbeelden van ports waarbij dat het geval is zijn <filename
	    role="package">www/firefox</filename>, <filename
	    role="package">security/gpgme</filename> en <filename
	    role="package">mail/sylpheed-claws</filename>.  Er wordt
	  een bericht getoond als dit soort instellingen beschikbaar
	  zijn.</para>
      </note>

      <sect3>
	<title>Standaardmappen voor ports wijzigen</title>

	<para>Soms is het handig (of verplicht) om een andere map voor
	  werk of ports te gebruiken.  Met de variabelen
	  <makevar>WRKDIRPREFIX</makevar> en <makevar>PREFIX</makevar>
	  kunnen de standaardmappen veranderd worden:</para>

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

	<para>Het voorbeeld hierboven compileert de port in
	  <filename>/usr/home/example/ports</filename> en installeert
	  alles in <filename>/usr/local</filename>.</para>

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

	<para>Het voorbeeld hierboven compileert in
	  <filename>/usr/ports</filename> en installeert in
	  <filename>/usr/home/example/local</filename>.</para>

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

	<para>Het voorbeeld hierboven combineert de twee instellingen.
	  Het gaat te ver om dit volledig in het handboek te
	  beschrijven, maar hier krijgt de lezer een idee van de
	  mogelijkheden.</para>

	<para>Het is ook mogelijk de bovenstaande variabelen als deel
	  van de omgeving in te stellen.  In de hulppagina's van de
	  gebruikte shell staat hoe dat mogelijk is.</para>
      </sect3>

      <sect3>
	<title>Omgaan met <command>imake</command></title>

	<para>Er zijn ports die <command>imake</command> gebruiken
	  (een onderdeel van het X Window systeem) die niet goed werken
	  met <makevar>PREFIX</makevar> en erop staan te installeren in
	  <filename>/usr/X11R6</filename>.  Er zijn ook een aantal Perl
	  ports die <makevar>PREFIX</makevar> negeren en in de Perl
	  hiërarchie installeren.  Deze ports op de
	  <makevar>PREFIX</makevar> locatie laten installeren is
	  meestal erg moeilijk of onmogelijk.</para>
      </sect3>

      <sect3>
	<title>Ports herconfigureren</title>

	<para>Tijdens het bouwen van bepaalde ports kan er een menu dat
	  op ncurses is gebaseerd verschijnen waaruit u bepaalde
	  bouwopties kunt selecteren.  Het is niet ongebruikelijk dat
	  gebruikers dit menu opnieuw willen bezoeken om deze opties toe
	  te voegen, te verwijderen, of te veranderen nadat een port is
	  gebouwd.  Er zijn vele manieren om dit te doen.  Eén
	  optie is om naar de map waarin de port staat te gaan en
	  <command>make <maketarget>config</maketarget></command> te
	  typen, wat eenvoudigweg het menu opnieuw toont met daarin de
	  zelfde opties geselecteerd.  Een andere optie is om
	  <command>make <maketarget>showconfig</maketarget></command> te
	  gebruiken, wat alle instelopties voor de port aan u laat zien.
	  Nog een andere optie is om <command>make
	  <maketarget>rmconfig</maketarget></command> uit te voeren wat
	  alle geselecteerde opties zal verwijderen en u toestaat
	  opnieuw te beginnen.  Al deze opties, en anderen, worden zeer
	  gedetailleerd uitgelegd in de hulppagina voor &man.ports.7;.</para>
      </sect3>
    </sect2>

    <sect2 id="ports-removing">
      <title>Geïnstalleerde ports verwijderen</title>

      <indexterm>
	<primary>ports</primary>

	<secondary>verwijderen</secondary>
      </indexterm>

      <para>Nu u weet hoe ports te installeren, zult u zich
	waarschijnlijk afvragen hoe ze te verwijderen, in het geval dat
	u er een installeert en later besluit dat u de verkeerde port
	heeft geïnstalleerd.  We zullen ons vorige voorbeeld
	(<command>lsof</command>) verwijderen.  Ports worden op
	precies dezelfde manier verwijderd als pakketten met het
	commando &man.pkg.delete.1; (zoals beschreven in het onderdeel
	<link linkend="packages-using">Pakketten</link>):</para>

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

    <sect2 id="ports-upgrading">
      <title>Ports bijwerken</title>

      <indexterm>
	<primary>ports</primary>

	<secondary>bijwerken</secondary>
      </indexterm>

      <para>Stel als eerste een lijst samen met ports waarvoor een
	nieuwere versie beschikbaar is in de Portscollectie met het
	commando &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>Als de Portscollectie eenmaal is bijgewerkt
	  vóór het bijwerken van ports, is het verstandig
	  het bestand <filename>/usr/ports/UPDATING</filename> te
	  raadplegen.  In dat bestand staan aanwijzingen en wijzigingen
	  voor gebruikers die van belang zijn bij het bijwerken van
	  ports, zoals het veranderen van bestandsformaten, veranderen
	  van de locatie van configuratie bestanden, en andere
	  incompatibiliteiten met voorgaande versies.</para>

	<para>Als <filename>UPDATING</filename> tegenstrijdig is met
	  wat hier beschreven is, moet men <filename>UPDATING</filename>
	  als waar beschouwen.</para>
      </sect3>

      <sect3 id="portupgrade">
	<title>Ports bijwerken met portupgrade</title>

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

	<para>Het hulpprogramma <application>portupgrade</application>
	  is ontworpen om geïnstalleerde ports eenvoudig bij te
	  werken.  Het is beschikbaar via de port <filename
	    role="package">ports-mgmt/portupgrade</filename>.
	  Installeer het net als iedere andere port met het commando
	  <command>make <maketarget>install clean</maketarget></command>:</para>

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

	<para>Scan de lijst met geïnstalleerde ports met het
	  commando <command>pkgdb -F</command> en corrigeer alle
	  gerapporteerde inconsistenties.  Het is verstandig dit
	  regelmatig te doen, voor iedere keer bijwerken.</para>

	<para>Door het draaien van <command>portupgrade -a</command>
	  zal <application>portupgrade</application> beginnen met het
	  bijwerken van alle geïnstalleerde ports op een systeem
	  waarvoor een nieuwere versie beschikbaar is.  Met de vlag
	  <option>-i</option> is het mogelijk in te stellen dat voor
	  iedere bij te werken port om bevestiging wordt
	  gevraagd.</para>

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

	<para>Gebruik om alleen een specifieke applicatie bij te werken
	  en niet alle beschikbare ports <command>portupgrade
	    <replaceable>pkgname</replaceable></command>.  Gebruik de
	  vlag <option>-R</option> om
	  <application>portupgrade</application> eerst alle ports bij
	  te laten werken die voor een bij te werken toepassing
	  benodigd zijn.</para>

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

	<para>Gebruik de vlag <option>-P</option> om bij installatie
	  van pakketten in plaats van ports gebruik te maken.  Met deze
	  optie zoekt <application>portupgrade</application> in de
	  lokale mappen uit <envar>PKG_PATH</envar> of haalt de
	  pakketten via het netwerk op als ze lokaal niet worden
	  aangetroffen.  Als een pakket niet lokaal en niet via het
	  netwerk wordt gevonden, dan gebruikt
	  <application>portupgrade</application> ports.  Om het gebruik
	  van ports te voorkomen kan gebruik gemaakt worden van de
	  optie <option>-PP</option>:</para>

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

	<para>Om alleen de distributiebestanden op te halen (of
	  pakketten als <option>-P</option> is opgegeven), zonder bouwen
	  of installeren, is <option>-F</option> beschikbaar.  Meer
	  informatie staat in &man.portupgrade.1;.</para>
      </sect3>

      <sect3 id="portmanager">
	<title>Ports bijwerken met portmanager</title>

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

	<para><application>Portmanager</application> is een ander
	  hulpprogramma voor het eenvoudig bijwerken van
	  geïnstalleerde ports.  Het is beschikbaar via de port
	  <filename
	    role="package">ports-mgmt/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>Alle geïnstalleerde ports kunnen bijgewerkt worden
	  met het volgende eenvoudige commando:</para>

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

	<para>Door de vlag <option>-ui</option> aan bovenstaand commando (
	  <userinput>portmanager -u -ui</userinput>) toe te voegen kan ingesteld
	  worden dat voor iedere stap die <application>Portmanager</application>
	  wil uitvoeren vooraf toestemming moet worden gegeven.
	  <application>Portmanager</application> kan ook nieuwe ports
	  op een systeem installeren.  Anders dan met het bekende
	  commando <command>make <maketarget>install
	  clean</maketarget></command> worden alle afhankelijkheden
	  bijgewerkt voordat de geselecteerde port wordt gebouwd en
	  geïnstalleerd:</para>

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

	<para>Als er problemen zijn ten aanzien van de afhankelijkheden
	  voor een geselecteerde port, dan kan
	  <application>Portmanager</application> ze allemaal herbouwen
	  in de juiste volgorde.  Als dat is afgerond, wordt daarna
	  ook de port die problemen opleverde opnieuw gebouwd:</para>

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

	<para>Meer informatie staat in &man.portmanager.1;.</para>
      </sect3>

      <sect3 id="portmaster">
	<title>Ports bijwerken met portmaster</title>

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

	<para><application>portmaster</application> is nog een
	  gereedschap voor het bijwerken van geïnstalleerde ports.
	  <application>portmaster</application> was ontworpen om gebruik
	  te maken van de gereedschappen die in het <quote>basis</quote>
	  systeem te vinden zijn (het hangt niet af andere ports) en het
	  gebruikt de informatie in <filename
	    class="directory">/var/db/pkg</filename> om te bepalen welke
	  ports bij te werken.  Het is beschikbaar via de port <filename
	    role="package">ports-mgmt/portmaster</filename>:</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><application>portmaster</application> verdeelt ports in
	  vier categoriën:</para>

	<itemizedlist>
	  <listitem>
	    <para>Wortelpoorten (geen afhankelijkheden, wordt niet van
	      afgehangen)</para>
	  </listitem>

	  <listitem>
	    <para>Stampoorten (geen afhankelijkheden, wordt van
	      afgehangen)</para>
	  </listitem>

	  <listitem>
	    <para>Takpoorten (hebben afhankelijkheden, wordt van
	      afgehangen)</para>
	  </listitem>

	  <listitem>
	    <para>Bladpoorten (hebben afhankelijkheden, wordt niet van
	      afgehangen)</para>
	  </listitem>
	</itemizedlist>

	<para>U kunt de optie <option>-L</option> gebruiken om alle
	  geïnstalleerde ports tonen en naar updates te zoeken:</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>Alle geïnstalleerde ports kunnen met dit eenvoudige
	  commando worden bijgewerkt:</para>

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

	<note>
	  <para>Standaard maakt <application>portmaster</application>
	    een back-up-pakket aan voordat het een bestaande port
	    verwijderd.  Als de installatie van de nieuwe versie
	    succesvol is, zal <application>portmaster</application> de
	    reservekopie verwijderen.  Het gebruik van
	    <option>-b</option> zal
	    <application>portmaster</application> instrueren om de
	    reservekopie niet automatisch te verwijderen.  Het toevoegen
	    van de optie <option>-i</option> zal
	    <application>portmaster</application> in interactieve modus
	    opstarten, en u vragen voordat het elke port bijwerkt.</para>
	</note>

	<para>Als u fouten tegenkomt tijdens het bijwerkproces, kunt u
	  de optie <option>-f</option> gebruiken om alle ports bij te
	  werken/te herbouwen:</para>

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

	<para>U kunt <application>portmaster</application> ook gebruiken
	  om nieuwe ports op het systeem te installeren, en alle
	  afhankelijkheden bijwerken voordat de nieuwe port gebouwd en
	  geïnstalleerd wordt:</para>

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

	<para>Bekijk &man.portmaster.8; voor meer informatie.</para>
      </sect3>
    </sect2>

    <sect2 id="ports-disk-space">
      <title>Ports en schijfruimte</title>

      <indexterm>
	<primary>ports</primary>

	<secondary>disk-space</secondary>
      </indexterm>

      <para>Werken met de Portscollectie kan in de loop der tijd veel
	schijfruimte gebruiken.  Na het bouwen en installeren van
	software uit de ports, is het van belang altijd de tijdelijke
	mappen <filename class="directory">work</filename> op te ruimen
	met het commando <command>make
	  <maketarget>clean</maketarget></command>.  De complete
	Portscollectie kan geschoond worden met het volgende
	commando:</para>

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

      <para>In de loop der tijd komen ook veel oude bestanden met
	broncode in de map <filename
	  class="directory">distfiles</filename> te staan.  Die kunnen
	handmatig verwijderd worden of met het volgende commando dat
	alle distributiebestanden waarnaar in de huidige ports geen
	verwijzingen meer staan verwijdert:</para>

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

      <para>Of om alle distributiebestanden te verwijderen waardoor
	momenteel door geen één geïnstalleerde port
	op uw systeem wordt verwezen:</para>

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

      <note>
	<para>Het hulpprogramma <command>portsclean</command> is
	  onderdeel van de suite
	  <application>portupgrade</application>.</para>
      </note>

      <para>Vergeet niet ports die niet langer gebruikt worden te
	verwijderen.  Een handig hulpmiddel hiervoor kan de port
	<filename role="package">ports-mgmt/pkg_cutleaves</filename>
	zijn.</para>
    </sect2>
  </sect1>

  <sect1 id="ports-nextsteps">
    <title>Activiteiten na het installeren</title>

    <para>Na het installeren van een nieuwe applicatie is het meestal
      verstandig om de documentatie te lezen die bij een applicatie
      zit, bestanden met instellingen die vereist zijn aan te passen,
      ervoor te zorgen dat de applicatie start na het opstarten (als het
      een daemon is), enzovoort.</para>

    <para>De exacte stappen om een applicatie in te stellen zijn
      natuurlijk voor iedere applicatie anders.  Maar als er net een
      nieuwe applicatie is geïnstalleerd en het is niet
      vanzelfsprekend hoe verder te gaan, dan kunnen de volgende tips
      helpen:</para>

    <itemizedlist>
      <listitem>
	<para>Met &man.pkg.info.1; kan uitgevonden worden welke
	  bestanden geïnstalleerd zijn en waar.  Om bijvoorbeeld
	  uit te vinden welke bestanden door FooPackage versie 1.0.0
	  zijn geïnstalleerd:</para>

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

	<para>Bestanden in mapnamen met <filename>man/</filename>
	  zijn hulppagina's, <filename>etc/</filename> bevat bestanden
	  met instellingen en <filename>doc/</filename> bevat
	  uitgebreidere documentatie.</para>

	<para>Als niet helemaal duidelijk is welke versie van het
	  programma is geïnstalleerd, kan een commando als volgt
	  gebruikt worden:</para>

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

	<para>Hiermee worden alle pakketten getoond waar
	  <replaceable>foopackage</replaceable> in de pakketnaam
	  voorkomt.</para>
      </listitem>

      <listitem>
	<para>Als de hulppagina's zijn gevonden, kunnen die bekeken
	  worden met &man.man.1;.  Zo kan er ook in de bestanden met
	  voorbeeldinstellingen gekeken worden en naar aanvullende
	  documentatie, als die is bijgeleverd.</para>
      </listitem>

      <listitem>
	<para>Als er een website is voor de applicatie staat daar
	  vaak ook aanvullende documentatie, veelgestelde vragen,
	  enzovoort.  Als het webadres niet bekend is, kan dat nog
	  staan in de uitvoer van het volgende commando:</para>

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

	<para>Als er een regel met <literal>WWW:</literal> in staat, is
	  dat de URL naar de website voor de applicatie.</para>
      </listitem>

      <listitem>
	<para>Ports die na het opstarten moeten starten (zoals Internet
	  diensten) hebben meestal een voorbeeldscript in
	  <filename>/usr/local/etc/rc.d</filename>.  Dit script kan
	  bekeken, aangepast en hernoemd worden waar nodig.  Meer
	  informatie staat in <link
	    linkend="configtuning-starting-services">Diensten
	    Starten</link>.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="ports-broken">
    <title>Omgaan met kapotte ports</title>

    <para>Als een port niet werkt, zijn er een aantal mogelijke
      manieren om verder te komen:</para>

    <orderedlist>
      <listitem>
	<para>Zoek uit of er een oplossing voor de port staat te
	  wachten in de <ulink
	    url="&url.base;/support.html#gnats">Problem Report
	    database</ulink>.  Als dat zo is kan wellicht de
	  voorgestelde reparatie gebruikt worden.</para>
      </listitem>

      <listitem>
	<para>Vraag de beheerder van de port om hulp.  Voor het
	  emailadres van de beheerder kan <command>make
	    <maketarget>maintainer</maketarget></command> getypt worden
	  of het kan in de <filename>Makefile</filename> staan.  Zet in
	  de mail in ieder geval de naam en versie van de port (de regel
	  met <literal>&dollar;&os;:</literal> in de
	  <filename>Makefile</filename>) en de uitvoer tot en met de
	  foutmelding.</para>

	<note>
	  <para>Sommige ports worden niet beheerd door een individu
	    maar in plaats daarvan door een <ulink
	      url="&url.articles.mailing-list-faq;/article.html">mailinglijst</ulink>.
	    Veel, maar niet alle, van deze adressen zien eruit als
	    <email role="nolink">freebsd-lijstnaam@FreeBSD.org</email>.
	    Houd hier alstublieft rekening mee bij het formuleren van
	    vragen.</para>

	  <para>In het bijzonder worden ports die geregistreerd staan
	    als onderhouden door <email
	      role="nolink">ports@FreeBSD.org</email> helemaal niet
	    onderhouden.  Reparaties en ondersteuning, als dat al
	    beschikbaar is, komt vanuit de gemeenschap die is
	    geabonneerd op die mailinglijst.  Meer vrijwilligers zijn
	    altijd nodig!</para>
	</note>

	<para>Als er geen antwoord komt, stuur dan met &man.send-pr.1;
	  een foutrapport in.  Zie <ulink
	    url="&url.articles.problem-reports;/article.html">Writing
	    &os; Problem Reports</ulink>).</para>
      </listitem>

      <listitem>
	<para>Repareren!  In het <ulink
	    url="&url.books.porters-handbook;/index.html">Handboek
	    voor de Porter</ulink> is gedetailleerde informatie te
	  vinden over de infrastructuur van de <quote>Ports</quote>,
	  zodat een kapotte port gemaakt kan worden of er zelfs een
	  nieuwe port ingestuurd kan worden.</para>
      </listitem>

      <listitem>
	<para>Zoek een pakket van een FTP site in de buurt.  De
	  <quote>master</quote> pakketcollectie staat op <hostid
	    role="fqdn">ftp.FreeBSD.org</hostid> in de <ulink
	    url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">map
	    pakketten</ulink>, maar het is van belang dat er
	  <emphasis>eerst</emphasis> <link linkend="mirrors-ftp">in de
	    buurt</link> wordt gekeken!  Dat het pakket werkt is
	  waarschijnlijker dan wanneer uit de broncode wordt gecompileerd en
	  het is nog sneller ook.  Een pakket kan met &man.pkg.add.1;
	  geïnstalleerd worden.</para>
      </listitem>
    </orderedlist>
  </sect1>
</chapter>