aboutsummaryrefslogtreecommitdiff
path: root/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
blob: b55c74bdb7060a164a588c7126597e27e5454eaf (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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
     The FreeBSD Mongolian Documentation Project

     Original revision 1.297

     $FreeBSD$
-->

<chapter id="ports">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Шагдарын</firstname>
	<surname>Нацагдорж</surname>
	<contrib>Орчуулсан </contrib>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Програм суулгах: Багцууд болон портууд</title>

  <sect1 id="ports-synopsis">
    <title>Ерөнхий агуулга</title>

    <indexterm><primary>портууд</primary></indexterm>
    <indexterm><primary>багцууд</primary></indexterm>
    <para>Маш олон системийн хэрэгслүүд FreeBSD-н үндсэн системтэй нь хамт суугддаг. Гэхдээ зарим хүмүүст ажлаа гүйцээхийн тулд маш олон гуравдагчдын бэлтгэсэн програмыг суулгах шаардлага гардаг билээ. Таны систем дээр гуравдагчийн бүтээсэн програмуудыг суулгах хоёр үндсэн маш сайн аргыг FreeBSD хангаж өгдөг нь: FreeBSD-н портын цуглуулга (эх бичлэгээс нь суулгахад зориулагдсан), ба багцууд (урьдчилан хөрвүүлсэн хоёртын хэлбэрийн файлаас суулгахад зориулагдсан) юм.
      Энэ хоёр арга нь хоёулаа таны суулгахыг хүссэн програмын хамгийн сүүлийн хувилбарыг сүлжээ юм уу дотоод төхөөрөмжөөс суулгахад хэрэглэгдэнэ.</para>

    <para>Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:</para>

    <itemizedlist>
      <listitem>
	<para>Гуравдагчдын бүтээсэн програмын багцыг хэрхэн суулгах.</para>
      </listitem>
      <listitem>
	<para>Портын цуглуулга ашиглаж гуравдагчдын програмыг эх бичлэгээс нь хэрхэн бүтээх.</para>
      </listitem>
      <listitem>
	<para>Өмнө суугдсан багц юм уу эсвэл портуудыг хэрхэн устгах.</para>
      </listitem>
      <listitem>
	<para>Портын цуглуулгын хэрэглэдэг анхдагч утгуудыг хэрхэн дарж бичих.</para>
      </listitem>
      <listitem>
	<para>Шаардлагатай програмын багцаа хэрхэн хайж олох.</para>
      </listitem>
      <listitem>
	<para>Програмаа хэрхэн шинэчилсэн түвшинд авчрах.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="ports-overview">
    <title>Програм суулгацын ерөнхий ойлголт</title>

    <para>Хэрэв та урьд нь &unix; системийг хэрэглэж байсан бол, гуравдагчдын бүтээсэн програмыг суулгах явц дараах маягаар явагддаг билээ:</para>

    <procedure>
      <step>
	<para>Програмыг татаж авах. Энэ нь голдуу эх бичлэг хэлбэрээрээ юм уу эсвэл хөрвүүлэгдсэн хоёрт файлын хэлбэрээр байдаг.</para>
      </step>

      <step>
	<para>Авсан програмаа задлах
	  (ихэнх нь &man.compress.1;,
	  &man.gzip.1;, эсвэл &man.bzip2.1; нараар шахагдсан байдаг).</para>
      </step>

      <step>
	<para>Бичиг баримт нь хаана байгааг олоод (голдуу
	  <filename>INSTALL</filename> юм уу <filename>README</filename>
	  файлууд байдаг ба, эсвэл  <filename>doc/</filename>
	  гэсэн дэд санд буй бичиг баримтууд) хэрхэн суулгах зааврыг нь унших.</para>
      </step>

      <step>
	<para>Хэрэв програм нь эх бичлэг хэлбэрээрээ байгаа бол, түүнийг хөрвүүлэх.
	  Ингэхийн тулд магадгүй
	  <filename>Makefile</filename> файлыг засварлах, эсвэл 
	  <command>configure</command> скриптийг ажиллуулах зэрэг ажлууд байдаг.</para>
      </step>

      <step>
	<para>Програмыг шалгаад, дараа нь суулгах.</para>
      </step>
    </procedure>

    <para>Хэрэв бүх зүйл сайхан бүтсэн үед л ийм явц үйлдэгддэг. Хэрэв та тусад нь  FreeBSD-д зориулж порт болгоогүй програмыг суулгахыг хүсвэл, магадгүй та уг програмыг ажиллуулахын тулд тухайн програмын эх кодыг засварлах хэрэг гарна.</para>

    <para>Хэрэв та хүсэж байгаа бол, иймэрхүү 
      <quote>уламжлалт</quote> аргаар програмыг FreeBSD дээр суулгаж болно. Гэхдээ FreeBSD дээр таны нөр их хөдөлмөрийг хөнгөлөх хоёр арга байдаг нь:
      багцууд болон портууд юм. Энэ баримтжуулалтыг бэлтгэж байх үед  &os.numports; гаран гуравдагчийн бэлтгэсэн програмууд ийм аргаар бэлэн болсон байгаа.</para>

    <para>Ямар ч програм байсан, FreeBSD дээрх уг програмын багц гэж ердөө нэг л файлыг та татаж авах ёстой байдаг. Уг багц дотор тухайн програмын урьдчилан хөрвүүлсэн хувилбар, бичиг баримт болон тохируулга хийх скриптүүд зэрэг нь багтсан байгаа. Татаж авагдсан багц файлыг &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1; зэрэг FreeBSD-н багц зохицуулагч програмаар өөрчилж болдог. Шинэ програм суулгах явцыг нэг л тушаалаар гүйцэтгэхийг эрмэлзсэн байдаг билээ. 
     </para>

    <para>Програмуудын FreeBSD порт гэдэг нь, тухайн програмуудыг эх бичлэгээс хөрвүүлж автоматаар суулгах зориулалттай бүлэглэгдсэн файлуудыг хэлдэг.</para>

    <para>Програмыг эх бичлэгээс нь хөрвүүлж суулгахад хэд хэдэн үйлдэл (татаж авах, задлах, нөхөх, хөрвүүлэх, суулгах) хийдгийг та санаж байгаа байх. Портын агуулж буй файлууд нь яг энэ явцыг танд зориулж автоматжуулахад зориулагдсан мэдээлэл агуулсан байдаг. Та энгийн хэдэн тушаалыг гарнаас оруулахад л, уг програм татагдаж авагдаад, задлагдан, нөхөгдөж, хөрвүүлэгдээд суугдах болно.</para>

    <para>Яг үнэн хэрэгтээ, портлох арга нь тухайн програмыг дараа нь <command>pkg_add</command> болон бусад багц зохицуулагч програмуудад хэрэглэгдэж болохоор багц үүсгэж хэрэглэгдэж бас болдог.</para>

    <para>Багц болон портлох энэ хоёр арга нь хоёулаа, тухайн програмын  <emphasis>dependencies буюу хамаатан</emphasis> програмуудыг мэдэж байдаг. Та нэг програм суулгах шаардлагатай байгаа бөгөөд уг програм нь бас нэг програмын сан файлыг суугдсан байхыг шаарддаг байна хэмээн авч үзье. Уг хоёр програм хоёулаа 
      FreeBSD-н порт ба багц хэлбэрээр танд байгаа гэж бодъё. Хэрэв та
      <command>pkg_add</command> тушаалыг хэрэглэх юм уу эсвэл портын аргыг хэрэглэж уг програмыг суулганэ гэвэл, энэ хоёр арга нь хоёулаа уг програмыг суулгахад шаардагдах сан файл суугдаагүй байвал суугдаагүй байна гэж мэдээлээд, тэр сан файлыг эхлээд суулгадаг. </para>

    <para>Энэ хоёр аргыг харах юм бол хоорондоо тун ижилхэн үйлдэл хийдгийг та ажиглаж магадгүй юм. Тэгээд яагаад FreeBSD гуай энэ хоёр аргатай хоёулантай нь зууралдаад байгаа юм бол гэж гайхаж мададгүй. Багц болон порт хоёр нь таны суулгах нөхцлөөс шалтгаалан өөрсдийн гэсэн хүчирхэг давуу талтай. </para>

    <itemizedlist>
      <title>Багцын давуу тал</title>
      
      <listitem>
	<para>Програмын шахсан багц файл нь уг програмын эх бичлэгийг агуулдаггүй болохоор хэмжээний хувьд бага байдаг.</para>
      </listitem>

      <listitem>
	<para>Багцууд нэмэлт хөрвүүлэх үйлдэл шаарддаггүй. 
	  <application>Mozilla</application>,
	  <application>KDE</application>, эсвэл
	  <application>GNOME</application> зэрэг том програмуудыг удаавтар систем дээр суулгахаар бол, энэ арга нь тун их давуу талтай юм.</para>
      </listitem>

      <listitem>
	<para>Багцууд нь FreeBSD дээрх ямар нэгэн хөрвүүлэх явцын тухай мэдээлэл шаарддаггүй.</para>
      </listitem>
    </itemizedlist>

    <itemizedlist>
      <title>Портын давуу талууд</title>
      
      <listitem>
	<para>Багцыг аль болох олон систем дээр тохирогдон суулгах гэж хичээсэн болохоор, ийм багц нь маш өргөн дэлгэр сонголттойгоор хөрвүүлэгдэж бэлтгэгдсэн байдаг. Порт хэрэглэн програм суулгахаар бол, (жишээ нь) Pentium
	  4 эсвэл Athlon процессордоо зориулж програмын тохируулгыг өөрчилж болдог.</para>
      </listitem>

      <listitem>
	<para>Зарим програмууд өөрийнхөө чадах болон чадахгүй зэрэг нөхцлөөсөө хамаараад хөрвүүлэгдэх явцад өөрчлөлт хийгдэх тохиолдлууд байдаг. Жишээ нь,
	  <application>Apache</application> програм нь маш олон төрлийн өөртөө агуулсан тохиргоотой ирдэг. Ийм програмыг та портоос бүтээх үедээ анхдагч тохиргоонуудыг нь өөрчилж өөртөө тохируулж болно.</para>

	<para>Заримдаа, ижил төрлийн програмууд өөрсдийнхөө онцгой тохиргооноос хамаараад хэдэн хэдэн янзаар хөрвүүлэгдэж багцлагдсан байдаг. Жишээ нь, Х11 сервер суусан эсэхээс хамаараад
	  <application>Ghostscript</application> програм нь
	  <filename>ghostscript</filename> гэсэн нэртэй багцлагдсан байдаг ба бас
	  <filename>ghostscript-nox11</filename> гэсэн нэрээр мөн багц хэлбэртэй байдаг. Багцлах аргад иймэрхүү явцуу тохируулгаас хамаарсан арга байдаг боловч, хэрэв хөрвүүлэх үеийн тохиргоо нь ихсэх болбол энэ арга нь тун явуургүй болдог билээ. </para>
      </listitem>

      <listitem>
	<para>Зарим програмын лицензэнд, уг програмыг хөрвүүлэгдсэн хэлбэрээр түгээхийг хорьсон байдаг. Тийм програмуудыг эх бичлэг хэлбэрээр нь түгээх ёстой болдог билээ. </para>
      </listitem>

      <listitem>
	<para>Зарим хүмүүс хөрвүүлэгдсэн хоёртын файлын түгээлтэнд дургүй байдаг. Ядаж эх бичлэг нь байвал,  та  (онолын хувьд) эх бичлэгийг уншиж болзошгүй аюулыг илрүүлж болох юм.</para>
      </listitem>

      <listitem>
	<para>Хэрэв танд нөхөлт бичлэг (засвар) байгаа бол, та уг нөхөлтийг зөвхөн эх бичлэг дээр л хийж чадна.</para>
      </listitem>

      <listitem>
	<para>Зарим хүмүүс эх бичлэгээр наадах дуртай байдаг. Тэд нар эх бичлэгийг уншаад залхуу нь хүрээд ирэхээрээ уг бичлэгийг өөрчилж эвдэх, эсвэл зээлдэж өөрчлөх ( мэдээж лицензийн дагуу ) гэх мэтээр оролддог.</para>
      </listitem>
    </itemizedlist>

    <para>Портын шинэчлэлийн тухай мэдээлэл авч байхыг хүсвэл 
      &a.ports; болон &a.ports-bugs; зэрэг захианы жагсаалтад бүртгүүлэх хэрэгтэй.</para>

    <warning>
      <para>Ямар нэгэн програм суулгахаасаа өмнө  <ulink
	url="http://vuxml.freebsd.org/"></ulink>-с програмын нууцлалын тухай мэдээллийг харах нь зүйтэй. </para>

      <para>Та мөн <filename
	role="package">ports-mgmt/portaudit</filename>-г суулгаж болох бөгөөд энэ нь, програмыг суулгахын өмнө уг програмын хуучралт болон аюулгүй байдалтай хамаатай шаардлагатай шалгалтуудыг хийж өгдөг. Иймэрхүү шалгалтыг зарим багц суулгасны дараа та  <command>portaudit
	-F -a</command> гэсэн тушаал хэрэглэн үйлдэж болно.</para>
    </warning>

    <para>Энэ бүлгийн үлдсэн хэсэгт 
      FreeBSD дээр порт юм уу багц ашиглан хэрхэн програм суулгах талаар өгүүлэх болно.</para>
  </sect1>

  <sect1 id="ports-finding-applications">
    <title>Програмаа олох нь</title>

    <para>Ямар нэгэн програм суулгахаасаа өмнө та ямар програм суулгахыг хүсэж
	байгаа болон ямар нэртэй гэдгийг нь мэдсэн байх хэрэгтэй. </para>

    <para>FreeBSD-н програмын жагсаалт нь цаг тутамд нэмэгдэж байдаг. 
	Аз болж таны хүссэн програмыг олох хэд хэдэн арга бий:</para>

    <itemizedlist>
      <listitem>
	<para>FreeBSD-н вэб хуудас нь <ulink
	  url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink> хаяг дээр бүх байгаа програмын шинэчлэгдсэн хувилбаруудыг нь хайж болох хэлбэрээр арчилж байдаг. 
	  Портууд нь төрөлжиж хуваагдсан байдаг бөгөөд та хүссэн програмаа хайж олох
	(хэрэв та нэрийг нь мэдэж байвал) эсвэл тухайн төрөлд байгаа бүх програмуудын нэрсийн жагсаалтыг харж болно.</para>
      </listitem>

      <listitem>
        <indexterm><primary>FreshPorts буюу шинэхэн портууд</primary></indexterm>

	<para>Dan Langille гэгч нь FreshPorts хуудсыг <ulink
	  url="http://www.FreshPorts.org/"></ulink> хаяг дээр арчлан эрхэлдэг.  FreshPorts нь порт дээр гарсан өөрчлөлтүүдийг хянаж байдаг бөгөөд хэрэв таныг хүсвэл 
	таны сонгосон хэд хэдэн портуудыг <quote>ажиглаж</quote> байгаад өөрчлөлт 
	гарангуут танд захиагаар мэдэгддэг.</para>
      </listitem>

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

	<para>Хэрэв та програмынхаа нэрийг нь мэдэхгүй байгаа бол FreshMeat (<ulink
	  url="http://www.freshmeat.net/"></ulink>) хуудсан дээр хайж үзэх хэрэгтэй. 
	Хэрэв уг хуудсан дээр шинэ програм олдсон бол буцаад FreeBSD хуудсанд очиж
	уг хуудсыг порт болсон эсэхийг магадлах нь зүйтэй.</para>
      </listitem>

      <listitem>
	<para>Хэрэв та портынхоо нэрийг яг мэддэг боловч ямар төрөлд багтдагийг нь
	мэдэх хэрэгтэй бол 
        &man.whereis.1; тушаалыг ашиглаарай.
	Ердөө л <command>whereis
        <replaceable>файлын_нэр</replaceable></command> гэж бичих бөгөөд 
        <replaceable>файлын_нэр</replaceable> нь суулгахыг хүссэн програмын нэр билээ. Хэрэв уг програм нь олдвол, танд хаана байгааг нь дараах маягаар харуулна:</para>

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

      <para>Энэ нь бидэнд <command>lsof</command> (системийн нэгэн
	хэрэгсэл) програмыг 
	<filename>/usr/ports/sysutils/lsof</filename>
	санд буй гэж мэдэгдэж байна.</para></listitem>

      <listitem>
	<para>Мөн портын модонд тухайн порт хаана байгааг 
	  олохын тулд ердийн &man.echo.1; тушаалыг ашиглаж 
	  болно. Жишээ нь:</para>

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

	<para>Энэ нь 
	  <filename class="directory">/usr/ports/distfiles</filename>
	  сан уруу татаж авагдсан таарсан файлуудыг харуулах болно 
	  гэдгийг анхаараарай.</para>
      </listitem>

      <listitem>
	<para>Хүссэн портоо олох бас нэг арга бол портын цуглуулга дотор нь байдаг 
	өөрийнх нь хайгчийг нь ашиглах билээ. Уг хайгчийг нь хэрэглэхийн тулд
	та <filename>/usr/ports</filename> сан дотор байх шаардлагатай.  Уг сан
	дотроос  <command>make <maketarget>search</maketarget> 
        name=<replaceable>програмын-нэр</replaceable></command> гэж бичих бөгөөд
		<replaceable>програмын-нэр</replaceable> нь таны олохыг хүссэн програмын 
		нэр байх ёстой. Жишээлбэл 
         <command>lsof</command> програмыг олохын тулд:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
&prompt.root; <userinput>make search name=lsof</userinput>
Port:   lsof-4.56.4
Path:   /usr/ports/sysutils/lsof
Info:   Lists information about open files (similar to fstat(1))
Maint:  obrien@FreeBSD.org
Index:  sysutils
B-deps: 
R-deps: </screen>

      <para>Уг хайлтын үр дүнд та  <quote>Path:</quote> гэсэн мөрөнд
	анхаарлаа хандуулах хэрэгтэй бөгөөд энэ нь хаана байгааг  илэрхийлж байдаг.
	Бусад харуулж байгаа мэдээллүүд нь програм суулгахад хэрэглэгддэггүй болохоор
	энд дэлгэн ярихгүй. </para>

      <para>Бүр нарийвчилан хайхыг хүсвэл <command>make
       <maketarget>search</maketarget> key=<replaceable>хайх-мөр</replaceable></command> гэх бөгөөд 
       <replaceable>хайх-мөр</replaceable> нь тухайн програмтай холбоотой мөр
		байдаг. 
       Энэ нь портын нэр, тайлбар, тодорхойлолт болон хамааралтай програм зэргүүдэд
	хайлт хийдэг болохоор тухайн програмынхаа талаар дэлгэрэнгүй мэдээлэл байхгүй 
	хүнд хайхад тун тохиромжтой.</para>

      <para>Дээрх хоёр тохиолдолд хайх мөр тань жижиг болон том бичсэнээс хамаардаггүй. <quote>LSOF</quote> гэж хайх нь 
        <quote>lsof</quote> гэж хайсантай ижилхэн үр дүнд хүргэнэ.</para>
      </listitem>

    </itemizedlist>
  </sect1>

  <sect1 id="packages-using">
    <sect1info>    
      <authorgroup>
        <author>
          <firstname>Chern</firstname>
	  <surname>Lee</surname>
	  <contrib>Хамтран бичсэн </contrib>
        </author>
      </authorgroup>
    <!-- 30 Mar 2001 -->
    </sect1info>

    <title>Багцалсан системийг хэрэглэх нь</title>

    <para>FreeBSD дээр багцуудыг удирдах хэд хэдэн төрлийн хэрэгслүүд 
      байдаг:</para>

    <itemizedlist>
      <listitem><para>Ажиллаж байгаа систем дээр боломжтой байгаа болон 
	  суулгагдсан багцуудыг харах, устгах, суулгахын тулд 
	  <command>sysinstall</command>-ийг ажиллуулж болно. 
	  Дэлгэрэнгүй мэдээллийг <xref
        linkend="packages"/>-с үзнэ үү.</para></listitem>
      <listitem><para>Багцын удирдлагын тушаалын мөрийн хэрэгслүүдийг энэ 
	  хэсгийн үлдсэн хэсэгт хэлэлцэх болно.</para></listitem>
    </itemizedlist>

    <sect2>
      <title>Багц суулгах</title>
      <indexterm>
        <primary>багц</primary>
        <secondary>суулгах</secondary>
      </indexterm>
    
      <indexterm>
        <primary><command>pkg_add</command></primary>
      </indexterm>
      <para>Та &man.pkg.add.1; хэрэгслийг ашиглан өөртөө хадгалагдсан юм уу
	эсвэл сүлжээнд буй серверээс 
	FreeBSD-н програмын багц суулгаж болдог. </para>

      <example>
        <title>Багц татаж аваад суулгах явц</title>

        <screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230-     This machine is in Vienna, VA, USA, hosted by Verio.
230-         Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
<prompt>ftp></prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
250 CWD command successful.
<prompt>ftp></prompt> <userinput>get lsof-4.56.4.tgz</userinput>
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375       00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
<prompt>ftp></prompt> <userinput>exit</userinput>
&prompt.root; <userinput>pkg_add <replaceable>lsof-4.56.4.tgz</replaceable></userinput></screen>
      </example>

      <para>Хэрэв танд багц суулгах дотоод эх үүсвэр (
        FreeBSD CD-ROM гэх мэт) байхгүй бол 
          &man.pkg.add.1; хэрэгслийг <option>-r</option> сонголттой хамт
		хэрэглэх нь зүйтэй. Энэ нь тухайн програмыг төрөл болон хувилбар зэрэг
		мэдээллийг нь автоматаар таньж мэдээд  FTP хуудаснаас татан авч
		суулгадаг.
      </para>

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

      <para>Дээрх жишээн дээр уг хэрэгсэл нь хэрэглэгчийн оролцоогүйгээр
	татаж аваад суулгаж буйг харуулж байна.
	Хэрэв та татаж авах алс хаягийг нь адилхан толин тусгал болох өөр нэг
	&os; багцын хаягаар солихыг хүсвэл 
	<envar>PACKAGESITE</envar> орчны хувьсагчийн утгад анхных нь утгыг нь дарж өөр хаяг өгөх хэрэгтэй. 	 
	&man.pkg.add.1; нь &man.fetch.3;-г ашиглаж файл татаж авдаг бөгөөд янз бүрийн орчны хувьсагчийн
	утга хэрэглэдэг. Тэд нар нь 
	<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, мөн
	<envar>FTP_PASSWORD</envar> гэх мэт хувьсагчид байдаг.  
	Хэрэв та галт хананы цаана байгаа юм уу эсвэл 
	FTP/HTTP прокси хэрэглэж байгаа бол уг хувьсагчдыг өөрчлөх ёстой.  
	Хувьсагчдын бүрэн жагсаалтыг  &man.fetch.3; хуудаснаас харна уу.
	Дээрх жишээн дээр 
	<literal>lsof</literal> нь
	<literal>lsof-4.56.4</literal> оронд хэрэглэгдэв. Хэрэв та алсаас автоматаар
	татаж авах үйлдэл хийж байгаа бол багцны хувилбарын дугаарыг оруулалгүй бичих
	хэрэгтэй.  &man.pkg.add.1; нь тухайн програмын сүүлийн хувилбарыг автоматаар
	таньж суулгадаг. </para>

      <note>
	<para>Хэрэв та  &os.current; эсвэл
	  &os.stable; хувилбарыг хэрэглэж байгаа бол &man.pkg.add.1; нь 
	програмын хамгийн сүүлийн хувилбарыг татаж авч суулгадаг. Хэрэв 
	та  -RELEASE хувилбар хэрэглэж байгаа бол таны хэрэглэж байгаа
	тухайн хувилбарт тохирсон хувилбарыг нь татаж авч суулгадаг. Гэхдээ 
	иймэрхүү үйлдлийг нь өөрчлөхийг хүсвэл  <envar>PACKAGESITE</envar>-г өөрчлөөрэй. 
	Жишээлбэл та  &os;&nbsp;8.1-RELEASE
	  систем дээр &man.pkg.add.1; хэрэгслийг ажиллуулбал анхдагч хаяг нь 
	 
	  <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/</literal> байх болно.
	 Хэрэв та &man.pkg.add.1;-г 
	  &os;&nbsp;8-STABLE багц суулгахаар тохируулахыг хүсвэл  <envar>PACKAGESITE</envar>
	 хувьсагчийг 
	  <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/</literal> гэж зааж өгөх хэрэгтэй.
	</para>
      </note>

      <para>Багц файлууд нь <filename>.tgz</filename>
          болон <filename>.tbz</filename> гэсэн хэлбэртэй байдаг. 
	Та тэдгээрийг  <ulink
          url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>
	хаягнаас олж болох бөгөөд эсвэл  FreeBSD CD-ROM дээр бас буй. 
	FreeBSD-н 4 ширхэг CD тус бүрийн <filename>/packages</filename> сан дотор
	багц байрлаж байгаа. Багц байрлуулалт нь 
          <filename>/usr/ports</filename>-н загвартай ижил модлог байдаг. 
	Төрөл болгон өөрийн гэсэн сантай ба багц болгон бас 
          <filename>All буюу бүгд</filename> гэсэн сангаас олддог.
      </para>

      <para>Багцны сангийн бүтэц нь портын бүтэцтэй таарч багц портын системийг
	бүрэлдүүлдэг юм. 
      </para>

    </sect2>

    <sect2>
      <title>Багц зохицуулалт</title>

      <indexterm>
        <primary>багц</primary>
        <secondary>зохицуулах</secondary>
      </indexterm>
      <para>&man.pkg.info.1; хэрэгсэл нь суугдсан багцтай холбоотой
	мэдээллүүдийг харуулдаг.
      </para>

      <indexterm>
        <primary><command>pkg_info</command></primary>
      </indexterm>
      <screen>&prompt.root; <userinput>pkg_info</userinput>
cvsup-16.1          A general network file distribution system optimized for CV
docbook-1.2         Meta-port for the different versions of the DocBook DTD
...</screen>
      <para>&man.pkg.version.1; хэрэгсэл нь суугдсан бүх багцны ерөнхий мэдээллийг
	харуулж байдаг. Энэ нь багцны хувилбарыг портын санд буй програмын хувилбартай
	жишиж харьцуулдаг. 
      </para> 
      <indexterm>
        <primary><command>pkg_version</command></primary>
      </indexterm>
        <screen>&prompt.root; <userinput>pkg_version</userinput>
cvsup                       =
docbook                     =
...</screen>

      <para>Хоёр дахь баганад буй тэмдэгт нь порт доторх програмын хувилбартай харьцуулсан харьцуулалт юм.</para>

      <informaltable frame="none" pgwide="1">
        <tgroup cols="2">
	  <thead>
            <row>
              <entry>Тэмдэг</entry>
              <entry>Утга</entry>
            </row>
          </thead>

 	  <tbody>
  	    <row>
	    <entry>=</entry> <entry>Суугдсан багцны хувилбар нь портын хувилбартай
	адилхан байна.</entry>
  	    </row>
 
        <row><entry>&lt;</entry>
	<entry>Суугдсан хувилбар нь портын хувилбараас хуучин байна.</entry>
	</row>

        <row><entry>&gt;</entry><entry>Суугдсан хувилбар нь портын хувилбараас
	шинэ байна. (Дотоод порт тань хуучирсан байж болзошгүй)</entry></row>

        <row><entry>?</entry><entry>Суугдсан багц нь портын жагсаалтад 
	олдсонгүй. (Энэ тохиолдож болох юм. Жишээлбэл суугдсан порт нь устгагдах юм уу нэр нь өөрчлөгдсөн байж болзошгүй.)</entry></row>

        <row><entry>*</entry><entry>Багц олон хувилбартай байна.</entry></row>

        <row><entry>!</entry><entry>Суулгагдсан багц жагсаалтад байгаа боловч 
	 ямар нэг шалтгааны улмаас <command>pkg_version</command> тушаал нь 
	 суулгагдсан багцын хувилбарын дугаарыг жагсаалт дахь харгалзах оруулгатай 
	 харьцуулж чадахгүй байна.</entry></row>

	</tbody>
	</tgroup>
    </informaltable>
    </sect2>

    <sect2>
      <title>Багц устгах</title>
      <indexterm>
        <primary><command>pkg_delete</command></primary>
      </indexterm>
      <indexterm>
        <primary>багц</primary>
        <secondary>устгах</secondary>
      </indexterm>
      <para>Өмнө суугдсан байгаа багцыг устгахдаа 
	&man.pkg.delete.1; хэрэгслийг ашиглана.
      </para>

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

      <para>&man.pkg.delete.1; нь багцын бүрэн нэр болон дугаарыг шаарддагийг 
	тэмдэглэе; <replaceable>xchat-1.7.1</replaceable>-ийн 
	оронд <replaceable>xchat</replaceable> өгөгдсөн бол дээр дурдсан тушаал 
	ажиллахгүй. Гэхдээ суулгагдсан багцын хувилбарыг олохын тулд 
	&man.pkg.version.1;-ийг ашиглах хялбар байдаг. Ингэхийн оронд та 
	бүгдийг орлуулах тэмдэгт ашиглаж болох юм:</para>

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

       <para>Энэ тохиолдолд <literal>xchat</literal>-аар эхэлсэн нэртэй бүх 
	багцуудыг устгах болно.</para>
    </sect2>

    <sect2>
      <title>Бусад мэдүүштэй зүйлс</title>
      <para>Бүх багцтай холбоотой мэдээллүүд 
        <filename>/var/db/pkg</filename> сан дотор хадгалагдаж байдаг. Суугдсан багцны жагсаалт болон холбогдох тодорхойлолтууд нь уг санд буй файл дотроос уншигдах 
	боломжтой.
      </para>
    </sect2>
  </sect1>
  
  <sect1 id="ports-using">
    <title>Портын цуглуулгыг хэрэглэх нь</title>

    <para>Дараах хэсэгт системдээ портын цуглуулгыг ашиглан хэрхэн програм
	суулгах болон устгах талаар өгүүлэх болно. <command>make</command> 
	хөрвүүлэгчийн байршил болон орчны хувьсагчийн тухай нэмэлт тодорхой мэдээллийг
	&man.ports.7; хуудаснаас харна уу.</para>

    <sect2 id="ports-tree">
      <title>Портын цуглуулгыг суулгах нь</title>

      <para>Порт суулгахаасаа өмнө нь  <filename>/usr/ports</filename> сан 
	дотор <filename>Makefiles</filename>, patches буюу нөхөгч файл, мөн
	тодорхойлолт файлуудыг агуулсан портын цуглуулгыг суулгах хэрэгтэй.
      </para>

      <para>FreeBSD-г суулгах үед 
	<application>sysinstall</application> програм танаас портын цуглуулгыг 
	суулгах эсэхийг тань асуудаг. Хэрэв та тэр үед үгүй гэж хариулсан бол
	энэ хэсэгт хэрхэн суулгах талаар тайлбарлана:</para>

      <procedure>
	<title>CVSup арга</title>

	<para>Энэ арга нь <application>CVSup</application> протоколыг ашиглан 
	портын цуглуулгаа суулгаж мөн байнга шинэчилж болох хамгийн түргэн арга юм.
	  Хэрэв та <application>CVSup</application>-н талаар дэлгэрэнгүй мэдэхийг
	хүсэж байвал  <link linkend="cvsup">CVSup-г хэрэглэх нь</link> хэсгээс хараарай.</para>

	<note>
	  <para>&os; системд орсон <application>CVSup</application> протоколын 
	    шийдэл нь <application>csup</application> гэж нэрлэгддэг.</para>
	</note>

	<para><application>csup</application>-г анх удаагаа ажиллуулахынхаа өмнө
	  <filename class="directory">/usr/ports</filename> санг хоосон байлгах хэрэгтэй.
	  Хэрэв уг сан дотор өөр эх сурвалжаас суулгасан портын цуглуулга байвал,
	  <application>csup</application> нь уг файлуудыг шинэчилж нөхдөггүй билээ.
	  </para>

	<step>
	  <para><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>
	    <replaceable>cvsup.FreeBSD.org</replaceable> гэдгийг
		өөртэйгээ ойрхон орших 
	    <application>CVSup</application> серверийн нэрээр
		солих хэрэгтэй. 
	    <link linkend="cvsup-mirrors">CVSup толин тусгалууд</link> (<xref
	    linkend="cvsup-mirrors"/>) хэсгээс толин тусгал хуудаснуудын бүрэн
		жагсаалтыг хараарай. </para>

	  <note>
	    <para>Зарим нэг нь өөрийнхөө бэлтгэсэн
	      <filename>ports-supfile</filename> файлыг хэрэглэхийг хүсэж болох юм. 
		  Ингэсэн үед тушаал бичих мөрөнд  <application>CVSup</application>
	      серверийн нэрийг бичих шаардлага гардаггүй.</para>

	    <procedure>
	      <step>
		<para>Ингэхийг хүссэн үед <username>root</username> эрхээр ороод
		  <filename>/usr/share/examples/cvsup/ports-supfile</filename> файлыг
		  шинэ сан уруу хуулах хэрэгтэй. Жишээлбэл 
		  <filename>/root</filename> юм уу эсвэл өөрийнхөө эхлэл санд хуулж болно.
		  </para>
	      </step>

	      <step>
		<para><filename>ports-supfile</filename> файлыг засварлана.</para>
	      </step>

	      <step>
		<para>
		  <replaceable>CHANGE_THIS.FreeBSD.org</replaceable> мөрийг
		  өөртэйгөө ойрхон буй  <application>CVSup</application> серверийн нэрээр
		  сольно.  <link linkend="cvsup-mirrors">CVSup
		  Толин тусгалууд</link> (<xref linkend="cvsup-mirrors"/>) хэсэгт толин тусгалуудын бүрэн жагсаалтыг харж болно.</para>
	      </step>

	      <step>
		<para>Одоо <command>csup</command>-г ажиллуулахын тулд дараах алхмыг хийх хэрэгтэй:</para>

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

	<step>
	  <para>Дараа нь &man.csup.1; тушаалыг ажиллуулснаар тухайн үед хөрвүүлж байгаа
		портуудыг эс оруулаад бүх портын цуглуулгыг татаж аван сүүлд орсон өөрчлөлтүүдийг мөн шинэчилдэг.</para>
	</step>
      </procedure>

      <procedure>
	<title>Portsnap арга</title>

	<para><application>Portsnap</application> нь портын цуглуулгыг шинэчлэх бас нэг арга
	  билээ. <link linkend="updating-upgrading-portsnap">Portsnap-г хэрэглэх нь</link> хэсгээс
	  <application>Portsnap</application>-тай холбоотой бүх мэдээллийг харна уу.</para>

	<step>
	  <para>Шахсан хэлбэртэй портын цуглуулгыг 
	    <filename class="directory">/var/db/portsnap</filename> сан дотор
		татаж авах хэрэгтэй. Хэрэв та хүсвэл энэ алхмын дараа интернэтээс
		салгаатай ажиллаж болдог. </para>

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

	<step>
	  <para>Хэрэв та <application>Portsnap</application>-г анх удаагаа
		ажиллуулж байгаа бол шахагдсан уг цуглуулгыг <filename
	    class="directory">/usr/ports</filename> сан дотор задална:
	  </para>

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

	  <para>Хэрэв та өмнө нь <filename
	    class="directory">/usr/ports</filename> сан дотор цуглуулгыг суулгасан бөгөөд
		энэ үед зөвхөн шинэчлэхийг хүсэж байгаа бол дараах тушаалыг өгөх хэрэгтэй:</para>

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

      </procedure>

      <procedure>
	<title>Sysinstall арга</title>

	<para>Энэ арга нь суулгацын төхөөрөмжөөс <application>sysinstall</application>-г
	  ашиглан портын цуглуулгыг суулгах арга юм. Гэхдээ тухайн төхөөрөмж дээр байгаа
	  цуглуулга нь тухайн хувилбарыг гаргасан өдрийн хувилбартай байдгийг анзаарах
	  хэрэгтэй. Хэрэв танд интернэт холболт байдаг бол дээр өгүүлсэн хоёр аргыг урьтал
	  болгох нь зүйтэй. </para>

	<step>
	  <para><username>root</username> эрхээр ороод 
	    <command>sysinstall</command> гэсэн тушаал өгөх хэрэгтэй:</para>

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

	<step>
	  <para><guimenuitem>Configure</guimenuitem> гэдгийг сонгоод
	    <keycap>Enter</keycap> товч дарна.</para>
	</step>

	<step>
	  <para>
	    <guimenuitem>Distributions</guimenuitem> цэсийг сонгоод
	    <keycap>Enter</keycap> дээр дарна.</para>
	</step>

	<step>
	  <para><guimenuitem>ports</guimenuitem> гэж сонгон 
	    <keycap>Space</keycap> товч дээр дарах хэрэгтэй.</para>
	</step>

	<step>
	  <para>Дээр буй <guimenuitem>Exit</guimenuitem> гэдгийг олж сонгон 
	    <keycap>Enter</keycap> дээр дарна.</para>
	</step>

	<step>
	  <para>CDROM юм уу FTP гэх мэт суулгах төхөөрөмжөө сонгоно.</para>
	</step>

	<step>
	  <para>Дээр буй <guimenuitem>Exit</guimenuitem> цэсийг сонгоод 
	    <keycap>Enter</keycap> дээр дарна.</para>
	</step>

	<step>
	  <para><keycap>X</keycap> дээр дарж
	    <application>sysinstall</application>-с гарах болно.</para>
	</step>
      </procedure>
    </sect2>

    <sect2 id="ports-skeleton">
      <title>Порт суулгах нь</title>

      <indexterm>
        <primary>портууд</primary>
        <secondary>суулгах</secondary>
      </indexterm>
      <para>Портын цуглуулгын талаар яриа хийхийн өмнө портын
        <quote>skeleton буюу араг яс</quote>ны талаар ойлголт авах хэрэгтэй.  
		Хамгийн энгийн ойлголтоор бол энэ нь FreeBSD системд програмыг
		цэвэрхэн хөрвүүлээд суулгахыг зааварласан товч заавар байдаг. 
		Порт болгоны араг яс дараах зүйлсийг агуулж байдаг:</para>

      <itemizedlist>
	<listitem>
	  <para><filename>Makefile</filename>.  
	    <filename>Makefile</filename> нь янз бүрийн заавар бичлэгүүд 
		агуулж байдаг бөгөөд энэ нь програм хэрхэн хөрвүүлэгдэх, 
		бас хаана суугдах зэрэг үйлдлүүдийг тодорхойлсон байгаа. </para>
	</listitem>

	<listitem>
	  <para><filename>distinfo</filename> файл.  Энэ файл нь 
		хөрвүүлж бүтээгдэх ёстой
		файлуудын татаж авалт болон тэдгээрийн алдаагүй 
		татагдсан эсэхийг  (&man.sha256.1; ашиглан) шалгах
		зэрэг мэдээллүүдийг агуулж байдаг. </para>
	</listitem>
	
	<listitem>
	  <para><filename>files</filename> нэртэй сан.  Энэ санд таны
	    FreeBSD систем дээр суугдах програмуудын хөрвүүлэгдэхэд
		хэрэглэгддэг patches буюу нөхөөс файлуудыг агуулна. 
		Нөхөөс файлууд нь жижигхэн хэмжээний файл бөгөөд тодорхой 
		зарим файлд гарсан өөрчлөлтүүдийг агуулдаг. 
	    Нөхөөсүүд текст хэлбэрээр оршдог ба голдуу
	    <quote>10 дугаар мөрийг устга</quote> эсвэл <quote>26 дугаар 
		мөрийг үүгээр соль ...</quote> гэсэн зааврууд байдаг.  
		Нөхөөсүүдийг мөн 
	    <quote>diffs буюу ялгааны</quote> төрлийн файл гэж ярьцгаадаг. Ийм
		ялгааг нь илэрхийлсэн файлыг үүсгэхдээ 
	    &man.diff.1; програмыг хэрэглэдэг юм.</para>

	  <para>Энэ санд портыг бүтээхэд шаардагдах өөр төрлийн файлууд бас байж 
	  болох юм.</para>
	</listitem>

	<listitem>
	  <para> <filename>pkg-descr</filename> файл. Энэ файл дотор тухайн 
		програмын тухай нэлээн дэлгэрэнгүй тодорхойлолт агуулагдаж байдаг.
		</para>
	</listitem>
	
	<listitem>
	  <para><filename>pkg-plist</filename> файл.  Энэ файл дотор порт
	    суугдах явцад хуулагдаж суугдах файлуудын жагсаалт байдаг. Энэ нь 
		мөн портыг устгах үед портын системд мэдэгдэх файлуудын 
		жагсаалт билээ.</para>
	</listitem>
      </itemizedlist>

      <para>Зарим портууд 
        <filename>pkg-message</filename> гэх мэтийн өөр файлууд агуулж байдаг.
		Портын систем нь онцгой тохиолдолд уг файлуудтай хандаж тухайн 
		портод харгалзах үйлдлүүдийг хийх болно. Хэрэв та ийм файлуудын 
		тухай дэлгэрэнгүй мэдээлэл мөн портын тухай үндсэн ойлголт
		авахыг хүсвэл <ulink
        url="&url.books.porters-handbook;/index.html">FreeBSD порт бүтээгчийн
		гарын авлага</ulink> хуудаснаас харна уу.</para>

      <para>Порт дотор програмын эх бичлэгийг хэрхэн хөрвүүлж бүтээх 
	    тухай заавар байдаг болохоос уг програмын эх бичлэг нь байдаггүй. 
		Та уг програмын эх бичлэгийг  CD-ROM эсвэл интернэтээс 
		уг зохиогчийнх нь гаргасан хэлбэрээр татаж авч болно. Голдуу 
		эх бичлэгүүд нь tar болон gzip шахалтаар шахаж бэлдсэн байдаг боловч
		заримдаа өөр төрлийн хэрэгсэл ашиглан шахсан тохиолдол тулгарч
		магадгүй. Ямар ч хэлбэрээр програмын эх бичлэгийг авсан байг, түүнийг
		<quote>distfile</quote> гэж нэрийддэг. Доор &os; порт суулгах
		хоёр аргыг танилцуулж байна.</para>

      <note>
        <para>Порт суулгахын тулд та  <username>root</username> эрхэнд
		сэлгэсэн байх ёстой.</para>
      </note>

      <warning>
	<para>Ямар нэгэн портыг суулгахаасаа өмнө портынхоо цуглуулгыг та
	  шинэчилсэн байх хэрэгтэй бөгөөд <ulink
	  url="http://vuxml.freebsd.org/"></ulink> хуудсанд тухайн 
	  порттой холбоотой аюул нууцлалын тухай сэдэв хөндөгдсөн эсэхийг
	  шалгах хэрэгтэй.</para>

	<para>Ямар ч порт суулгахаасаа өмнө аюулгүйн нууцлалын хувьд
	  сул тал буй эсэхийг <application>portaudit</application>-р 
	  автоматаар шалгаж болно. Энэ хэрэгслийг портын цуглуулга дотор
	  олох боломжтой (<filename
	  role="package">ports-mgmt/portaudit</filename>).  Шинэ портыг суулгахаасаа
	  өмнө <command>portaudit -F</command> гэж ажиллуулснаар 
	  аюулгүйн нууцлалд гарсан сул тал нүхнүүдийн тухай мэдээллийн 
	  өгөгдлийн баазаас мэдээллүүдийг авч нөхөлт хийдэг. Аюулгүйн нууцлалын
	  мэдээллийн өгөгдлийн баазын шинэчлэх явц өдөр болгон давтагдаж хийгдэх 
	  болно. Нэмэлт дэлгэрэнгүй мэдээллийг &man.portaudit.1; болон 
	  &man.periodic.8; хуудаснаас харна уу.</para>
      </warning>

      <para>Портын цуглуулга таныг интернэт холболттой гэж авч үздэг. 
	  Хэрэв танд интернэт холболт байхгүй бол 
	distfile файлуудыг <filename>/usr/ports/distfiles</filename>
	санд хуулах хэрэгтэй.</para>

	<para>Эхлэхийн өмнө суулгах гэж буй портын санд орох хэрэгтэй:</para>

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

        <para>Тэгээд  <filename>lsof</filename> санд орсон хойноо уг сан дотор
		та тухайн портын араг ясыг харах болно. Дараагийн алхам бол
		портыг хөрвүүлэх буюу 
	  <quote>бүтээх</quote> билээ. Ингэхийн тулд тушаал бичих мөрөнд
	 <command>make</command> гэж бичнэ. Ингэж гүйцэтгэсний дараа
	 дараах маягийн явцын мэдээллийг та харах болно:</para>

        <screen>&prompt.root; <userinput>make</userinput>
&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
&gt;&gt; Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===&gt;  Extracting for lsof-4.57
...
[extraction output snipped]
...
&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
===&gt;  Patching for lsof-4.57
===&gt;  Applying FreeBSD patches for lsof-4.57
===&gt;  Configuring for lsof-4.57
...
[configure output snipped]
...
===&gt;  Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;</screen>

        <para>Хөрвүүлэлт дуусаад та буцаад тушаал бичих мөрөнд ирэнгүүт
	  хийх ёстой дараагийн алхам бол портыг суулгах билээ. Ингэхийн тулд
	  таны хийх ёстой зүйл бол <command>make</command> тушаалыг 
	  өөр нэг үгтэй хамт бичих ёстой бөгөөд тэр үг нь 
	  <maketarget>install</maketarget> юм:</para>

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

        <para>Ингээд тушаал бичих мөр боломжтой болонгуут суулгасан портоо
		ажиллуулах боломжтой болдог. Бид нарын жишээ авч суулгасан 
		<command>lsof</command> програм нь нууцлалын давуу эрх 
		шаарддаг болохоор аюулгүйн нууцлалын анхааруулга харуулагддаг.
		Порт суулгах үед хэрэв анхааруулга харуулагдваас түүнийг тун 
		анхааралтай уншиж ойлгох хэрэгтэй.</para>

	<para>Програмыг хөрвүүлж бүтээхэд хэрэглэгдсэн түр файлуудыг 
	  хадгалсан дэд сангуудыг устгах нь зүйтэй. Энэ нь дискний зайг
	  хэмнэхээс гадна тухайн портыг шинэчлэх үед алдаа гаргуулахгүй
	  маш сайн зуршил юм.</para>

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

        <note>
          <para>Та  <command>make</command>,
	    <command>make <maketarget>install</maketarget></command> мөн 
	    <command>make <maketarget>clean</maketarget></command> гэсэн дамжлагуудыг 
	    <command>make <maketarget>install clean</maketarget></command> гэж товчилж бичиж болно.</para>
	</note>

	<note>
	  <para>Зарим shells буюу бүрхүүлийн орчнууд нь <envar>PATH</envar>
	    орчны хувьсагч дотор буй сангууд доторх ачаалагдаж болдог 
		програмуудын тушаалын хайлтыг түргэвчлэх зорилгоор түр хадгалагчид
		хадгалсан байдаг. Та хэрэв ийм төрлийн бүрхүүлийн орчин 
		ашиглаж байгаа бол порт суулгасны дараа <command>rehash</command> 
		тушаалыг хэрэглэн портын ачаалагдах файлыг бүрхүүлийн таних 
		сан дотор нэмдэг. Энэ тушаал нь 
	    <command>tcsh</command> маягийн бүрхүүлд ажилладаг.  
		<command>sh</command> төрлийн бүрхүүлд  <command>hash -r</command>
		гэж ашигладаг. Тухайн бүрхүүлд хамаатай нэмэлт мэдээллийг нь харна уу.</para>
	</note>

	<para><ulink url="http://www.freebsdmall.com/">FreeBSD
	  Mall</ulink> зэрэг зарим гуравдагчдын гаргасан DVD-ROM дээр distfiles
	  файлууд агуулагдсан байдаг. Тэдгээрийг портын цуглуулганд хэрэглэж 
	  болно. DVD-ROM-г  <filename>/cdrom</filename> санд таниулж холбоно. 
	  Хэрэв та өөр санд холбосон бол уг сангийн нэрийг 
	  <makevar>CD_MOUNTPTS</makevar> орчны хувьсагчид зааж өгөөрэй. 
	  Шаардлагатай  distfiles файлууд нь дискнээс автоматаар хэрэглэгддэг. 
	  </para>

	<note>
	  <para>Зарим нэг цөөн тооны портуудын лицензийг нь анхаарах 
	    хэрэгтэй. Ийм төрлийн портуудын эх бичлэг нь CD-ROM дээр 
		байдаггүй. Тэдгээрийг татаж авах юм уу цааш нь 
		түгээхийн тулд ямар нэгэн гэрээ бөглөх илгээх ёстой болдог.
		Хэрэв таны суулгах порт CD-ROM дээр байхгүй байгаа бол интернэт рүү
		орон хэлсний дагуу гүйцэтгэх хэрэгтэй.</para>
	</note>

	<para>Портын систем нь &man.fetch.1; хэрэгслийг ашиглан файлуудыг 
	  татаж авдаг. Уг хэрэгсэл нь 
	  <envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>,
	  мөн <envar>FTP_PASSWORD</envar> гэх мэтчилэн төрөл бүрийн орчны 
	  хувьсагчдыг ашиглаж ажилладаг. Хэрэв та галт хана юм уу 
	  FTP/HTTP прокси хэрэглэдэг бол эдгээр хувьсагчдад тохирох утгыг нь 
	  зааж өгөх хэрэгтэй. &man.fetch.3; хуудаснаас хувьсагчдын бүрэн жагсаалтыг
	  харна уу.</para>

	<para>Интернэтэд байнга холбогддоггүй хэрэглэгчдэд зориулж 
	  <command>make <maketarget>fetch</maketarget></command> тушаал 
	  байдаг. Уг тушаалыг портын дээд сан
	  (<filename>/usr/ports</filename>) дотор гүйцэтгэхэд шаардагдах 
	  бүх файлуудыг татаж авдаг. Уг тушаалыг мөн
	  <filename>/usr/ports/net</filename> гэх зэргийн дэд сан дотор гүйцэтгэж 
	  болно.
	  Хэрэв тухайн порт өөр сан юм уу портоос хамаардаг бол fetch гүйцэтгэл 
	  нь тэдгээр хамаарлыг нь
	  <emphasis>нөхөж татдаггүй</emphasis>г анхаараарай.
	  Харин  <maketarget>fetch</maketarget> гэдгийг
	  <maketarget>fetch-recursive</maketarget> гэж орлуулснаар
	  тухайн портын хамааралтай порт болон сангуудыг давхар татаж авдаг.</para>

	<note><para>Та бүх портуудыг хөрвүүлж бүтээнэ гэвэл <command>make</command>
	  тушаалыг <command>make
	  <maketarget>fetch</maketarget></command> тушаалыг тайлбарласан шиг дээд санд
	  гүйцэтгэж болдог. Гэвч зарим порт байхгүй тохиолдолд ийм үйлдэл бол аюултай. Мөн зарим портууд хоёр өөр файлыг нэг нэрээр суулгах хүндрэл гаргаж болзошгүй.</para></note>

	<para>Мөш цөөхөн тохиолдолд хэрэглэгчид 
	  <makevar>MASTER_SITES</makevar> (татаж авах файлуудын байршил) хаягнаас
	  өөр байршил ашиглан эх файлуудыг татаж авах шаардлага гарч болох юм. 
	  Ийм үед
	  <makevar>MASTER_SITES</makevar> хувьсагчийн утгыг дараах тушаалаар 
	  өөрчилдөг:</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>Энэ жишээн дээр бид 
	  <makevar>MASTER_SITES</makevar>-н утгыг  <hostid
	  role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>
	  гэж өөрчиллөө.</para>

	<note><para>Зарим порт нь өөрийнхөө зарим хэсгийг 
	  шаардлагагүй гэж үзэх тохиолдолд, эсвэл аюулгүйн нууцлалын 
	  шалтгаанаар ч юм уу өөрчлөлт хийх боломж (эсвэл шаарддаг)
	  өгдөг. 
	  <filename role="package">www/firefox</filename>, <filename
	  role="package">security/gpgme</filename>, мөн <filename
	  role="package">mail/sylpheed-claws</filename> зэргүүдийг жишээ
	  болгож болох юм. Иймэрхүү мэдэгдлүүд байвал тухайн үед танд 
	  харуулагдах болно.</para></note>

      <sect3>
        <title>Портын анхдагч санг дарж бичих</title>

	<para>Заримдаа портыг хөрвүүлэх болон суулгах өөр санг хэрэглэх 
	  нь хэрэгтэй (онц шаардлагатай) байдаг. 
	  <makevar>WRKDIRPREFIX</makevar> болон <makevar>PREFIX</makevar>
	  хувьсагчдын утгыг өөрчилж анхдагч сангийн байршлыг сольдог. 
	  Жишээ нь:</para>

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

	<para>гэсэн тушаал нь портыг
	    <filename>/usr/home/example/ports</filename> сан дотор хөрвүүлээд 
		хөрвүүлэгдэж бүтээгдсэн файлуудыг <filename>/usr/local</filename>
		санд суулгадаг.</para>

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

	<para>гэсэн тушаал нь портыг <filename>/usr/ports</filename> санд хөрвүүлж 
	  бэлдээд  <filename>/usr/home/example/local</filename> санд суулгана.</para>

	<para>Мэдээж </para>

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

	<para>гэж хоёр хувьсагчийг хослуулан хэрэглэж бас болно
	(танд зөвхөн ерөнхий ойлголт өгөх зорилгоор урт мөрийг товчилж харуулсан 
	билээ).</para>

	<para>Мөн та уг хувьсагчдыг өөрийнхөө орчны хувьсагч болгож
	  зарлаж болно. Тухайн бүрхүүлийнхээ орчны тухай зааврыг эхлээд
	  уншиж танилцах нь зүйтэй.</para>
      </sect3>

      <sect3>
	<title><command>imake</command>-г хэрэглэх</title>

	<para>Зарим порт <command>imake</command>-г хэрэглэдэг ( X 
	  цонхот системийн хэсэг) бөгөөд 
	  <makevar>PREFIX</makevar> хувьсагч ашиглалгүй 
	  <filename>/usr/X11R6</filename> санд суулгадаг. Үүнтэй ижил 
	  зарим Perl портууд <makevar>PREFIX</makevar> хувьсагч хэрэглэлгүй 
	  Perl-н санд суулгадаг. Эдгээр портуудыг 
	  <makevar>PREFIX</makevar> хувьсагчтай хамтран ажиллуулж
	  энэ хувьсагчийг ойлгож хүндэтгэдэг болгоно гэдэг бол тун хэцүү бөгөөд 
	  бараг боломжгүй ажил юм.</para>

      </sect3>

      <sect3>
	<title>Портуудыг дахин тохируулах нь</title>

	<para>Тухайн портуудыг бүтээж байхад чинь танд бүтээх тохируулгуудаас 
	  сонгож болох ncurses дээр тулгуурласан цэс харуулагддаг. 
	  Портыг нэгэнт бүтээсний дараа тэдгээр тохируулгуудыг нэмэх, хасах, эсвэл 
	  өөрчлөхийн тулд энэ цэсэнд дахин орохыг хүсэх нь хэрэглэгчдийн 
	  хувьд тийм ч нийтлэг биш юм. Үүнийг хийх олон аргууд байдаг. 
	  Нэг арга нь портыг агуулж байгаа сан уруу ороод урьдын адил тохируулгуудыг 
	  сонгосон хэвээр байгаа цэсийг дахин харуулах <command>make 
	  <maketarget>config</maketarget></command> гэж тушаалыг ажиллуулах явдал юм. 
	  Өөр нэг арга нь портын хувьд бүх тохиргооны сонголтуудыг харуулах 
	  <command>make <maketarget>showconfig</maketarget></command> тушаалыг 
	  ашиглах явдал юм. Бас нэг өөр арга нь бүх сонгогдсон тохируулгуудыг 
	  арилгаад танд дахин эхлэх боломж олгох <command>make 
	  <maketarget>rmconfig</maketarget></command> тушаалыг ажиллуулах явдал юм. 
	  Эдгээр бүх аргууд болон бусдын талаар &man.ports.7; гарын авлагын 
	  хуудсанд илүү дэлгэрэнгүй тайлбарласан байгаа.</para>
      </sect3>
    </sect2>

    <sect2 id="ports-removing">
      <title>Суугдсан портыг устгах нь</title>

      <indexterm>
        <primary>портууд</primary>
        <secondary>устгах</secondary>
      </indexterm>
      <para>Та одоо портыг хэрхэн суулгах талаар мэдсэн юм чинь 
	  хэрэв буруу портоо суулгасан бол түүнийг 
	  хэрхэн утсгадаг талаар мэдэхийг хүсэж байгаа байх.  
      Өмнөх жишээнд суулгасан портоо бид устгацгаая  (анхааралгүй 
	  уншсан нэгэнд нь <command>lsof</command> програм гэж сануулъя).  
	  Портууд багцтай ижилхэн 
	&man.pkg.delete.1; тушаалаар устгагдаж болно (
	  <link
	linkend="packages-using">Багц сонголт</link> хэсэгт тайлбарласан буй):</para>

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

    </sect2>

    <sect2 id="ports-upgrading">
      <title>Порт шинэчлэх</title>

      <indexterm>
	<primary>порт</primary>
	<secondary>шинэчлэх</secondary>
      </indexterm>
      <para>Хамгийн түрүүнд &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>Портыг шинэчлэхээсээ өмнө портын цуглуулгаа шинэчлээд 
	  <filename>/usr/ports/UPDATING</filename> файлыг шалгана. 
	  Энэ файл дотор портыг шинэчлэхэд шаардагдах үйлдлүүд болох 
	  өөрчлөгдсөн төрөл, тохируулгын өөрчлөлт, эсвэл өмнөх хувилбартайгаа
	  зөрчилдөх хэсгүүд гэх мэтийн чухал мэдээллүүд агуулагдаж байдаг.
	  </para>

	<para>Хэрэв <filename>UPDATING</filename> файлд саяны таны уншсан 
	  зүйлүүдээс өөр юм агуулагдаж байвал уг файлд буй зааврыг дагах нь 
	  зүйтэй.</para>
      </sect3>

      <sect3 id="portupgrade">
	<title>Portupgrade ашиглан порт шинэчлэх нь</title>

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

      <para> <application>portupgrade</application> хэрэгсэл нь портыг 
	  амархан шинэчлэхэд зориулагдсан. Үүнийг <filename
	role="package">ports-mgmt/portupgrade</filename> портоос суулгаж болно.
	Бусад портын нэгэн адил порт суулгадаг журмаар <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>Суугдсан портын жагсаалтыг  <command>pkgdb
	-F</command> тушаал ашиглан шалгаад үр дүнгийн мэдээлэлд байгаа 
	зөрчлүүдийг нь залруулж засах хэрэгтэй. Шинэчлэл хийхээсээ өмнө ингэж 
	зөрчлүүдийг арилгах нь тун сайн санаа билээ.</para>

      <para>Хэрэв та <command>portupgrade -a</command> гэж ажиллуулбал 
	  таны системд суугдсан бүх хуучирсан портуудыг 
	<application>portupgrade</application> шинэчилж эхэлдэг. 
	Хэрэв та суугдах шинэчлэл болгонд лавлаж асуух үйлдэл хийлгэхийг хүсвэл 
	<option>-i</option> сонголт нэмээрэй.</para>

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

      <para>Хэрэв та бүх шинэчлэгдэх порт биш харин зөвхөн тодорхой нэгэн 
	  портыг шинэчлэх хүсэлтэй бол <command>portupgrade
	<replaceable>багцны-нэр</replaceable></command> гэж бичнэ. 
	<option>-R</option> сонголт нэмснээр тухайн програмд шаардагдах 
	портуудыг <application>portupgrade</application> эхлээд нь шинэчлэдэг.
	</para>

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

      <para>Портын оронд багц хэрэглэж суулгахыг хүсвэл 
	<option>-P</option> сонголт хэрэглэнэ. Энэ сонголттой үед 
	<application>portupgrade</application> нь 
	<envar>PKG_PATH</envar> хувьсагчид зааж өгсөн жагсаалтад буй сан дотроос
	багцуудыг хайх ба хэрэв уг санд байхгүй байгаа бол сүлжээнээс татаж нөхдөг.
	Хэрэв дотоод сан болон сүлжээнээс багц олдоогүй тохиолдолд 
	<application>portupgrade</application> нь портоор суулгахыг оролдох болно. 
	Порт хэлбэрээр суулгах үйлдлийг зогсоохын тулд
	<option>-PP</option> сонголтыг нэмж өгдөг.</para>

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

      <para>Хэрэв хөрвүүлж суулгалгүйгээр зөвхөн distfiles файлыг татаж авах (хэрэв 
	  <option>-P</option> сонголттой бол багц файлыг ) шаардлагатай бол 
	  <option>-F</option> сонголтыг ашиглаарай.
	  Дэлгэрэнгүй мэдээллийг &man.portupgrade.1; хэсэгт харна уу.</para>
      </sect3>

      <sect3 id="portmanager">
	<title>Portmanager ашиглан портыг шинэчлэх нь</title>

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

	<para><application>Portmanager</application> бол портыг суулгаж 
	шинэчлэхийг амарчилсан өөр нэг хэрэгсэл билээ. Үүнийг
	  <filename role="package">ports-mgmt/portmanager</filename> портноос
	  суулгаж болно:</para>

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

	<para>Бүх суугдсан портууд дараах энгийн тушаалаар шинэчлэгдэж болдог:</para>

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

	<para>Та мөн <option>-ui</option> сонголтыг дээрх тушаалд нэмснээр 
	  (<userinput>portmanager -u -ui</userinput>) 
	<application>Portmanager</application>-н гүйцэтгэх алхам бүрийг лавлах асуух хэлбэрт оруулан хянаж болдог.
	<application>Portmanager</application>-г ашиглан системд шинэ портыг суулгаж болно. 
	 <command>make <maketarget>install clean</maketarget></command> гэсэн ердийн тушаалаас ялгаатай нь 
	 тухайн сонгосон портыг суулгахаасаа өмнө түүнд хамааралтай бүх портуудыг 
	 шинэчлэдэг.</para>

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

	<para>Хэрэв сонгосон портын хамааралтай портод ямар нэгэн 
	  хүндрэл гарвал  <application>Portmanager</application>-г тэр хүндрэл
	  гарсан портоос эхлэн дахин шинээр хөрвүүлж бэлд гэж зааж өгч болдог. 
	  Ингэсэн үед хүндрэл гаргасан портыг эхлэж хөрвүүлээд дараа нь 
	  портоо шинэчлэх явцаа цааш нь үргэлжлүүлдэг.</para>

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

	<para>Дэлгэрэнгүй мэдээллийг 
	  &man.portmanager.1;-с харна уу.</para>
      </sect3>

      <sect3 id="portmaster">
	<title>Portmaster ашиглан портыг шинэчлэх нь</title>

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

	<para><application>Portmaster</application> нь <quote>үндсэн</quote>
	  системд  байдаг (бусад портуудаас хамаардаггүй) хэрэгслүүдийг ашиглахаар 
	  хийгдсэн бөгөөд аль портыг шинэчлэхээ тогтоохын тулд 
	  <filename class="directory">/var/db/pkg/</filename> сан доторхийг 
	  ашигладаг.  Тэрээр <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> нь портуудыг дөрвөн 
	  төрөлд бүлэглэдэг:</para>

	<itemizedlist>
	  <listitem>
	    <para>Root буюу язгуур портууд (хамаарсан портууд байхгүй, бусдаас хамаардаггүй)</para>
	    </listitem>
	  <listitem>
	    <para>Trunk буюу гол портууд (хамаарсан портууд байхгүй, бусдууд хамаардаг)</para>
	    </listitem>
	  <listitem>
	    <para>Салбар портууд (хамаарсан портуудтай, бусдууд хамаардаг)</para>
	    </listitem>
	  <listitem>
	    <para>Навч портууд (хамаарсан портуудтай, бусдаас хамаардаггүй)</para>
	    </listitem>
	</itemizedlist>

	<para>Та суулгагдсан бүх портуудыг жагсааж болох бөгөөд 
	  <option>-L</option> тохируулга ашиглан шинэчлэлт байгаа 
	  эсэхийг хайж болно:</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>Бүх суулгагдсан портуудыг энэ хялбар тушаал ашиглан 
	  шинэчилж болно:</para>

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

	<note><para>Анхдагчаар <application>Portmaster</application> нь 
	  байгаа портыг устгахаасаа өмнө нөөц багц үүсгэдэг. Хэрэв шинэ 
	  хувилбар суулгалт амжилттай болсон бол <application>Portmaster</application> 
	  нөөц багцыг устгана. <option>-b</option> сонголтыг ашиглаж 
	  <application>Portmaster</application>-т нөөцийг автоматаар 
	  устгахгүй байхыг тушаана. <option>-i</option> сонголтыг ашигласнаар 
	  порт бүрийг шинэчлэхээс өмнө асууж лавлан  
	  <application>Portmaster</application>-ийг интерактив горимд 
	  эхлүүлнэ.</para></note>

	<para>Хэрэв шинэчлэх процессийн явцад алдаа гарвал та бүх портыг шинэчлэх 
	  буюу дахин бүтээхийн тулд <option>-f</option>-г ашиглаж болно:</para>

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

	<para>Шинэ порт бүтээж суулгахаасаа өмнө бүх хамааралтай портуудыг шинэчилж 
	  <application>Portmaster</application>-ийг системд шинэ порт суулгахдаа 
	  та бас ашиглаж болно:</para>

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

	<para>Дэлгэрэнгүй мэдээллийг &man.portmaster.8;-с үзнэ үү.</para>
      </sect3>
    </sect2>

    <sect2 id="ports-disk-space">
      <title>Порт ба дискний хэмжээ</title>

      <indexterm>
	<primary>порт</primary>
	<secondary>дискний хэмжээ</secondary>
      </indexterm>
      <para>Портын цуглуулга нь дискний хэмжээг байнга идэж байдаг. Портоос
	  програмыг хөрвүүлж суулгасны дараа бэлдэж байсан 
	<filename class="directory">work</filename> санг 
	<command>make <maketarget>clean</maketarget></command> тушаалаар цэвэрлэхээ үргэлж санах 
	хэрэгтэй. Та портын цуглуулгыг бүхлээр нь дараах тушаалаар цэвэрлэж болно:</para>

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

      <para>Маш олон эх файлууд
	<filename class="directory">distfiles</filename> санд явцын үр дүнд 
	хадгалагдаж байдаг. Та тэдгээрийг гар аргаар устгаж болох ба дараах 
	тушаал хэрэглэн ямар нэгэн порттой холбоогүй болсон бүх distfiles 
	устгаж болно:</para>

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

      <para>Эсвэл таны системд одоо суугдсан байгаа порттой хамаагүй 
	  бүх distfiles-уудыг дараах тушаалаар устгана:</para>

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

      <note>
	<para> <command>portsclean</command> хэрэгсэл нь 
	  <application>portupgrade</application> програмын нэг бүрдэл хэсэг.</para>
      </note>

      <para>Суулгасан портоо хэрэглэхгүй болсон үедээ устгахаа мартаж болохгүй. 
	  Иймэрхүү автоматжуулалтыг гүйцэтгэдэг эвтэйхэн програм бол 
	<filename role="package">ports-mgmt/pkg_cutleaves</filename> порт билээ.</para>
    </sect2>

  </sect1>

  <sect1 id="ports-nextsteps">
    <title>Порт суулгасны дараах үйлдлүүд</title>

    <para>Ердийн програмыг суулгасны дараа тухайн програмтай холбоотой
	  бичиг баримтыг унших, ямар нэгэн тохиргооны файл засварлах, эсвэл 
	  уг програм компьютер ачаалагдах үед эхлэх (хэрэв энэ нь далд чөтгөр бол)
	  эсэхийг нь шалгах шаардлага гарч болзошгүй.</para>

    <para>Суулгасан програм болгоныг тохируулах зарчим өөр өөр. Гэхдээ 
	  та шинэ програм суулгачихаад  <quote>Одоо яах вэ?</quote> 
	  гэсэн асуулттай тулгарах үед дараах зүйлс тусалж магадгүй:</para>

    <itemizedlist>
      <listitem>
	<para>&man.pkg.info.1; тушаалыг ашиглан ямар файл хаана яаж суугдсаныг 
	харна. Жишээ нь та саяхан FooPackage version 1.0.0, програмыг суулгасан 
	бол </para>

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

	<para>гэсэн тушаал нь уг програмыг суулгах явцад хуулсан бүх файлуудыг 
	харуулдаг. <filename>man/</filename> санд хуулсан файл байвал тун 
	анхааралтай харах хэрэгтэй. Энэ нь гарын авлага файлууд байдаг. 
	Мөн  <filename>etc/</filename> санд хуулсан файлууд нь тохируулгын 
	файлууд байдаг бөгөөд  <filename>doc/</filename> санд бол дэлгэрэнгүй
	бичиг баримтуудыг хадгалсан байдаг.</para>

	<para>Хэрэв та програмынхаа хувилбарын талаар сайн мэдэхгүй байгаа бол
	</para>

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

	<para>гэсэн тушаал нь бүх суугдсан програм дотор 
	  <replaceable>foopackage</replaceable> гэсэн нэртэй програм байвал 
	  харуулдаг. <replaceable>foopackage</replaceable>-н оронд хүссэн програмынхаа нэрийг бичээрэй.</para>
      </listitem>

      <listitem>
	<para>Програмын гарын авлага хаана суугдсаныг мэдсэн үедээ 
	  &man.man.1;-г ашиглан харах хэрэгтэй. Мөн түүнчлэн ийм аргаар
	  тохируулга болон нэмэлт мэдээллийн файлуудыг нь тухай бүрд 
	  нь харах хэрэгтэй.</para>
      </listitem>

      <listitem>
	<para>Хэрэв уг програм өөрийн гэсэн вэб хуудастай бол түүнд нь зорчин 
	  нэмэлт мэдээлэл авах, байнгын асуулт хариултыг нь үзэх гэх мэтчилэн 
	  оролдоорой. Уг програмын вэб хуудасны хаяг нь </para>

	<screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>
	
	<para>тушаалын гаралт дээр  <literal>WWW:</literal> гэсэн хэсэгт 
	байдаг. </para>
      </listitem>

      <listitem>
	<para>Эхлэн ачаалагдах үед эхлэх ёстой портууд (Интернэт сервер гэх мэт)
	 голдуу 
	  <filename>/usr/local/etc/rc.d</filename> сан дотор эхлүүлэх 
	  файлаа хуулдаг. Та уг файлыг шаардлагатай бол засварлах юм уу өөрчилж болно.  
	  <link
	  linkend="configtuning-starting-services">Үйлчилгээг эхлүүлэх</link> хэсгээс дэлгэрэнгүй мэдэээллийг харна уу.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="ports-broken">
    <title>Эвдрэлтэй портыг засах нь</title>

      <para>Хэрэв та портыг ажиллуулж чадаагүй тохиолдолд хийж болох 
	  хэд хэдэн алхам бий:</para>

      <orderedlist>
	<listitem>
	  <para><ulink url="&url.base;/support.html#gnats">Problem Report
	    database</ulink> хуудсанд уг портын засварлах заавар бий эсэхийг 
		шалгах. Хэрэв байвал уг зааврын дагуу засварлах хэрэгтэй.</para>
	</listitem>

	<listitem>
	  <para>Уг портыг арчилж сайжруулдаг хүнээс тусламж авах. 
	    <command>make <maketarget>maintainer</maketarget></command> тушаал ашиглаад юм уу эсвэл 
		<filename>Makefile</filename> файл дотроос тухайн 
		арчлагчийн захианы хаягийг нь олох хэрэгтэй. Захиандаа
		портынхоо нэр болон хувилбарыг оруулан 
		(<filename>Makefile</filename> файлд буй 
		<literal>&dollar;FreeBSD:</literal>
	    мөрийг илгээх хэрэгтэй ) хэрэв боломжтой бол алдаа заасан 
		явцын мэдээллүүдийг явуулах хэрэгтэй.</para>

	  <note>
	    <para>Зарим порт нь хувь хүнээр биш харин  <ulink
	      url="&url.articles.mailing-list-faq;/article.html">захианы 
		  жагсаалтаар</ulink> арчлагдаж байдаг. Энэ жагсаалтад бүгд биш ч гэсэн ихэнх хүмүүс нь 
	      <email role="nolink">freebsd-listname@FreeBSD.org</email> маягийн 
		  захианы хаягтай байдаг. Ийм хүмүүс рүү захиагаа явуулах хэрэгтэй.</para>

	    <para>Голдуу 
	      <email role="nolink">ports@FreeBSD.org</email>-р арчлагдаж 
		  байгаа гэсэн портууд нэг тодорхой хүнээр арчлагдаагүй байдаг. 
		  Завсарлалт болон тусламж зэргүүд нь ихэнхдээ захианы жагсаалтад буй 
		  хүмүүсээс ирдэг. Туслан дэмжих хүмүүс бидэнд үргэлж хэрэгтэй байгаа!</para>
	  </note>

	  <para>Хэрэв та ямар нэгэн хариулт аваагүй бол 
	     &man.send-pr.1;-г ашиглан алдааны мэдэгдэл  ( <ulink
	    url="&url.articles.problem-reports;/article.html">
	    FreeBSD-н алдааг мэдээлэх</ulink> хэсгийг харна уу) хийж болно.</para>
	</listitem>

        <listitem>
	  <para>Өөрөө засаад үз!   <ulink
	    url="&url.books.porters-handbook;/index.html">Порт хийгчдийн гарын авлага</ulink> дотор 
	    <quote>портын</quote> ажиллах зарчим болон бүтэц заавар, засах дараалал, тэр байтугай өөрөө порт зохиох талаар дурдсан байгаа!</para>
	</listitem>

	<listitem>
	  <para>Ойрхон байгаа FTP хуудаснаас багцыг татаж авах хэрэгтэй. 
	    <quote>Үндсэн</quote> багцны цуглуулга <hostid
	    role="fqdn">ftp.FreeBSD.org</hostid> хуудасны  <ulink
	    url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">багцны санд</ulink> байдаг бөгөөд  
	    <link linkend="mirrors-ftp">толин тусгал сайтууд</link>уудыг <emphasis>эхлээд</emphasis> турш!  Ингэсэн нь эх бичлэгийг хөрвүүлэхээс 
		түргэн бэлэн болсон багцыг татаж аван цаг хэмнэж байдаг.  &man.pkg.add.1; програмыг ашиглан өөртөө хадгалсан багцаа систем дээрээ суулгана. </para>
	</listitem>
      </orderedlist>
  </sect1>

</chapter>