aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/zh-cn/books/handbook/mirrors/_index.adoc
blob: e08af9aed5365d1b1b37be4599a8b35970709317 (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
---
title: 附录 A. 获取 FreeBSD
part: 部分 V. 附录
prev: books/handbook/partv
next: books/handbook/bibliography
---

[appendix]
[[mirrors]]
= 获取 FreeBSD
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: A
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/mirrors/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[mirrors-cdrom]]
== CDROM 和 DVD 发行商

=== 零售盒装产品

可以从下面几个零售商那里买到 FreeBSD 的盒装产品 (FreeBSD CD, 附加软件,印刷文档):

* CompUSA +
WWW: http://www.compusa.com/

* Frys Electronics +
WWW: http://www.frys.com/

=== CD 和 DVD 光盘

FreeBSD CD 和 DVD 光盘可以从许多在线零售商那里买到:

* FreeBSD Mall, Inc. +
700 Harvest Park Ste F +
Brentwood, CA  94513 +
USA +
Phone: +1 925 240-6652 +
Fax: +1 925 674-0821 +
Email: <info@freebsdmall.com> +
WWW: http://www.freebsdmall.com/

* Dr. Hinner EDV +
St. Augustinus-Str. 10 +
D-81825 München +
Germany +
Phone: (089) 428 419 +
WWW: http://www.hinner.de/linux/freebsd.html

* Ikarios +
22-24 rue Voltaire +
92000 Nanterre +
France +
WWW: http://ikarios.com/form/#freebsd

* JMC Software +
Ireland +
Phone: 353 1 6291282 +
WWW: http://www.thelinuxmall.com

* The Linux Emporium +
Hilliard House, Lester Way +
Wallingford +
OX10 9TA +
United Kingdom +
Phone: +44 1491 837010 +
Fax: +44 1491 837016 +
WWW: http://www.linuxemporium.co.uk/products/bsd/

* Linux+ DVD Magazine +
Lewartowskiego 6 +
Warsaw +
00-190 +
Poland +
Phone: +48 22 860 18 18 +
Email: <editors@lpmagazine.org> +
WWW: http://www.lpmagazine.org/

* Linux System Labs Australia +
21 Ray Drive +
Balwyn North +
VIC - 3104 +
Australia +
Phone: +61 3 9857 5918 +
Fax: +61 3 9857 8974 +
WWW: http://www.lsl.com.au

* LinuxCenter.Ru +
Galernaya Street, 55 +
Saint-Petersburg +
190000 +
Russia +
Phone: +7-812-3125208 +
Email: <info@linuxcenter.ru> +
WWW: http://linuxcenter.ru/shop/freebsd

=== 发行人

如果您是销售商并且想销售 FreeBSD CDROM 产品, 请和发行人联系:

* Cylogistics +
809B Cuesta Dr., #2149 +
Mountain View, CA 94040 +
USA +
Phone: +1 650 694-4949 +
Fax: +1 650 694-4953 +
Email: <sales@cylogistics.com> +
WWW: http://www.cylogistics.com/

* Ingram Micro +
1600 E. St. Andrew Place +
Santa Ana, CA  92705-4926 +
USA +
Phone: 1 (800) 456-8000 +
WWW: http://www.ingrammicro.com/

* Kudzu, LLC +
7375 Washington Ave. S. +
Edina, MN 55439 +
USA +
Phone: +1 952 947-0822 +
Fax: +1 952 947-0876 +
Email: <sales@kudzuenterprises.com>

* LinuxCenter.Kz +
Ust-Kamenogorsk +
Kazakhstan +
Phone: +7-705-501-6001 +
Email: <info@linuxcenter.kz> +
WWW: http://linuxcenter.kz/page.php?page=fr

* LinuxCenter.Ru +
Galernaya Street, 55 +
Saint-Petersburg +
190000 +
Russia +
Phone: +7-812-3125208 +
Email: <info@linuxcenter.ru> +
WWW: http://linuxcenter.ru/freebsd

* Navarre Corp +
7400 49th Ave South +
New Hope, MN 55428 +
USA +
Phone: +1 763 535-8333 +
Fax: +1 763 535-0341 +
WWW: http://www.navarre.com/

[[mirrors-ftp]]
== FTP 站点

官方的 FreeBSD 源代码可以从遍布全球的镜像站点 通过匿名 FTP 下载。 站点 link:ftp://ftp.FreeBSD.org/pub/FreeBSD/[ftp://ftp.FreeBSD.org/pub/FreeBSD/] 有着良好的网络连接并且允许大量的并发连接, 但是 您或许更想找一个 "更近的" 镜像站点 (特别是当您想进行某种形式的镜像的时候)。

FreeBSD 可以从下面这些镜像站点通过匿名 FTP 下载。如果您选择了通过匿名 FTP 获取 FreeBSD, 请尽量使用离您比较近的站点。被列为 "主镜像站点" 的镜像站点一般都有完整的 FreeBSD 文件 (针对每种体系结构的所有当前可用的版本), 您或许从您所在的国家或地区的站点下载会得到更快的下载速度。 每个站点提供了最流行的体系结构的最近的版本而有可能不提供完整的 FreeBSD 存档。所有的站点都提供匿名 FTP 访问而有些站点也提供其他的访问方式。对每个站点可用的访问方式 在其主机名后有所说明。

<<central, {central}>>, <<primary, {mirrors-primary}>>, <<armenia, {mirrors-armenia}>>, <<australia, {mirrors-australia}>>, <<austria, {mirrors-austria}>>, <<brazil, {mirrors-brazil}>>, <<czech-republic, {mirrors-czech}>>, <<denmark, {mirrors-denmark}>>, <<estonia, {mirrors-estonia}>>, <<finland, {mirrors-finland}>>, <<france, {mirrors-france}>>, <<germany, {mirrors-germany}>>, <<greece, {mirrors-greece}>>, <<hong-kong, {mirrors-hongkong}>>, <<ireland, {mirrors-ireland}>>, <<japan, {mirrors-japan}>>, <<korea, {mirrors-korea}>>, <<latvia, {mirrors-latvia}>>, <<lithuania, {mirrors-lithuania}>>, <<netherlands, {mirrors-netherlands}>>, <<new-zealand, {mirrors-new-zealand}>>, <<norway, {mirrors-norway}>>, <<poland, {mirrors-poland}>>, <<russia, {mirrors-russia}>>, <<saudi-arabia, {mirrors-saudi-arabia}>>, <<slovenia, {mirrors-slovenia}>>, <<south-africa, {mirrors-south-africa}>>, <<spain, {mirrors-spain}>>, <<sweden, {mirrors-sweden}>>, <<switzerland, {mirrors-switzerland}>>, <<taiwan, {mirrors-taiwan}>>, <<ukraine, {mirrors-ukraine}>>, <<uk, {mirrors-uk}>>, <<usa, {mirrors-us}>>.

(as of UTC)

[[central]]
*{central}*

{central-ftp} (ftp / ftpv6 / {central-http} / {central-httpv6}) 

[[primary]]
*{mirrors-primary}*

In case of problems, please contact the hostmaster `<{mirrors-primary-email}>` for this domain.

* {mirrors-primary-ftp1} (ftp)
* {mirrors-primary-ftp2} (ftp)
* {mirrors-primary-ftp3} (ftp)
* {mirrors-primary-ftp4} (ftp / ftpv6 / {mirrors-primary-ftp4-http} / {mirrors-primary-ftp4-httpv6})
* {mirrors-primary-ftp5} (ftp)
* {mirrors-primary-ftp6} (ftp)
* {mirrors-primary-ftp7} (ftp)
* {mirrors-primary-ftp10} (ftp / ftpv6 / {mirrors-primary-ftp10-http} / {mirrors-primary-ftp10-httpv6})
* {mirrors-primary-ftp11} (ftp)
* {mirrors-primary-ftp13} (ftp)
* {mirrors-primary-ftp14} (ftp / {mirrors-primary-ftp14-http}) 

[[armenia]]
*{mirrors-armenia}*

In case of problems, please contact the hostmaster `<{mirrors-armenia-email}>` for this domain.

* {mirrors-armenia-ftp} (ftp / {mirrors-armenia-ftp-http} / rsync) 

[[australia]]
*{mirrors-australia}*

In case of problems, please contact the hostmaster `<{mirrors-australia-email}>` for this domain.

* {mirrors-australia-ftp} (ftp)
* {mirrors-australia-ftp2} (ftp)
* {mirrors-australia-ftp3} (ftp) 

[[austria]]
*{mirrors-austria}*

In case of problems, please contact the hostmaster `<{mirrors-austria-email}>` for this domain.

* {mirrors-austria-ftp} (ftp / ftpv6 / {mirrors-austria-ftp-http} / {mirrors-austria-ftp-httpv6}) 

[[brazil]]
*{mirrors-brazil}*

