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 -F -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; 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; 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; 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><</entry>
<entry>De geïnstalleerde versie is ouder dan die
beschikbaar is in de ports.</entry>
</row>
<row>
<entry>></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>
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[uitvoer van uitpakken verwijderd]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[uitvoer van configure verwijderd]
...
===> 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>
===> Installing for lsof-4.57
...
[uitvoer installatie verwijderd]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;</screen>
<para>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>
===> 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>$&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>
|