In case of problems, please contact the hostmaster `<{mirrors-brazil-email}>` for this domain.

* {mirrors-brazil-ftp2} (ftp / {mirrors-brazil-ftp2-http})
* {mirrors-brazil-ftp3} (ftp / rsync)
* {mirrors-brazil-ftp4} (ftp) 

[[czech-republic]]
*{mirrors-czech}*

In case of problems, please contact the hostmaster `<{mirrors-czech-email}>` for this domain.

* {mirrors-czech-ftp} (ftp / {mirrors-czech-ftpv6} / {mirrors-czech-ftp-http} / {mirrors-czech-ftp-httpv6} / rsync / rsyncv6)
* {mirrors-czech-ftp2} (ftp / {mirrors-czech-ftp2-http}) 

[[denmark]]
*{mirrors-denmark}*

In case of problems, please contact the hostmaster `<{mirrors-denmark-email}>` for this domain.

* {mirrors-denmark-ftp} (ftp / ftpv6 / {mirrors-denmark-ftp-http} / {mirrors-denmark-ftp-httpv6}) 

[[estonia]]
*{mirrors-estonia}*

In case of problems, please contact the hostmaster `<{mirrors-estonia-email}>` for this domain.

* {mirrors-estonia-ftp} (ftp) 

[[finland]]
*{mirrors-finland}*

In case of problems, please contact the hostmaster `<{mirrors-finland-email}>` for this domain.

* {mirrors-finland-ftp} (ftp) 

[[france]]
*{mirrors-france}*

In case of problems, please contact the hostmaster `<{mirrors-france-email}>` for this domain.

* {mirrors-france-ftp} (ftp)
* {mirrors-france-ftp1} (ftp / {mirrors-france-ftp1-http} / rsync)
* {mirrors-france-ftp3} (ftp)
* {mirrors-france-ftp5} (ftp)
* {mirrors-france-ftp6} (ftp / rsync)
* {mirrors-france-ftp7} (ftp)
* {mirrors-france-ftp8} (ftp) 

[[germany]]
*{mirrors-germany}*

In case of problems, please contact the hostmaster `<{mirrors-germany-email}>` for this domain.

* ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ (ftp)
* ftp://ftp1.de.FreeBSD.org/freebsd/ (ftp / http://www1.de.FreeBSD.org/freebsd/ / rsync://rsync3.de.FreeBSD.org/freebsd/)
* ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ (ftp / http://ftp2.de.FreeBSD.org/pub/FreeBSD/ / rsync)
* ftp://ftp4.de.FreeBSD.org/FreeBSD/ (ftp / http://ftp4.de.FreeBSD.org/pub/FreeBSD/)
* ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ (ftp)
* ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ (ftp / http://ftp7.de.FreeBSD.org/pub/FreeBSD/)
* ftp://ftp8.de.FreeBSD.org/pub/FreeBSD/ (ftp) 

[[greece]]
*{mirrors-greece}*

In case of problems, please contact the hostmaster `<{mirrors-greece-email}>` for this domain.

* {mirrors-greece-ftp} (ftp)
* {mirrors-greece-ftp2} (ftp) 

[[hong-kong]]
*{mirrors-hongkong}*

{mirrors-hongkong-ftp} (ftp) 

[[ireland]]
*{mirrors-ireland}*

In case of problems, please contact the hostmaster `<{mirrors-ireland-email}>` for this domain.

* {mirrors-ireland-ftp} (ftp / rsync) 

[[japan]]
*{mirrors-japan}*

In case of problems, please contact the hostmaster `<{mirrors-japan-email}>` for this domain.

* {mirrors-japan-ftp} (ftp)
* {mirrors-japan-ftp2} (ftp)
* {mirrors-japan-ftp3} (ftp)
* {mirrors-japan-ftp4} (ftp)
* {mirrors-japan-ftp5} (ftp)
* {mirrors-japan-ftp6} (ftp)
* {mirrors-japan-ftp7} (ftp)
* {mirrors-japan-ftp8} (ftp)
* {mirrors-japan-ftp9} (ftp) 

[[korea]]
*{mirrors-korea}*

In case of problems, please contact the hostmaster `<{mirrors-korea-email}>` for this domain.

* {mirrors-korea-ftp} (ftp / rsync)
* {mirrors-korea-ftp2} (ftp / {mirrors-korea-ftp2-http}) 

[[latvia]]
*{mirrors-latvia}*

In case of problems, please contact the hostmaster `<{mirrors-latvia-email}>` for this domain.

* {mirrors-latvia-ftp} (ftp / {mirrors-latvia-ftp-http}) 

[[lithuania]]
*{mirrors-lithuania}*

In case of problems, please contact the hostmaster `<{mirrors-lithuania-email}>` for this domain.

* {mirrors-lithuania-ftp} (ftp / {mirrors-lithuania-ftp-http}) 

[[netherlands]]
*{mirrors-netherlands}*

In case of problems, please contact the hostmaster `<{mirrors-netherlands-email}>` for this domain.

* {mirrors-netherlands-ftp} (ftp / {mirrors-netherlands-ftp-http} / rsync)
* {mirrors-netherlands-ftp2} (ftp) 

[[new-zealand]]
*{mirrors-new-zealand}*

* {mirrors-new-zealand-ftp} (ftp / {mirrors-new-zealand-ftp-http}) 

[[norway]]
*{mirrors-norway}*

In case of problems, please contact the hostmaster `<{mirrors-norway-email}>` for this domain.

* {mirrors-norway-ftp} (ftp / rsync) 

[[poland]]
*{mirrors-poland}*

In case of problems, please contact the hostmaster `<{mirrors-poland-email}>` for this domain.

* {mirrors-poland-ftp} (ftp)
* ftp2.pl.FreeBSD.org

[[russia]]
*{mirrors-russia}*

In case of problems, please contact the hostmaster `<{mirrors-russia-email}>` for this domain.

* {mirrors-russia-ftp} (ftp / {mirrors-russia-ftp-http} / rsync)
* {mirrors-russia-ftp2} (ftp / {mirrors-russia-ftp2-http} / rsync)
* {mirrors-russia-ftp5} (ftp / {mirrors-russia-ftp5-http} / rsync)
* {mirrors-russia-ftp6} (ftp) 

[[saudi-arabia]]
*{mirrors-saudi-arabia}*

In case of problems, please contact the hostmaster `<{mirrors-saudi-arabia-email}>` for this domain.

* {mirrors-saudi-arabia-ftp} (ftp) 

[[slovenia]]
*{mirrors-slovenia}*

In case of problems, please contact the hostmaster `<{mirrors-slovenia-email}>` for this domain.

* {mirrors-slovenia-ftp} (ftp) 

[[south-africa]]
*{mirrors-south-africa}*

In case of problems, please contact the hostmaster `<{mirrors-south-africa-email}>` for this domain.

* {mirrors-south-africa-ftp} (ftp)
* {mirrors-south-africa-ftp2} (ftp)
* {mirrors-south-africa-ftp4} (ftp) 

[[spain]]
*{mirrors-spain}*

In case of problems, please contact the hostmaster `<{mirrors-spain-email}>` for this domain.

* {mirrors-spain-ftp} (ftp / {mirrors-spain-ftp-http})
* {mirrors-spain-ftp3} (ftp) 

[[sweden]]
*{mirrors-sweden}*

In case of problems, please contact the hostmaster `<{mirrors-sweden-email}>` for this domain.

* {mirrors-sweden-ftp} (ftp)
* {mirrors-sweden-ftp2} (ftp / {mirrors-sweden-ftp2-rsync})
* {mirrors-sweden-ftp3} (ftp)
* {mirrors-sweden-ftp4} (ftp / {mirrors-sweden-ftp4v6} / {mirrors-sweden-ftp4-http} / {mirrors-sweden-ftp4-httpv6} / {mirrors-sweden-ftp4-rsync} / {mirrors-sweden-ftp4-rsyncv6})
* {mirrors-sweden-ftp6} (ftp / {mirrors-sweden-ftp6-http}) 

[[switzerland]]
*{mirrors-switzerland}*

In case of problems, please contact the hostmaster `<{mirrors-switzerland-email}>` for this domain.

* {mirrors-switzerland-ftp} (ftp / {mirrors-switzerland-ftp-http}) 

[[taiwan]]
*{mirrors-taiwan}*

In case of problems, please contact the hostmaster `<{mirrors-taiwan-email}>` for this domain.

* {mirrors-taiwan-ftp} (ftp / {mirrors-taiwan-ftpv6} / rsync / rsyncv6)
* {mirrors-taiwan-ftp2} (ftp / {mirrors-taiwan-ftp2v6} / {mirrors-taiwan-ftp2-http} / {mirrors-taiwan-ftp2-httpv6} / rsync / rsyncv6)
* {mirrors-taiwan-ftp4} (ftp)
* {mirrors-taiwan-ftp5} (ftp)
* {mirrors-taiwan-ftp6} (ftp / {mirrors-taiwan-ftp6v6} / rsync)
* {mirrors-taiwan-ftp7} (ftp)
* {mirrors-taiwan-ftp8} (ftp)
* {mirrors-taiwan-ftp11} (ftp / {mirrors-taiwan-ftp11-http})
* {mirrors-taiwan-ftp12} (ftp)
* {mirrors-taiwan-ftp13} (ftp)
* {mirrors-taiwan-ftp14} (ftp)
* {mirrors-taiwan-ftp15} (ftp) 

[[ukraine]]
*{mirrors-ukraine}*

* {mirrors-ukraine-ftp} (ftp / {mirrors-ukraine-ftp-http})
* {mirrors-ukraine-ftp6} (ftp / {mirrors-ukraine-ftp6-http} / {mirrors-ukraine-ftp6-rsync})
* {mirrors-ukraine-ftp7} (ftp) 

[[uk]]
*{mirrors-uk}*

In case of problems, please contact the hostmaster `<{mirrors-uk-email}>` for this domain.

* {mirrors-uk-ftp} (ftp)
* {mirrors-uk-ftp2} (ftp / {mirrors-uk-ftp2-rsync})
* {mirrors-uk-ftp3} (ftp)
* {mirrors-uk-ftp4} (ftp)
* {mirrors-uk-ftp5} (ftp) 

[[usa]]
*{mirrors-us}*

In case of problems, please contact the hostmaster `<{mirrors-us-email}>` for this domain.

* {mirrors-us-ftp} (ftp)
* {mirrors-us-ftp2} (ftp)
* {mirrors-us-ftp3} (ftp)
* {mirrors-us-ftp4} (ftp / ftpv6 / {mirrors-us-ftp4-http} / {mirrors-us-ftp4-httpv6})
* {mirrors-us-ftp5} (ftp)
* {mirrors-us-ftp6} (ftp)
* {mirrors-us-ftp8} (ftp)
* {mirrors-us-ftp10} (ftp)
* {mirrors-us-ftp11} (ftp)
* {mirrors-us-ftp13} (ftp / {mirrors-us-ftp13-http} / rsync)
* {mirrors-us-ftp14} (ftp / {mirrors-us-ftp14-http})
* {mirrors-us-ftp15} (ftp) 

[[mirrors-bittorrent]]
== BitTorrent

基本发行版 CD 的 ISO 镜像也可以通过 BitTorrent 获得。 用户下载镜像的 torrent 文件能够在这里找到 http://torrents.freebsd.org:8080/[http://torrents.freebsd.org:8080]

BitTorrent 客户端软件可以从这个 port package:net-p2p/py-bittorrent[] 或预编译的二进制包安装。

在通过 BitTorrent 下载了 ISO 镜像之后, 你可以照着 crossref:disks[burncd,burncd]burncd 中的所描述的方法烧录到 CD 或 DVD 介质上。

[[anoncvs]]
== 匿名 CVS

[[anoncvs-intro]]
=== 概述

匿名 CVS(或人们常说的 _anoncvs_)是由和 FreeBSD 附带的 CVS 实用工具提供的用于和远程的 CVS 代码库同步的一种特性。 尤其是, 它允许 FreeBSD 用户不需要特殊的权限对任何一台 FreeBSD 项目的官方 anoncvs 服务器执行只读的 CVS 操作。 要使用它,简单的设置 `CVSROOT` 环境变量指向适当的 anoncvs 服务器, 输入 `cvs login` 命令 并提供广为人知的密码"anoncvs",然后使用 man:cvs[1] 命令像访问任何本地仓库一样来访问它。

[NOTE]
====
`cvs login` 命令把用来登录 CVS 服务器的密码储存在您的 `HOME` 目录中一个叫 [.filename]#.cvspass# 的文件里。 如果这个文件不存在, 第一次使用 `cvs login` 的时候可能会出错。 请创建一个空的 [.filename]#.cvspass# 文件,然后试试重新登录。
====

也可以这么说 <<cvsup,CVSup>> 和 _anoncvs_ 服务本质上提供了同样的功能,但是有各种各样 不同的场合可以影响用户对同步方式的选择。简单来说, CVSup 在网络资源利用方面 更加有效,而且是到目前为止在两者之中技术上更成熟的 除了成本方面。要使用 CVSup,在下载任何东西之前 必须首先安装配置特定的客户端, 而且只能用于下载相当大块的 CVSup 称作 _collections_。

相比之下,anoncvs 可以通过 CVS 模块名来从单个文件里检出任何东西并赋给特定的程序 (比如 `ls` 或者 `grep`)。 当然,anoncvs 也只适用于对 CVS 仓库的只读操作,所以如果您是想用和 FreeBSD 项目共享的仓库提供本地开发的话, CVSup 几乎是您唯一的选择。

[[anoncvs-usage]]
=== 使用匿名 CVS

配置 man:cvs[1] 使用匿名 CVS 仓库可以简单的设定 `CVSROOT` 环境变量指向 FreeBSD 项目的 _anoncvs_ 服务器之一。 到此书写作为止, 下面的服务器都是可用的:

* _法国_: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (使用 pserver 模式时, 用 `cvs login` 配合口令 "anoncvs" 来登录。 如果使用的是 ssh, 则不需要口令。)
* __台湾__地区: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (使用 pserver 模式时, 用 `cvs login` 配合口令 "anoncvs" 来登录。 如果使用的是 ssh, 则不需要口令。)
+
[.programlisting]
....
SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub
....

* _美国_: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (使用 ssh 时, 请使用协议版本 2, 不需要口令。)
+
[.programlisting]
....
SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub
....

因为 CVS 实际上允许 "检出" 曾经存在的 (或者,某种情况下将会存在) FreeBSD 源代码的任意版本, 您需要熟悉 man:cvs[1] 的版本 (`-r`) 参数, 以及在 FreeBSD 代码库中可用的值。

有两种标签,修订标签和分支标签。 修订标签特指一个特定的修订版本。含义始终是不变的。 分支标签,另一方面, 指代给定时间给定开发分支的最新修订, 因为分支标签不涉及特定的修订版本, 它明天所代表的含义就可能和今天的不同。

<<cvs-tags>> 包括了用户可能感兴趣的 修订标签。 请注意, 这些标签并不适用于 Ports Collection, 因为它并不包含多个开发分支。

当您指定一个分支标签,您通常会得到那个开发分支的文件的最新版本。 如果您希望得到一些旧的版本,您可以用 `-D date` 标记制定一个日期。 察看 man:cvs[1] 手册页了解更多细节。

=== 示例

在这之前强烈建议您通读 man:cvs[1] 的手册页, 这里有一些简单的例子来展示如何使用匿名 CVS:

.从 -CURRENT 检出些东西 (man:ls[1]):
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
>在提示符处,输入任意密码 “password”.
% cvs co ls

....

====

.通过 SSH 检出整个 [.filename]#src/# 代码树:
[example]
====

[source,shell]
....
% cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.
....

====

.检出 8-STABLE 分支中的 man:ls[1] 版本:
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
在提示符处,输入任意密码 “password”。
% cvs co -rRELENG_8 ls

....

====

.创建 man:ls[1] 的变化列表(用标准的 diff)
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
在提示符处,输入任意密码 “password”。
% cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls

....

====

.找出可以使用的其它的模块名:
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
在提示符处,输入任意密码 “password”。
% cvs co modules
% more modules/modules

....

====

=== 其他资源

下面附加的资源可能对学习 CVS 有帮助:

* http://users.csc.calpoly.edu/~gfisher/classes/308/handouts/cvs-basics.html[CVS 教程], 来自加州州立理工大学。
* http://ximbiot.com/cvs/wiki/[CVS 主页], CVS 开发和支持社区。
* http://www.FreeBSD.org/cgi/cvsweb.cgi[CVSweb] 是 FreeBSD 项目的 CVS web 界面。

[[ctm]]
== 使用 CTM

CTM 是保持远程目录树和中央服务器目录树同步的一种方法。 它被开发用于 FreeBSD 的源代码树,虽然其他人随着时间推移会发现它可以用于其他目的。 当前几乎没有,也或者只有很少的文档讲述创建 deltas 的步骤, 所以如果您希望使用 CTM 去做其它事情, 请联系 link:{ctm-users-url}[ctm-users-desc] 邮件列表了解更多信息。

=== 为什么我该使用 CTM?

CTM 会给您一份 FreeBSD 源代码树的本地副本。 代码树有很多的 "flavors" 可用。不管您是希望跟踪完整的 CVS 树还是只是一个分支, CTM 都会给您提供信息。 如果您是 FreeBSD 上的一个活跃的开发者,但是缺乏或者不存在 TCP/IP 连接,或者只是希望把变化自动发送给您, CTM 就是适合您的。对于最积极的分支 您将会每天获得三个以上的 deltas。 然而,您应该考虑通过邮件来自动发送。 升级的大小总是保证尽可能的小。 通常小于 5K,也偶然(十分之一可能)会有 10-50K,也不时地有个大的 100K+ 甚至更大的。

您也需要让自己了解直接和开发代码而不是预发行版本打交道的各种警告。这种情况会很显著, 如果您选择了 "current" 代码的话。强烈建议您阅读crossref:cutting-edge[current,和 FreeBSD 保持同步]。

=== 使用 CTM 我需要做什么?

您需要两样东西:CTM 程序,还有初始的 deltas 来 feed it(达到 "current" 级别)。

CTM 程序从版本 2.0 发布以来 已经是 FreeBSD 的一部分了,如果您安装了源代码副本的话, 它位于 [.filename]#/usr/src/usr.sbin/ctm#。

您喂给 CTM 的 "deltas" 可以有两种方式,FTP 或者 email。 如果您有普通的访问 Internet 的 FTP 权限, 那么下面的 FTP 站点支持访问 CTM:

link:ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/[ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/]

或者看看这一小节<<mirrors-ctm,镜像>>。

FTP 访问相关的目录并取得 [.filename]#README# 文件,从那里开始。

如果您希望通过 email 得到您的 deltas:

订阅一个 CTM 分发列表。 link:{ctm-src-cur-url}[ctm-src-cur-desc] 支持最新的开发分支。 link:{ctm-src-7-url}[ctm-src-7-desc] 支持 7.X 发行分支, 等等。。(如果您不知道如何订阅邮件列表, 点击上面的列表名或者到 {mailing-lists-url} 点击您希望订阅的列表。 列表页包含了所有必要的订阅指导。)

当您开始接收到您邮件中的 CTM 升级时,您可以使用 `ctm_rmail` 程序来解压并应用它们。 事实上如果您想要让进程以全自动的形式运行的话,您可以通过在 [.filename]#/etc/aliases# 中设置直接使用 `ctm_rmail` 程序。 查看 `ctm_rmail` 手册页了解更多细节。

[NOTE]
====
不管您使用什么方法得到 CTM deltas,您都应该订阅 link:{ctm-announce-url}[ctm-announce-desc] 邮件列表。 以后会有单独的地方提交有关 CTM 系统的操作的公告。 点击上面的邮件列表名并按照指示订阅邮件列表。
====

=== 第一次使用 CTM

在您开始使用 CTM delta 之前,您需要获得一个起始点。

首先您应该确定您已经有了什么。每个人都可以从一个"空"目录开始。 您必须用一个初始的 "空的" delta 来开始您的 CTM 支持树。曾经为了您的便利这些 "起始" deltas 被有意的通过 CD 来发行, 然而现在已经不这样做了。

因为代码树有数十兆字节,您应该更喜欢从手头上已经有的东西开始。如果您有一张 -RELEASE CD 光盘,您可以从里面复制或者解压缩一份初始代码出来。 这会节省非常多的数据传输量。

您会发现这些"初始的" deltas 名字的数字后面都有个 `X` (比如 [.filename]#src-cur.3210XEmpty.gz#)。 后面加一个 `X` 的设计符合您的初始 "seed" 的由来。 [.filename]#Empty# 是一个空目录。通常一个基本的从 `Empty` 开始的转换由 100 个 deltas 构成。顺便说一下,他们都很大!70 到 80 兆字节的 `gzip` 压缩的数据对于 [.filename]#XEmpty# deltas 是很平常的。

一旦您已经选定了一个基本的 delta 开始,您就需要比这个数高的所有的 delta。

=== 在您的日常生活中使用 CTM

要应用 deltas,简单的键入:

[source,shell]
....
# cd /where/ever/you/want/the/stuff
# ctm -v -v /where/you/store/your/deltas/src-xxx.*
....

CTM 能够理解被 `gzip` 压缩的 deltas,所以您不需要先 `gunzip` 他们,这可以节省磁盘空间。

除非觉得整个过程非常可靠, CTM 不会涉及到您的代码树的。您也可以使用 `-c` 标记来校验 delta, 这样 CTM 就不会涉及代码树; 它会只校验 delta 的完整性看看是否可以安全的用于您的当前代码树。

CTM 还有其他的一些参数, 查看手册页或者源代码了解更多信息。

这真的就是全部的事情了。每次得到一个新的 delta,就通过 CTM 运行它来保证您的代码是最新的。

如果这些 deltas 很难重新下载的话不要删除它们。 有些东西坏掉的时候您会想到保留它们的。 即使您只有软盘,也请考虑使用 `fdwrite` 来做一份副本。

=== 维持您本地的变动

作为一名开发者喜欢实验,改动代码树中的文件。 CTM 用一种受限的方式支持本地修改:再检查文件 [.filename]#foo# 存在之前,首先查找 [.filename]#foo.ctm#。如果这个文件存在, CTM 会对它操作而不是 [.filename]#foo#。

这种行为给我们提供了一种简单的方式来维持本地的改动: 只要复制您计划修改的文件并用 [.filename]#.ctm# 的后缀重新命名。 然后就可以自由的修改代码了,CTM 会更新 [.filename]#.ctm# 文件到最新版本。

=== 其他有趣的 CTM 选项

==== 正确的找出哪些将被更新

您可以确定变动列表, CTM 可以做到,在您的代码库上使用 CTM 的 `-l` 选项。

这很有用如果您想要保存改动的日志, pre- 或者 post- 用各种风格处理修改的文件的纪录, 或者仅仅是想感受一下孩子般的疯狂。

==== 在升级前制作备份

有时您可能想备份将要被 CTM 升级所改动的所有文件。

指定 `-B backup-file` 选项会导致 CTM 备份将要被给定的 CTM delta 改动的所有文件到 [.filename]#backup-file#。

==== 限定受升级影响的文件

有时您可能对限定一个给定的 CTM 升级的范围感兴趣,也有可能想知道怎样从一列 deltas 中解压缩一部分文件。

您可以通过使用 `-e` 和 `-x` 选项指定过滤规则表达式来控制 CTM 即将对之操作的文件列表。

例如,要从您保存的CTM deltas 集里解压缩出一个最新的 [.filename]#lib/libc/Makefile# 文件,运行这个命令:

[source,shell]
....
# cd /where/ever/you/want/to/extract/it/
# ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*
....

对于每一个在 CTM delta 中指定的文件,`-e` 和 `-x` 选项按照命令行给定的顺序应用。 文件只有在所有的 `-e` 和 `-x` 被应用之后标记为合格之后 才能被 CTM 操作。

=== CTM 未来的计划

其中几项:

* 在 CTM 中使用一些认证方式, 这样来允许察觉冒充的 CTM 补丁。
* 整理 CTM 的选项, 它们变得杂乱而违反直觉了。

=== 杂项

也有一系列的 `ports` collection 的 deltas,但是人们对它的兴致还没有那么高。

[[mirrors-ctm]]
=== CTM 镜像

<<ctm,CTM>>/FreeBSD 可以在下面的镜像站点通过匿名 FTP 下载。如果您选择通过匿名 FTP 获取 CTM, 请试着使用一个离您较近的站点。

如果有问题,请联系 link:{ctm-users-url}[ctm-users-desc] 邮件列表。

加利福尼亚州,旧金山湾区,官方源代码::

** link:ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/]

南非,旧的 deltas 的备份服务器::

** link:ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/[ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/]

中国台湾::

** link:ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/]
** link:ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/]
** link:ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/]

如果您在您附近找不到镜像或者镜像不完整, 试着使用搜索引擎比如 http://www.alltheweb.com/[alltheweb].

[[cvsup]]
== 使用 CVSup

[[cvsup-intro]]
=== 概述

CVSup 是一个用于从远程服务器主机上的主 CVS 仓库发布和升级源代码树的软件包。 FreeBSD 的源代码维护在加利福尼亚州一台主开发服务器的 CVS 仓库里。 有了 CVSup, FreeBSD 用户可以很容易的保持他们自己的源代码树更新。

CVSup 使用所谓的升级 _pull_ 模式。在 pull 模式下,客户端在需要的时候向服务器端请求更新。 服务器被动的等待客户端的升级请求。 因此所有的升级都是客户端发起的。 服务器决不会发送未请求的升级。用户必须手动运行 CVSup 客户端获取更新, 或者设置一个 `cron` 作业来让它以固定的规律自动运行。

术语 CVSup用大写字母写正是表示, 代表了完整的软件包。 它的主要组件是运行在每个用户机器上的客户端 `cvsup`, 和运行在每个 FreeBSD 镜像站点上的服务器端 `cvsupd`。

当您阅读 FreeBSD 文档和邮件列表时,您可能会看见 sup。 Sup 是 CVSup 的前身,有着相似的目的。 CVSup 使用很多和 sup 相同的方式, 而且, 它还是用使用和 `sup` 的兼容的配置文件。 Sup 已经不再被 FreeBSD 项目使用了, 因为 CVSup 既快又有更好的灵活性。

[NOTE]
====
csup 是用 C 语言对 CVSup 软件的重写。 它最大的好处是, 这个程序更快一些, 并且也不需要依赖于 Modula-3 语言, 因此也就不需要安装后者。 另外, 您可以直接使用它, 因为它是基本系统的一部分。 假如您决定使用 csup, 则可以跳过安装 CVSup 这一步, 并在文章中余下部分提到的 CVSup 改为 csup。
====

[[cvsup-install]]
=== 安装

安装 CVSup 最简单的方式就是使用 FreeBSD crossref:ports[ports,packages collection] 中预编译的 package:net/cvsup[] 包。 如果您想从源代码构建 CVSup, 您可以使用 package:net/cvsup[] port。但是预先警告一下: package:net/cvsup[] port 依赖于 Modula-3 系统,会花费相当的时间和磁盘空间来下载编译。

[NOTE]
====
如果想在没有安装 Xorg 的计算机, 例如服务器上使用 CVSup, 则只能使用不包含 CVSupGUI 的 package:net/cvsup-without-gui[]。
====

[[cvsup-config]]
=== CVSup 配置

CVSup 的操作被一个叫做 [.filename]#supfile# 的配置文件所控制。 在目录 link:file://localhost/usr/shared/examples/cvsup/[/usr/shared/examples/cvsup/] 下面有一些示例的 [.filename]#supfiles#。

[.filename]#supfile# 中的信息解答了 CVSup 下面的几个问题:

* <<cvsup-config-files,您想接收 哪些文件?>>
* <<cvsup-config-vers,您想要它们的 哪个版本?>>
* <<cvsup-config-where,您想从哪里 获取它们?>>
* <<cvsup-config-dest,您想把它们 放在您自己机器的什么地方?>>
* <<cvsup-config-status,您想把 您的状态文件放在哪?>>

在下面的章节里,我们通过依次回答这些问题来创建一个典型的 [.filename]#supfile# 文件。首先,我们描述一下 [.filename]#supfile# 的整体构成。

[.filename]#supfile# 是个文本文件。注释用 `#` 开头,至行尾有效。 空行和只包含注释的行会被忽略。

每个保留行描述一批用户希望接收的文件。 每行以 "collection", 由服务器端定义的合理的文件分组,的名字开头。 collection 的名字告诉服务器您想要的文件。 collection 名字结束或者有更多的字段,用空格分隔。 这些字段回答了上面列出的问题。 字段类型有两种:标记字段和值字段。 标记字段由独立的关键字组成,比如, `delete` 或者 `compress`。值字段也用关键字开头, 关键字后面跟 `=` 和第二个词而没有空格。 例如,`release=cvs` 是一个值字段。

一个典型的 [.filename]#supfile# 往往接收多于一个的 collection。创建 [.filename]#supfile# 的一种方式是明确的为每一个 collection 指定相关的字段。然而,这样使得 [.filename]#supfile# 的行变得特别长,很不方便, 因为 [.filename]#supfile# 中的所有 collection 的大部分 字段都是相同的。 CVSup 提供了一个默认机制来避免 这些问题。用特定的伪 collection 名 `*default` 开头的行可以被用来设置标记和值为 [.filename]#supfile# 中随后的 collection 中的默认值。 默认值可以通过为这个 collection 自身指定不同的值来对单个的 collection 覆盖设置, 也可以在 mid-supfile 中通过附加的 `*default` 行改变或扩充。

知道了这些,我们现在就可以开始创建一个 用于接收和升级 crossref:cutting-edge[current,FreeBSD-CURRENT] 主源代码树的 [.filename]#supfile# 文件了。

* [[cvsup-config-files]]您想接收哪些文件?
+ 
通过 CVSup 可用的文件组织成叫做 "collections" 的名称组。 这些可用的 collection 在 <<cvsup-collec,随后的章节>> 中描述。 在这个例子里, 我们希望接收 FreeBSD 系统的完整的主代码树。 有一个单独的大的 collection `src-all` 让我们完成这个。 创建我们的 [.filename]#supfile# 的第一步, 我们简单的列出这些 collection,每个一行(在这个例子里, 只有一行):
+
[.programlisting]
....
src-all
....

* [[cvsup-config-vers]]您想要他们的 哪个版本?
+ 
通过 CVSup,您实际上可以接收 曾经存在的源代码的任何版本。 这是有可能的,因为 cvsupd 服务器直接通过 CVS 仓库工作,那包含了所有的版本。您可以 用 `tag=` 和 `date=` 值字段 指定一个您想要的版本。
+
[WARNING]
====

仔细的正确指定任何 `tag=` 字段。有一些 tag 只对特定的 collection 文件合法。 如果您指定了一个不正确的或者 拼写错误的 tag,CVSup 会删除您可能不想删除的文件。 特别地,对 `ports-*` collection __只__使用 `tag=.`。
====

+ 
`tag=` 字段在仓库中表示为一个符号标签。 有两种标签,修订标签和分支标签。 修订标签代表一个特定的修订版本。 它的含义是一成不变的。 分支标签,另一方面,代表给定开发线上给定时间的最新修订。 因为分支标签不代表一个特定的修订版本, 它明天的含义就可能和今天的有所不同。
+ 
<<cvs-tags>> 包含了用户可能感兴趣的分支标签。 当在 CVSup 的配置文件中指定标签的时候,必须用 `tag=` 开头 (`RELENG_8` 会变成 `tag=RELENG_8`)。 记住只有 `tag=.` 可以用于 Ports Collection。
+
[WARNING]
====

注意像看到的那样正确的输入标签名。 CVSup 不能辨别合法和不合法标签。 如果您拼写错了标签名, CVSup 会像您指定了一个没有任何文件的合法标签一样工作, 那会删除您已经存在的代码。
====

+ 
当您指定一个分支标签的时候,您通常会收到开发线上文件的最新版本。 如果您希望接收一些过时的版本,您可以通过用 `date=` 值字段指定一个日期来做到。 man:cvsup[1] 手册页解释了如何来做。
+ 
对于我们的示例来说,我们希望接收 FreeBSD-CURRENT。 我们在我们的 [.filename]#supfile# 的开头添加这行:
+
[.programlisting]
....
*default tag=.
....

+ 
有一个重要的特例, 如果您既没指定 `tag=` 字段也没指定 `date=` 字段的情况。这种情况下, 您会收到直接来自于服务器 CVS 仓库的真实的 RCS 文件, 而不是某一特定版本。 开发人员一般喜欢这种操作模式。 通过在他们的系统上维护一份仓库自身的副本, 他们可以浏览修订历史以及检查文件过去的版本。 然而,这个好处是以大量的磁盘空间为代价的。
* [[cvsup-config-where]]您想从哪里获取他们?
+ 
我们使用 `host=` 字段来告诉 `cvsup` 从哪里获取更新。 任何一个 <<cvsup-mirrors,CVSup 镜像站点>>都可以, 虽然您应该选择一个离您比较近的站点。 在这个例子里我们将使用一个虚拟的 FreeBSD 发布站点, `cvsup99.FreeBSD.org`:
+
[.programlisting]
....
*default host=cvsup99.FreeBSD.org
....

+ 
您需要在运行 CVSup 之前把这个改成一个实际存在的站点。 在任何 `cvsup` 运行的特定时刻, 您都可以在命令行上使用 `-h _hostname_` 选项来覆盖主机设置。
* [[cvsup-config-dest]]您想把它们放在 您自己机器的什么地方?
+ 
`prefix=` 字段告诉 `cvsup` 把接收的文件放在哪里。 在这个例子里,我们把源代码文件直接放进我们的主源代码树, [.filename]#/usr/src#。 [.filename]#src# 目录已经隐含在我们选择接收的 collection 里了, 所以正确的写法是:
+
[.programlisting]
....
*default prefix=/usr
....

* [[cvsup-config-status]]`cvsup` 在哪里维护它的状态文件?
+ 
CVSup 客户端在被叫做 "base" 的目录里维护了几个状态文件。 这些文件帮助 CVSup 更有效的工作, 通过跟踪您已经接收到哪些更新的方式。 我们将使用标准的 base 目录, [.filename]#/var/db#:
+
[.programlisting]
....
*default base=/var/db
....

+ 
如果您的 base 目录还不存在,现在最好创建它。 如果 base 目录不存在,`cvsup` 客户端会拒绝工作。
* 其他的 [.filename]#supfile# 设置:
+ 
在 [.filename]#supfile# 中有一些其他选项需要介绍一下:
+
[.programlisting]
....
*default release=cvs delete use-rel-suffix compress
....

+ 
`release=cvs` 显示服务器应该从 FreeBSD 的主 CVS 仓库中获取信息。 事实上总是这样的,但是也有可能会超出这个讨论的范围。
+ 
`delete` 给 CVSup 权限删除文件。 您应该总是指定这个,这样 CVSup 可以保证您的源代码树完全更新。CVSup 很小心的只删除那些不再依赖的文件。 您拥有的任何额外的文件会被严格的保留。
+ 
`use-rel-suffix` 是 ... 不可思议的。 如果您真的想了解它,查看 man:cvsup[1] 手册页。 否则,就指定而不用担心这个。
+ 
`compress` 启用 gzip 风格的信道压缩。 如果您的网络连接是 T1 或者更快, 您可能不想使用压缩。 否则,它非常有帮助。
* 把它们放在一起:
+ 
这是我们的示例的完整 [.filename]#supfile# 文件:
+
[.programlisting]
....
*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress

src-all
....

[[cvsup-refuse-file]]
==== [.filename]#refuse# 文件

像上面提到的,CVSup 使用一种 _pull 方法_。基本上,这意味着您要连接到 CVSup 服务器,服务器说, "这有些您能下载的东西 ...",然后您的客户端反应"好,我要这个, 这个,这个,还有这个。"在默认的配置中, CVSup 客户端会取回您在配置文件中选定的 collection 和标签的每个文件。 然而,并不总是您想要的, 尤其是您在同步 [.filename]#doc#,[.filename]#ports#,或者 [.filename]#www# 树 - 大部分人都不能阅读四种或者五种 语言,因此他们不需要下载特定语言的文件。 如果您在 CVSup Ports Collection,您 可以通过单独指定每个 collection 来避免这个 (比如,_ports-astrology_, _ports-biology_,等等取代简单的说明 _ports-all_)。然而,因为 [.filename]#doc# 和 [.filename]#www# 树没有特定语言的 collection,您必须 使用 CVSup 许多极好的特性之一: [.filename]#refuse# 文件。

[.filename]#refuse# 文件本质上是告诉 CVSup 它不应该从 collection 中取得某些文件;换句话说,它告诉客户端 _拒绝_ 来自服务器的特定的文件。 [.filename]#refuse# 文件可以在 [.filename]#base/sup/# 中找到(或者,如果您没有,应该创建一个)。 _base_ 在您的 [.filename]#supfile# 中定义; 默认情况下,_base_ 就是 [.filename]#/var/db#, 这意味着默认的 [.filename]#refuse# 文件就是 [.filename]#/var/db/sup/refuse#。

[.filename]#refuse# 文件的格式很简单; 它仅仅包含您不希望下载的文件和目录名。 例如,如果您除了英语和德语之外不会讲其他语言, 而且也不打算阅读德文的文档翻译版本, 则可以把下面这些放在您的 [.filename]#refuse# 文件里:

[source,shell]
....
doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*
....

等等其他语言(您可以通过浏览 http://www.FreeBSD.org/cgi/cvsweb.cgi/[FreeBSD CVS 仓库]找到完整的列表)。

有这个非常有用的特性,那些慢速连接或者要为他们的 Internet 连接按时付费的用户就可以节省宝贵的时间因为他们不再需要 下载那些从来不用的文件。要了解 [.filename]#refuse# 文件的更多信息以及其它 CVSup 的优雅的特性,请浏览它的 手册页。

=== 运行 CVSup

您现在准备尝试升级了。命令很简单:

[source,shell]
....
# cvsup supfile
....

[.filename]#supfile# 的位置当然就是您刚刚创建的 [.filename]#supfile# 文件名啦。 如果您在 X11 下面运行,`cvsup` 会显示一个有一些可以做平常事情的按钮的 GUI 窗口。 按 btn:[go] 按钮,然后看着它运行。

在这个例子里您将要升级您目前的 [.filename]#/usr/src# 树,您将需要 用 `root` 来运行程序,这样 `cvsup` 有需要的权限来更新您的文件。 刚刚创建了您的配置文件,又从来没有使用过这个程序, 紧张不安是可以理解的。有一个简单的方法不改变您当前的文件 来做一次试验性的运行。只要在方便的地方创建一个 空目录,并在命令行上作为一个额外的参数说明:

[source,shell]
....
# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest
....

您指定的目录会作为所有文件更新的目的路径。 CVSup 会检查您在 [.filename]#/usr/src# 中的文件,但是不会修改或 删除。任何文件更新都会被放到 [.filename]#/var/tmp/dest/usr/src# 里了。 在这种方式下运行 CVSup 也会把它的 base 目录状态文件保持原样。这些文件的新版本 会被写到指定的目录。 因为您有 [.filename]#/usr/src# 目录的读权限,所以执行这种试验性的运行 甚至不需要使用 `root` 用户。

如果您没有运行 X11 或者不喜欢 GUI, 当您运行 `cvsup` 的时候需要在命令行添加 两个选项:

[source,shell]
....
# cvsup -g -L 2 supfile
....

`-g` 告诉 CVSup 不要使用 GUI。如果您 没在运行 X11 这个是自动的,否则您必须指定它。

`-L 2` 告诉 CVSup 输出所有正在升级的文件的细节。 有三个等级可以选择,从 `-L 0` 到 `-L 2`。默认是 0,意味着除了错误消息 什么都不输出。

还有许多其它的选项可用。想要一个简短的列表, 输入 `cvsup -H`。要查看更详细的描述, 请查看手册页。

一旦您对升级工作的方式满意了,您就 可以使用 man:cron[8] 来安排规则的运行 CVSup。 很显然的,您不应该让 CVSup 通过 man:cron[8] 运行的时候使用它的 GUI。

[[cvsup-collec]]
=== CVSup 文件 collection

CVSup 可用的文件 collection 是分级组织的。 有几个大的 collection,然后它们有分成更小的子 collection。接收一个大的 collection 等同于 接收它的每一个子 collection。 collection 的等级关系在下面列表中通过缩进的使用 反映出来。

最常用的 collection 是 `src-all`,和 `ports-all`。其它的 collection 只被有着特定 目的的小部分人使用, 有些站点可能不全部支持。

`cvs-all release=cvs`::
FreeBSD 主 CVS 仓库,包含 密码系统的代码。

`distrib release=cvs`:::
FreeBSD 发行版本和镜像相关的 文件。

`doc-all release=cvs`:::
FreeBSD 使用手册和其它文档的源代码。 其中不包含 FreeBSD web 站点的文件。

`ports-all release=cvs`:::
FreeBSD Ports Collection。
+

[IMPORTANT]
====
如果您不想升级全部的 `ports-all`(整个 ports 树), 而只是使用下面列出的一个子集, 请确保您__总是__升级了 `ports-base` 子 collection! 无论何时在 ports 构建下层构造有所改变的时候都会通过 `ports-base` 表现出来,事实上某些 改变会很快的被"实际的" ports 使用,因此,如果您只升级了 "实际的" ports 而他们使用了一些新的特性, 就有极大的可能编译会因一些神秘的错误信息而失败。 这种情况下__非常快速的__要做的事情 就是确保您的 `ports-base` 子 collection 更新到 最新。
====

+
[IMPORTANT]
====
要自行构建 [.filename]#ports/INDEX#, 您 _必须_ 接受 `ports-all` (完整的 ports tree)。 在部分 ports tree 上构建 [.filename]#ports/INDEX# 是不被支持的。 请参见 extref:{faq}[FAQ, MAKE-INDEX]。
====

`ports-accessibility release=cvs`::::
用以帮助残疾用户的软件。

`ports-arabic release=cvs`::::
阿拉伯语支持。

`ports-archivers release=cvs`::::
存档工具。

`ports-astro release=cvs`::::
天文相关的 ports。

`ports-audio release=cvs`::::
声音支持。

`ports-base release=cvs`::::
Ports Collection 构建下部构造 - 位于 [.filename]#/usr/ports# 的 [.filename]#Mk/# 和 [.filename]#Tools/# 子目录的 各种各样的文件。
+

[NOTE]
====
请查看<<cvsup-collec-pbase-warn, 重要警告>>:您应该 __总是__更新这个 子 collection,无论您更新 FreeBSD Ports Collection 的任何部分的时候!
====

`ports-benchmarks release=cvs`::::
基准。

`ports-biology release=cvs`::::
生物学。

`ports-cad release=cvs`::::
计算机辅助设计工具。

`ports-chinese release=cvs`::::
中文语言支持。

`ports-comms release=cvs`::::
通信软件。

`ports-converters release=cvs`::::
字符编码转换。

`ports-databases release=cvs`::::
数据库

`ports-deskutils release=cvs`::::
计算机发明前常出现在桌面上的东西。

`ports-devel release=cvs`::::
开发工具。

`ports-dns release=cvs`::::
DNS 相关软件。

`ports-editors release=cvs`::::
编辑器

`ports-emulators release=cvs`::::
其它操作系统的模拟器

`ports-finance release=cvs`::::
货币,金融相关应用程序。

`ports-ftp release=cvs`::::
FTP 客户端和服务器端工具。

`ports-games release=cvs`::::
游戏

`ports-german release=cvs`::::
德语支持。

`ports-graphics release=cvs`::::
图形图像工具。

`ports-hebrew release=cvs`::::
希伯来语支持。

`ports-hungarian release=cvs`::::
匈牙利语言支持。

`ports-irc release=cvs`::::
Internet 多线交谈(IRC)工具。

`ports-japanese release=cvs`::::
日语支持。

`ports-java release=cvs`::::
Java(TM) 工具。

`ports-korean release=cvs`::::
韩国语言支持。

`ports-lang release=cvs`::::
编程语言。

`ports-mail release=cvs`::::
邮件软件。

`ports-math release=cvs`::::
数值计算软件。

`ports-misc release=cvs`::::
杂样工具。

`ports-multimedia release=cvs`::::
多媒体软件。

`ports-net release=cvs`::::
网络软件。

`ports-net-im release=cvs`::::
即时消息软件。

`ports-net-mgmt release=cvs`::::
网管软件。

`ports-net-p2p release=cvs`::::
对等网 (peer to peer network) 应用。

`ports-news release=cvs`::::
USENET 新闻软件。

`ports-palm release=cvs`::::
Palm(TM) 系列软件支持。

`ports-polish release=cvs`::::
波兰语支持。

`ports-ports-mgmt release=cvs`::::
用于管理 ports 和预编译包的工具。

`ports-portuguese release=cvs`::::
葡萄牙语支持。

`ports-print release=cvs`::::
打印软件。

`ports-russian release=cvs`::::
俄语支持。

`ports-science release=cvs`::::
科学计算。

`ports-security release=cvs`::::
安全工具。

`ports-shells release=cvs`::::
命令行 shell。

`ports-sysutils release=cvs`::::
系统实用工具。

`ports-textproc release=cvs`::::
文本处理工具(不 包含桌面出版)。

`ports-ukrainian release=cvs`::::
乌克兰语支持。

`ports-vietnamese release=cvs`::::
越南语支持。

`ports-www release=cvs`::::
万维网(WWW)相关软件。

`ports-x11 release=cvs`::::
支持 X window 系统的 ports。

`ports-x11-clocks release=cvs`::::
X11 时钟。

`ports-x11-drivers release=cvs`::::
X11 驱动程序。

`ports-x11-fm release=cvs`::::
X11 文件管理器。

`ports-x11-fonts release=cvs`::::
X11 字体和字体工具。

`ports-x11-toolkits release=cvs`::::
X11 工具包。

`ports-x11-servers release=cvs`::::
X11 服务器。

`ports-x11-themes release=cvs`::::
X11 主题。

`ports-x11-wm release=cvs`::::
X11 窗口管理器。

`projects-all release=cvs`:::
FreeBSD 内部项目的代码库。

`src-all release=cvs`:::
FreeBSD 主代码,包含密码系统的代码。

`src-base release=cvs`::::
[.filename]#/usr/src# 顶层的各式各样的文件。

`src-bin release=cvs`::::
单用户模式下可能用到的用户工具 ([.filename]#/usr/src/bin#)。

`src-cddl release=cvs`::::
采用了 CDDL 授权的实用工具和函数库 ([.filename]#/usr/src/cddl#)。

`src-contrib release=cvs`::::
FreeBSD 项目之外的工具和库,通常在 FreeBSD 中不作修改 ([.filename]#/usr/src/contrib#)。

`src-crypto release=cvs`::::
FreeBSD 项目之外的 密码系统工具和库,通常在 FreeBSD 中不作修改 ([.filename]#/usr/src/crypto#)。

`src-eBones release=cvs`::::
Kerberos 和 DES ([.filename]#/usr/src/eBones#)。 目前的 FreeBSD 中不再使用使用。

`src-etc release=cvs`::::
系统配置文件 ([.filename]#/usr/src/etc#)。

`src-games release=cvs`::::
游戏 ([.filename]#/usr/src/games#)。

`src-gnu release=cvs`::::
GNU 公共许可协议的工具 ([.filename]#/usr/src/gnu#)。

`src-include release=cvs`::::
头文件 ([.filename]#/usr/src/include#)。

`src-kerberos5 release=cvs`::::
Kerberos5 安全包 ([.filename]#/usr/src/kerberos5#)。

`src-kerberosIV release=cvs`::::
KerberosIV 安全包 ([.filename]#/usr/src/kerberosIV#)。

`src-lib release=cvs`::::
库 ([.filename]#/usr/src/lib#)。

`src-libexec release=cvs`::::
通常被其它程序调用的系统程序 ([.filename]#/usr/src/libexec#)。

`src-release release=cvs`::::
生成 FreeBSD 版本必需的文件 ([.filename]#/usr/src/release#)。

`src-rescue release=cvs`::::
用于紧急修复的静态联编的程序; 请参见 man:rescue[8] ([.filename]#/usr/src/rescue#)。

`src-sbin release=cvs`::::
单用户模式的系统工具 ([.filename]#/usr/src/sbin#)。

`src-secure release=cvs`::::
密码相关库和命令 ([.filename]#/usr/src/secure#)。

`src-share release=cvs`::::
跨多个平台的共享的文件 ([.filename]#/usr/src/share#)。

`src-sys release=cvs`::::
内核 ([.filename]#/usr/src/sys#)。

`src-sys-crypto release=cvs`::::
内核密码系统代码 ([.filename]#/usr/src/sys/crypto#)。

`src-tools release=cvs`::::
维护 FreeBSD 的各种各样的工具 ([.filename]#/usr/src/tools#)。

`src-usrbin release=cvs`::::
用户工具 ([.filename]#/usr/src/usr.bin#)。

`src-usrsbin release=cvs`::::
系统工具 ([.filename]#/usr/src/usr.sbin#)。

`www release=cvs`:::
FreeBSD WWW 站点的源代码。

`distrib release=self`::
CVSup 服务器的 配置文件。用于 CVSup 镜像站点。

`gnats release=current`::
GNATS bug 跟踪数据库。

`mail-archive release=current`::
FreeBSD 邮件列表存档。

`www release=current`::
预处理过的 FreeBSD WWW 站点文件(不是源文件)。 用于 WWW 镜像站点。

=== 更多信息

CVSup FAQ 以及关于 CVSup 的其他信息, 请查看 http://www.cvsup.org[CVSup 主页]。

多数与 FreeBSD 有关的 CVSup 讨论会在 {freebsd-hackers} 进行。 这个软件的新版本会在那里和 {freebsd-announce} 公布。

如果对于 CVSup 有任何问题, 或希望提交 bug 报告, 请参阅 http://www.cvsup.org/faq.html#bugreports[ CVSup FAQ]。

[[cvsup-mirrors]]
=== CVSup 站点

FreeBSD 的 <<cvsup,CVSup>> 服务器运行于 下列站点:

[[cvs-tags]]
== CVS 标签

当使用 cvs 或者 CVSup 获取和升级源代码的时候,必须指定一个修订标签。 修订标签代表 FreeBSD 开发的一个特定分支, 或者一个特定的时间点。第一种叫做 "分支标签",第二种叫做 "版本标签"。

=== 分支标签

所有这些,除了 `HEAD` (这个总是 合法标签)以外,只适用于 [.filename]#src/# 树。[.filename]#ports/#,[.filename]#doc/#,和 [.filename]#www/# 树没有分支。

HEAD::
主线的符号名,或者说 FreeBSD-CURRENT。 当没有指定修订版本的时候也是默认的。
+
在 CVSup 里,这个标签通过 一个 `.` 来反映出来(不是标点,而是一个 `.` 字符)。
+

[NOTE]
====
在 CVS 里,当没有修订标签指定时这是默认的。 在一台 STABLE 机器上检出或者升级到 CURRENT 源代码 通常__不是__ 一个好主意,除非这是您的本意。
====

RELENG_8::
这是 FreeBSD-8.X 的开发分支, 也被称作 FreeBSD 8-STABLE。

RELENG_8_2::
这是 FreeBSD-8.2 发行版分支,只用于安全公告, 以及其他重要更新。

RELENG_8_1::
FreeBSD-8.1 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_8_0::
FreeBSD-8.0 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_7::
这是 FreeBSD-7.X 的开发分支, 也被称作 FreeBSD 7-STABLE。

RELENG_7_4::
FreeBSD-7.4 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_7_3::
FreeBSD-7.3 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_7_2::
FreeBSD-7.2 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_7_1::
FreeBSD-7.1 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_7_0::
FreeBSD-7.0 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_6::
这是 FreeBSD-6.X 的开发分支, 也被称作 FreeBSD 6-STABLE。

RELENG_6_4::
FreeBSD-6.4 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_6_3::
FreeBSD-6.3 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_6_2::
FreeBSD-6.2 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_6_1::
FreeBSD-6.1 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_6_0::
FreeBSD-6.0 的发行版分支, 只用于安全公告, 以及其他重要更新。

RELENG_5::
这是 FreeBSD-5.X 的开发分支, 也被称作 FreeBSD 5-STABLE。

RELENG_5_5::
FreeBSD-5.5 安全分支。 只被安全公告和其它重要更新使用。

RELENG_5_4::
FreeBSD-5.4 安全分支。 只被安全公告和其它重要更新使用。

RELENG_5_3::
FreeBSD-5.3 安全分支。 只被安全公告和其它重要更新使用。

RELENG_5_2::
针对 FreeBSD-5.2 和 FreeBSD-5.2.1 的安全分支, 只被安全公告和其它重要更新使用。

RELENG_5_1::
针对 FreeBSD-5.1 的发行版本分支, 只被安全公告和其它重要更新使用。

RELENG_5_0::
针对 FreeBSD-5.0 的发行版本分支, 只被安全公告和其它重要更新使用。

RELENG_4::
FreeBSD-4.X 开发线,也被叫做 FreeBSD-STABLE。

RELENG_4_11::
FreeBSD-4.11 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_10::
FreeBSD-4.10 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_9::
FreeBSD-4.9 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_8::
FreeBSD-4.8 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_7::
FreeBSD-4.7 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_6::
FreeBSD-4.6 和 4.6.2 的安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_5::
FreeBSD-4.5 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_4::
FreeBSD-4.4 安全分支。 只被安全公告和其它重要更新使用。

RELENG_4_3::
FreeBSD-4.3 安全分支。 只被安全公告和其它重要更新使用。

RELENG_3::
FreeBSD-3.X 的开发线,也被叫做 3.X-STABLE。

RELENG_2_2::
FreeBSD-2.2.X 的开发线, 也被叫做 2.2-STABLE。 这个分支基本上已经过时了。

=== 版本标签

当一个特定的 FreeBSD 版本发行时, 这些标签代表了一个指定的时间点。发布工程进程在 link:https://www.FreeBSD.org/releng/[Release Engineering Information] 和 extref:{releng}[Release Process, release-proc] 文档中被详细描述。 [.filename]#src# 树使用以 `RELENG_` 开头的标签。 [.filename]#ports# 和 [.filename]#doc# 树使用以 `RELEASE` 开头的标签。 最后, [.filename]#www# 树上不会有任何特定发行版的标签。

RELENG_8_2_0_RELEASE::
FreeBSD 8.2

RELENG_8_1_0_RELEASE::
FreeBSD 8.1

RELENG_8_0_0_RELEASE::
FreeBSD 8.0

RELENG_7_4_0_RELEASE::
FreeBSD 7.4

RELENG_7_3_0_RELEASE::
FreeBSD 7.3

RELENG_7_2_0_RELEASE::
FreeBSD 7.2

RELENG_7_1_0_RELEASE::
FreeBSD 7.1

RELENG_7_0_0_RELEASE::
FreeBSD 7.0

RELENG_6_4_0_RELEASE::
FreeBSD 6.4

RELENG_6_3_0_RELEASE::
FreeBSD 6.3

RELENG_6_2_0_RELEASE::
FreeBSD 6.2

RELENG_6_1_0_RELEASE::
FreeBSD 6.1

RELENG_6_0_0_RELEASE::
FreeBSD 6.0

RELENG_5_5_0_RELEASE::
FreeBSD 5.5

RELENG_5_4_0_RELEASE::
FreeBSD 5.4

RELENG_4_11_0_RELEASE::
FreeBSD 4.11

RELENG_5_3_0_RELEASE::
FreeBSD 5.3

RELENG_4_10_0_RELEASE::
FreeBSD 4.10

RELENG_5_2_1_RELEASE::
FreeBSD 5.2.1

RELENG_5_2_0_RELEASE::
FreeBSD 5.2

RELENG_4_9_0_RELEASE::
FreeBSD 4.9

RELENG_5_1_0_RELEASE::
FreeBSD 5.1

RELENG_4_8_0_RELEASE::
FreeBSD 4.8

RELENG_5_0_0_RELEASE::
FreeBSD 5.0

RELENG_4_7_0_RELEASE::
FreeBSD 4.7

RELENG_4_6_2_RELEASE::
FreeBSD 4.6.2

RELENG_4_6_1_RELEASE::
FreeBSD 4.6.1

RELENG_4_6_0_RELEASE::
FreeBSD 4.6

RELENG_4_5_0_RELEASE::
FreeBSD 4.5

RELENG_4_4_0_RELEASE::
FreeBSD 4.4

RELENG_4_3_0_RELEASE::
FreeBSD 4.3

RELENG_4_2_0_RELEASE::
FreeBSD 4.2

RELENG_4_1_1_RELEASE::
FreeBSD 4.1.1

RELENG_4_1_0_RELEASE::
FreeBSD 4.1

RELENG_4_0_0_RELEASE::
FreeBSD 4.0

RELENG_3_5_0_RELEASE::
FreeBSD-3.5

RELENG_3_4_0_RELEASE::
FreeBSD-3.4

RELENG_3_3_0_RELEASE::
FreeBSD-3.3

RELENG_3_2_0_RELEASE::
FreeBSD-3.2

RELENG_3_1_0_RELEASE::
FreeBSD-3.1

RELENG_3_0_0_RELEASE::
FreeBSD-3.0

RELENG_2_2_8_RELEASE::
FreeBSD-2.2.8

RELENG_2_2_7_RELEASE::
FreeBSD-2.2.7

RELENG_2_2_6_RELEASE::
FreeBSD-2.2.6

RELENG_2_2_5_RELEASE::
FreeBSD-2.2.5

RELENG_2_2_2_RELEASE::
FreeBSD-2.2.2

RELENG_2_2_1_RELEASE::
FreeBSD-2.2.1

RELENG_2_2_0_RELEASE::
FreeBSD-2.2.0

[[mirrors-afs]]
== AFS 站点

FreeBSD 的 AFS 服务器运行于下面的站点:

瑞典::
文件的路径是: [.filename]#/afs/stacken.kth.se/ftp/pub/FreeBSD/#
+
[.programlisting]
....
stacken.kth.se         # Stacken Computer Club, KTH, Sweden
130.237.234.43         #hot.stacken.kth.se
130.237.237.230        #fishburger.stacken.kth.se
130.237.234.3          #milko.stacken.kth.se
....
+
维护者 mailto:ftp@stacken.kth.se[ftp@stacken.kth.se]

[[mirrors-rsync]]
== rsync 站点

下面的站点让 FreeBSD 可以通过 rsync 协议下载。 rsync 实用程序和 man:rcp[1] 的工作方式很相像, 但是有更多的选项,使用 rsync 远程更新协议只传输 两份文件的不同之处, 因此能够大幅度的提高网络同步速率。 如果您是 FreeBSD FTP 服务器或者 CVS 仓库的镜像站点, 这一点非常有用。 rsync 套件可以工作在许多种 操作系统上,在 FreeBSD 上,查看 package:net/rsync[] port 或者使用 package。

捷克共和国::
rsync://ftp.cz.FreeBSD.org/
+
可用的 collection:

** ftp: FreeBSD FTP 服务器的 部分镜像。
** FreeBSD: FreeBSD FTP 服务器的 完整镜像。

荷兰::
rsync://ftp.nl.FreeBSD.org/
+
可用的 collection:

** FreeBSD: 对于 FreeBSD FTP 服务器的完整镜像。

俄罗斯::
rsync://ftp.mtu.ru/
+
可用的 collections:

** FreeBSD: 完整的 FreeBSD FTP 服务器镜像。
** FreeBSD-gnats: GNATS 问题追踪数据库。
** FreeBSD-Archive: FreeBSD 档案的 FTP 服务器镜像。

瑞典::
rsync://ftp4.se.freebsd.org/
+
可用的 collections:

** FreeBSD: FreeBSD FTP 服务器的完整镜像。

台湾地区 (中国)::
rsync://ftp.tw.FreeBSD.org/
+
rsync://ftp2.tw.FreeBSD.org/
+
rsync://ftp6.tw.FreeBSD.org/
+
可用的 collection:

** FreeBSD: FreeBSD FTP 服务器的完整镜像。

英国::
rsync://rsync.mirrorservice.org/
+
可用的 collection:

** sites/ftp.FreeBSD.org: FreeBSD FTP 服务器 的完整镜像。

美国::
rsync://ftp-master.FreeBSD.org/
+
服务器只供 FreeBSD 主镜像站点使用。
+
可用的 collection:

** FreeBSD:FreeBSD FTP 服务器的主要存档。
** acl:FreeBSD 主 ACL 列表。
+
rsync://ftp13.FreeBSD.org/
+
可用的 collection:

** FreeBSD:FreeBSD FTP 服务器的完整 镜像。